From 1b2983d02be29a192aad24d73fa08d7f959f797d Mon Sep 17 00:00:00 2001 From: Patrick Stewart Date: Sun, 22 Sep 2024 15:56:11 -0700 Subject: [PATCH] remove(zero): zero package directory switching base project to angel3 --- .prompts/create.package.prompt | 36 + examples/app-template/pubspec.yaml | 2 +- packages/app/.gitignore | 7 - packages/app/CHANGELOG.md | 3 - packages/app/LICENSE.md | 10 - packages/app/README.md | 1 - packages/app/analysis_options.yaml | 30 - packages/app/lib/application.dart | 26 - packages/app/lib/src/application.dart | 379 - packages/app/lib/src/application_server.dart | 274 - packages/app/lib/src/channel.dart | 401 - .../lib/src/isolate_application_server.dart | 255 - packages/app/lib/src/isolate_supervisor.dart | 386 - packages/app/lib/src/options.dart | 175 - packages/app/lib/src/starter.dart | 56 - packages/app/pubspec.yaml | 23 - packages/app/test/.gitkeep | 0 packages/auth/.gitignore | 7 - packages/auth/CHANGELOG.md | 3 - packages/auth/LICENSE.md | 10 - packages/auth/README.md | 1 - packages/auth/analysis_options.yaml | 30 - packages/auth/lib/auth.dart | 80 - .../auth/lib/src/auth_code_controller.dart | 489 - packages/auth/lib/src/auth_controller.dart | 459 - .../lib/src/auth_redirect_controller.dart | 587 - .../auth/lib/src/authorization_parser.dart | 225 - .../auth/lib/src/authorization_server.dart | 1012 - packages/auth/lib/src/authorizer.dart | 374 - packages/auth/lib/src/exceptions.dart | 242 - packages/auth/lib/src/objects.dart | 1044 - packages/auth/lib/src/protocols.dart | 217 - packages/auth/lib/src/validator.dart | 50 - packages/auth/pubspec.yaml | 21 - packages/auth/test/.gitkeep | 0 packages/config/.gitignore | 7 - packages/config/CHANGELOG.md | 3 - packages/config/LICENSE.md | 10 - packages/config/README.md | 1 - packages/config/analysis_options.yaml | 30 - packages/config/lib/config.dart | 30 - packages/config/lib/src/compiler.dart | 72 - packages/config/lib/src/configuration.dart | 627 - .../lib/src/default_configurations.dart | 303 - .../lib/src/intermediate_exception.dart | 37 - packages/config/lib/src/mirror_property.dart | 504 - packages/config/lib/src/runtime.dart | 332 - packages/config/pubspec.yaml | 19 - packages/config/test/.gitkeep | 0 packages/database/.gitignore | 7 - packages/database/CHANGELOG.md | 3 - packages/database/LICENSE.md | 10 - packages/database/README.md | 1 - packages/database/analysis_options.yaml | 30 - packages/database/lib/db.dart | 25 - .../database/lib/src/managed/attributes.dart | 319 - .../database/lib/src/managed/backing.dart | 279 - .../database/lib/src/managed/context.dart | 263 - .../database/lib/src/managed/data_model.dart | 163 - .../lib/src/managed/data_model_manager.dart | 77 - .../database/lib/src/managed/document.dart | 66 - packages/database/lib/src/managed/entity.dart | 580 - .../database/lib/src/managed/exception.dart | 19 - .../database/lib/src/managed/key_path.dart | 151 - .../database/lib/src/managed/managed.dart | 45 - packages/database/lib/src/managed/object.dart | 469 - .../lib/src/managed/property_description.dart | 973 - .../lib/src/managed/relationship_type.dart | 18 - packages/database/lib/src/managed/set.dart | 109 - packages/database/lib/src/managed/type.dart | 236 - .../lib/src/managed/validation/impl.dart | 129 - .../lib/src/managed/validation/managed.dart | 153 - .../lib/src/managed/validation/metadata.dart | 917 - .../persistent_store/persistent_store.dart | 433 - packages/database/lib/src/query/error.dart | 162 - .../lib/src/query/matcher_expression.dart | 492 - packages/database/lib/src/query/mixin.dart | 423 - packages/database/lib/src/query/page.dart | 49 - .../database/lib/src/query/predicate.dart | 459 - packages/database/lib/src/query/query.dart | 434 - packages/database/lib/src/query/reduce.dart | 71 - .../lib/src/query/sort_descriptor.dart | 33 - .../lib/src/query/sort_predicate.dart | 35 - .../database/lib/src/schema/migration.dart | 125 - packages/database/lib/src/schema/schema.dart | 243 - .../lib/src/schema/schema_builder.dart | 734 - .../lib/src/schema/schema_column.dart | 669 - .../database/lib/src/schema/schema_table.dart | 360 - packages/database/pubspec.yaml | 22 - packages/database/test/.gitkeep | 0 packages/hashing/.gitignore | 7 - packages/hashing/CHANGELOG.md | 3 - packages/hashing/LICENSE.md | 10 - packages/hashing/README.md | 39 - packages/hashing/analysis_options.yaml | 30 - packages/hashing/lib/hashing.dart | 20 - packages/hashing/lib/src/pbkdf2.dart | 197 - packages/hashing/lib/src/salt.dart | 34 - packages/hashing/pubspec.yaml | 17 - packages/hashing/test/.gitkeep | 0 packages/http/.gitignore | 7 - packages/http/CHANGELOG.md | 3 - packages/http/LICENSE.md | 10 - packages/http/README.md | 1 - packages/http/analysis_options.yaml | 30 - packages/http/lib/http.dart | 44 - packages/http/lib/src/body_decoder.dart | 164 - packages/http/lib/src/cache_policy.dart | 83 - packages/http/lib/src/controller.dart | 679 - packages/http/lib/src/cors_policy.dart | 221 - packages/http/lib/src/file_controller.dart | 269 - packages/http/lib/src/handler_exception.dart | 31 - .../http/lib/src/http_codec_repository.dart | 338 - .../lib/src/managed_object_controller.dart | 553 - packages/http/lib/src/query_controller.dart | 94 - packages/http/lib/src/request.dart | 471 - packages/http/lib/src/request_body.dart | 142 - packages/http/lib/src/request_path.dart | 96 - .../http/lib/src/resource_controller.dart | 413 - .../lib/src/resource_controller_bindings.dart | 288 - .../src/resource_controller_interfaces.dart | 325 - .../lib/src/resource_controller_scope.dart | 57 - packages/http/lib/src/response.dart | 290 - packages/http/lib/src/route_node.dart | 303 - .../http/lib/src/route_specification.dart | 182 - packages/http/lib/src/router.dart | 273 - packages/http/lib/src/serializable.dart | 145 - packages/http/pubspec.yaml | 24 - packages/http/test/.gitkeep | 0 packages/isolate/.gitignore | 7 - packages/isolate/CHANGELOG.md | 3 - packages/isolate/README.md | 39 - packages/isolate/analysis_options.yaml | 30 - packages/isolate/lib/isolate.dart | 22 - packages/isolate/lib/src/executable.dart | 93 - packages/isolate/lib/src/executor.dart | 182 - .../isolate/lib/src/source_generator.dart | 142 - packages/isolate/pubspec.yaml | 19 - packages/isolate/test/.gitkeep | 0 packages/openapi/.gitignore | 7 - packages/openapi/CHANGELOG.md | 3 - packages/openapi/README.md | 37 - packages/openapi/analysis_options.yaml | 30 - packages/openapi/lib/documentable.dart | 20 - packages/openapi/lib/object.dart | 15 - packages/openapi/lib/src/documentable.dart | 525 - packages/openapi/lib/src/object.dart | 94 - .../openapi/lib/src/util/list_helper.dart | 30 - packages/openapi/lib/src/util/map_helper.dart | 42 - packages/openapi/lib/src/v2/document.dart | 347 - packages/openapi/lib/src/v2/header.dart | 87 - packages/openapi/lib/src/v2/metadata.dart | 363 - packages/openapi/lib/src/v2/operation.dart | 218 - packages/openapi/lib/src/v2/parameter.dart | 241 - packages/openapi/lib/src/v2/path.dart | 103 - packages/openapi/lib/src/v2/property.dart | 388 - packages/openapi/lib/src/v2/response.dart | 104 - packages/openapi/lib/src/v2/schema.dart | 249 - packages/openapi/lib/src/v2/security.dart | 366 - packages/openapi/lib/src/v2/types.dart | 87 - packages/openapi/lib/src/v3/callback.dart | 91 - packages/openapi/lib/src/v3/components.dart | 242 - packages/openapi/lib/src/v3/document.dart | 260 - packages/openapi/lib/src/v3/encoding.dart | 180 - packages/openapi/lib/src/v3/header.dart | 58 - packages/openapi/lib/src/v3/media_type.dart | 106 - packages/openapi/lib/src/v3/metadata.dart | 605 - packages/openapi/lib/src/v3/operation.dart | 430 - packages/openapi/lib/src/v3/parameter.dart | 606 - packages/openapi/lib/src/v3/path.dart | 187 - packages/openapi/lib/src/v3/request_body.dart | 170 - packages/openapi/lib/src/v3/response.dart | 247 - packages/openapi/lib/src/v3/schema.dart | 780 - packages/openapi/lib/src/v3/security.dart | 803 - packages/openapi/lib/src/v3/server.dart | 275 - packages/openapi/lib/src/v3/types.dart | 85 - packages/openapi/lib/util.dart | 22 - packages/openapi/lib/v2.dart | 26 - packages/openapi/lib/v3.dart | 36 - packages/openapi/pubspec.yaml | 18 - packages/openapi/test/specs/kubernetes.json | 88145 -------- packages/openapi/test/specs/stripe.json | 164106 --------------- packages/openapi/test/v2_test.dart | 120 - packages/openapi/test/v3_test.dart | 441 - packages/runtime/.gitignore | 7 - packages/runtime/CHANGELOG.md | 3 - packages/runtime/README.md | 39 - packages/runtime/analysis_options.yaml | 30 - packages/runtime/lib/runtime.dart | 88 - packages/runtime/lib/slow_coerce.dart | 113 - packages/runtime/lib/src/analyzer.dart | 174 - packages/runtime/lib/src/build.dart | 256 - packages/runtime/lib/src/build_context.dart | 323 - packages/runtime/lib/src/build_manager.dart | 118 - packages/runtime/lib/src/compiler.dart | 78 - packages/runtime/lib/src/context.dart | 108 - packages/runtime/lib/src/exceptions.dart | 45 - packages/runtime/lib/src/generator.dart | 159 - packages/runtime/lib/src/mirror_coerce.dart | 103 - packages/runtime/lib/src/mirror_context.dart | 119 - packages/runtime/pubspec.yaml | 24 - packages/runtime/test/.gitkeep | 0 packages/typeforge/.gitignore | 7 - packages/typeforge/CHANGELOG.md | 3 - packages/typeforge/README.md | 147 - packages/typeforge/analysis_options.yaml | 30 - packages/typeforge/lib/cast.dart | 29 - packages/typeforge/lib/codable.dart | 27 - packages/typeforge/lib/src/base_cast.dart | 118 - packages/typeforge/lib/src/coding.dart | 80 - .../typeforge/lib/src/collection_cast.dart | 129 - packages/typeforge/lib/src/constants.dart | 74 - packages/typeforge/lib/src/keyed_archive.dart | 580 - packages/typeforge/lib/src/list_archive.dart | 233 - .../typeforge/lib/src/primitive_cast.dart | 108 - .../typeforge/lib/src/reference_resolver.dart | 79 - packages/typeforge/lib/src/referenceable.dart | 46 - packages/typeforge/lib/src/special_cast.dart | 109 - packages/typeforge/lib/src/utility_cast.dart | 77 - packages/typeforge/pubspec.yaml | 17 - packages/typeforge/test/decode_test.dart | 464 - packages/typeforge/test/encode_test.dart | 412 - 222 files changed, 37 insertions(+), 291020 deletions(-) create mode 100644 .prompts/create.package.prompt delete mode 100644 packages/app/.gitignore delete mode 100644 packages/app/CHANGELOG.md delete mode 100644 packages/app/LICENSE.md delete mode 100644 packages/app/README.md delete mode 100644 packages/app/analysis_options.yaml delete mode 100644 packages/app/lib/application.dart delete mode 100644 packages/app/lib/src/application.dart delete mode 100644 packages/app/lib/src/application_server.dart delete mode 100644 packages/app/lib/src/channel.dart delete mode 100644 packages/app/lib/src/isolate_application_server.dart delete mode 100644 packages/app/lib/src/isolate_supervisor.dart delete mode 100644 packages/app/lib/src/options.dart delete mode 100644 packages/app/lib/src/starter.dart delete mode 100644 packages/app/pubspec.yaml delete mode 100644 packages/app/test/.gitkeep delete mode 100644 packages/auth/.gitignore delete mode 100644 packages/auth/CHANGELOG.md delete mode 100644 packages/auth/LICENSE.md delete mode 100644 packages/auth/README.md delete mode 100644 packages/auth/analysis_options.yaml delete mode 100644 packages/auth/lib/auth.dart delete mode 100644 packages/auth/lib/src/auth_code_controller.dart delete mode 100644 packages/auth/lib/src/auth_controller.dart delete mode 100644 packages/auth/lib/src/auth_redirect_controller.dart delete mode 100644 packages/auth/lib/src/authorization_parser.dart delete mode 100644 packages/auth/lib/src/authorization_server.dart delete mode 100644 packages/auth/lib/src/authorizer.dart delete mode 100644 packages/auth/lib/src/exceptions.dart delete mode 100644 packages/auth/lib/src/objects.dart delete mode 100644 packages/auth/lib/src/protocols.dart delete mode 100644 packages/auth/lib/src/validator.dart delete mode 100644 packages/auth/pubspec.yaml delete mode 100644 packages/auth/test/.gitkeep delete mode 100644 packages/config/.gitignore delete mode 100644 packages/config/CHANGELOG.md delete mode 100644 packages/config/LICENSE.md delete mode 100644 packages/config/README.md delete mode 100644 packages/config/analysis_options.yaml delete mode 100644 packages/config/lib/config.dart delete mode 100644 packages/config/lib/src/compiler.dart delete mode 100644 packages/config/lib/src/configuration.dart delete mode 100644 packages/config/lib/src/default_configurations.dart delete mode 100644 packages/config/lib/src/intermediate_exception.dart delete mode 100644 packages/config/lib/src/mirror_property.dart delete mode 100644 packages/config/lib/src/runtime.dart delete mode 100644 packages/config/pubspec.yaml delete mode 100644 packages/config/test/.gitkeep delete mode 100644 packages/database/.gitignore delete mode 100644 packages/database/CHANGELOG.md delete mode 100644 packages/database/LICENSE.md delete mode 100644 packages/database/README.md delete mode 100644 packages/database/analysis_options.yaml delete mode 100644 packages/database/lib/db.dart delete mode 100644 packages/database/lib/src/managed/attributes.dart delete mode 100644 packages/database/lib/src/managed/backing.dart delete mode 100644 packages/database/lib/src/managed/context.dart delete mode 100644 packages/database/lib/src/managed/data_model.dart delete mode 100644 packages/database/lib/src/managed/data_model_manager.dart delete mode 100644 packages/database/lib/src/managed/document.dart delete mode 100644 packages/database/lib/src/managed/entity.dart delete mode 100644 packages/database/lib/src/managed/exception.dart delete mode 100644 packages/database/lib/src/managed/key_path.dart delete mode 100644 packages/database/lib/src/managed/managed.dart delete mode 100644 packages/database/lib/src/managed/object.dart delete mode 100644 packages/database/lib/src/managed/property_description.dart delete mode 100644 packages/database/lib/src/managed/relationship_type.dart delete mode 100644 packages/database/lib/src/managed/set.dart delete mode 100644 packages/database/lib/src/managed/type.dart delete mode 100644 packages/database/lib/src/managed/validation/impl.dart delete mode 100644 packages/database/lib/src/managed/validation/managed.dart delete mode 100644 packages/database/lib/src/managed/validation/metadata.dart delete mode 100644 packages/database/lib/src/persistent_store/persistent_store.dart delete mode 100644 packages/database/lib/src/query/error.dart delete mode 100644 packages/database/lib/src/query/matcher_expression.dart delete mode 100644 packages/database/lib/src/query/mixin.dart delete mode 100644 packages/database/lib/src/query/page.dart delete mode 100644 packages/database/lib/src/query/predicate.dart delete mode 100644 packages/database/lib/src/query/query.dart delete mode 100644 packages/database/lib/src/query/reduce.dart delete mode 100644 packages/database/lib/src/query/sort_descriptor.dart delete mode 100644 packages/database/lib/src/query/sort_predicate.dart delete mode 100644 packages/database/lib/src/schema/migration.dart delete mode 100644 packages/database/lib/src/schema/schema.dart delete mode 100644 packages/database/lib/src/schema/schema_builder.dart delete mode 100644 packages/database/lib/src/schema/schema_column.dart delete mode 100644 packages/database/lib/src/schema/schema_table.dart delete mode 100644 packages/database/pubspec.yaml delete mode 100644 packages/database/test/.gitkeep delete mode 100644 packages/hashing/.gitignore delete mode 100644 packages/hashing/CHANGELOG.md delete mode 100644 packages/hashing/LICENSE.md delete mode 100644 packages/hashing/README.md delete mode 100644 packages/hashing/analysis_options.yaml delete mode 100644 packages/hashing/lib/hashing.dart delete mode 100644 packages/hashing/lib/src/pbkdf2.dart delete mode 100644 packages/hashing/lib/src/salt.dart delete mode 100644 packages/hashing/pubspec.yaml delete mode 100644 packages/hashing/test/.gitkeep delete mode 100644 packages/http/.gitignore delete mode 100644 packages/http/CHANGELOG.md delete mode 100644 packages/http/LICENSE.md delete mode 100644 packages/http/README.md delete mode 100644 packages/http/analysis_options.yaml delete mode 100644 packages/http/lib/http.dart delete mode 100644 packages/http/lib/src/body_decoder.dart delete mode 100644 packages/http/lib/src/cache_policy.dart delete mode 100644 packages/http/lib/src/controller.dart delete mode 100644 packages/http/lib/src/cors_policy.dart delete mode 100644 packages/http/lib/src/file_controller.dart delete mode 100644 packages/http/lib/src/handler_exception.dart delete mode 100644 packages/http/lib/src/http_codec_repository.dart delete mode 100644 packages/http/lib/src/managed_object_controller.dart delete mode 100644 packages/http/lib/src/query_controller.dart delete mode 100644 packages/http/lib/src/request.dart delete mode 100644 packages/http/lib/src/request_body.dart delete mode 100644 packages/http/lib/src/request_path.dart delete mode 100755 packages/http/lib/src/resource_controller.dart delete mode 100644 packages/http/lib/src/resource_controller_bindings.dart delete mode 100755 packages/http/lib/src/resource_controller_interfaces.dart delete mode 100644 packages/http/lib/src/resource_controller_scope.dart delete mode 100644 packages/http/lib/src/response.dart delete mode 100644 packages/http/lib/src/route_node.dart delete mode 100644 packages/http/lib/src/route_specification.dart delete mode 100644 packages/http/lib/src/router.dart delete mode 100644 packages/http/lib/src/serializable.dart delete mode 100644 packages/http/pubspec.yaml delete mode 100644 packages/http/test/.gitkeep delete mode 100644 packages/isolate/.gitignore delete mode 100644 packages/isolate/CHANGELOG.md delete mode 100644 packages/isolate/README.md delete mode 100644 packages/isolate/analysis_options.yaml delete mode 100644 packages/isolate/lib/isolate.dart delete mode 100644 packages/isolate/lib/src/executable.dart delete mode 100644 packages/isolate/lib/src/executor.dart delete mode 100644 packages/isolate/lib/src/source_generator.dart delete mode 100644 packages/isolate/pubspec.yaml delete mode 100644 packages/isolate/test/.gitkeep delete mode 100644 packages/openapi/.gitignore delete mode 100644 packages/openapi/CHANGELOG.md delete mode 100644 packages/openapi/README.md delete mode 100644 packages/openapi/analysis_options.yaml delete mode 100644 packages/openapi/lib/documentable.dart delete mode 100644 packages/openapi/lib/object.dart delete mode 100644 packages/openapi/lib/src/documentable.dart delete mode 100644 packages/openapi/lib/src/object.dart delete mode 100644 packages/openapi/lib/src/util/list_helper.dart delete mode 100644 packages/openapi/lib/src/util/map_helper.dart delete mode 100644 packages/openapi/lib/src/v2/document.dart delete mode 100644 packages/openapi/lib/src/v2/header.dart delete mode 100644 packages/openapi/lib/src/v2/metadata.dart delete mode 100644 packages/openapi/lib/src/v2/operation.dart delete mode 100644 packages/openapi/lib/src/v2/parameter.dart delete mode 100644 packages/openapi/lib/src/v2/path.dart delete mode 100644 packages/openapi/lib/src/v2/property.dart delete mode 100644 packages/openapi/lib/src/v2/response.dart delete mode 100644 packages/openapi/lib/src/v2/schema.dart delete mode 100644 packages/openapi/lib/src/v2/security.dart delete mode 100644 packages/openapi/lib/src/v2/types.dart delete mode 100644 packages/openapi/lib/src/v3/callback.dart delete mode 100644 packages/openapi/lib/src/v3/components.dart delete mode 100644 packages/openapi/lib/src/v3/document.dart delete mode 100644 packages/openapi/lib/src/v3/encoding.dart delete mode 100644 packages/openapi/lib/src/v3/header.dart delete mode 100644 packages/openapi/lib/src/v3/media_type.dart delete mode 100644 packages/openapi/lib/src/v3/metadata.dart delete mode 100644 packages/openapi/lib/src/v3/operation.dart delete mode 100644 packages/openapi/lib/src/v3/parameter.dart delete mode 100644 packages/openapi/lib/src/v3/path.dart delete mode 100644 packages/openapi/lib/src/v3/request_body.dart delete mode 100644 packages/openapi/lib/src/v3/response.dart delete mode 100644 packages/openapi/lib/src/v3/schema.dart delete mode 100644 packages/openapi/lib/src/v3/security.dart delete mode 100644 packages/openapi/lib/src/v3/server.dart delete mode 100644 packages/openapi/lib/src/v3/types.dart delete mode 100644 packages/openapi/lib/util.dart delete mode 100644 packages/openapi/lib/v2.dart delete mode 100644 packages/openapi/lib/v3.dart delete mode 100644 packages/openapi/pubspec.yaml delete mode 100644 packages/openapi/test/specs/kubernetes.json delete mode 100644 packages/openapi/test/specs/stripe.json delete mode 100644 packages/openapi/test/v2_test.dart delete mode 100644 packages/openapi/test/v3_test.dart delete mode 100644 packages/runtime/.gitignore delete mode 100644 packages/runtime/CHANGELOG.md delete mode 100644 packages/runtime/README.md delete mode 100644 packages/runtime/analysis_options.yaml delete mode 100644 packages/runtime/lib/runtime.dart delete mode 100644 packages/runtime/lib/slow_coerce.dart delete mode 100644 packages/runtime/lib/src/analyzer.dart delete mode 100644 packages/runtime/lib/src/build.dart delete mode 100644 packages/runtime/lib/src/build_context.dart delete mode 100644 packages/runtime/lib/src/build_manager.dart delete mode 100644 packages/runtime/lib/src/compiler.dart delete mode 100644 packages/runtime/lib/src/context.dart delete mode 100644 packages/runtime/lib/src/exceptions.dart delete mode 100644 packages/runtime/lib/src/generator.dart delete mode 100644 packages/runtime/lib/src/mirror_coerce.dart delete mode 100644 packages/runtime/lib/src/mirror_context.dart delete mode 100644 packages/runtime/pubspec.yaml delete mode 100644 packages/runtime/test/.gitkeep delete mode 100644 packages/typeforge/.gitignore delete mode 100644 packages/typeforge/CHANGELOG.md delete mode 100644 packages/typeforge/README.md delete mode 100644 packages/typeforge/analysis_options.yaml delete mode 100644 packages/typeforge/lib/cast.dart delete mode 100644 packages/typeforge/lib/codable.dart delete mode 100644 packages/typeforge/lib/src/base_cast.dart delete mode 100644 packages/typeforge/lib/src/coding.dart delete mode 100644 packages/typeforge/lib/src/collection_cast.dart delete mode 100644 packages/typeforge/lib/src/constants.dart delete mode 100644 packages/typeforge/lib/src/keyed_archive.dart delete mode 100644 packages/typeforge/lib/src/list_archive.dart delete mode 100644 packages/typeforge/lib/src/primitive_cast.dart delete mode 100644 packages/typeforge/lib/src/reference_resolver.dart delete mode 100644 packages/typeforge/lib/src/referenceable.dart delete mode 100644 packages/typeforge/lib/src/special_cast.dart delete mode 100644 packages/typeforge/lib/src/utility_cast.dart delete mode 100644 packages/typeforge/pubspec.yaml delete mode 100644 packages/typeforge/test/decode_test.dart delete mode 100644 packages/typeforge/test/encode_test.dart diff --git a/.prompts/create.package.prompt b/.prompts/create.package.prompt new file mode 100644 index 0000000..a73892f --- /dev/null +++ b/.prompts/create.package.prompt @@ -0,0 +1,36 @@ +temperature: 0.5 +maxTokens: 30000 +--- + +You are an expert senior software engineer. You are highly proficient in HTML, CSS, JavaScript, PHP, Python, Perl, Dart, Flutter, SQL, JSON, YAML, MongoDB, MySQL, PostgreSQL, Docker, Kubernetes, Git, GitHub, Shell, Make, Melos, CI/CD, Firebase, Blockchain Development, and Technologies with over 10+ years of experience in software and blockchain development. You are an expert in Laravel, Symfony, CodeIgniter PHP frameworks, and Conduit, Angel3, Serverpod, Riverpod, Vania, Nylo Dart frameworks. You are also an expert in writing unit tests, regular expressions, and project documentation. Additionally, you excel at educating and teaching others. + + +{{{ input }}} + +Please create a Laravel Inspired Event Package in Dart, ensuring that the functionality remains consistent, and the code follows Dart's syntax and conventions. Follow these requirements: +1. Create: Create the entire Laravel Inspired package in Dart, Don't skip anything and do not place stubs or place holders in the created code. +1. Production Grade: Please create a production grade package. +2. Properties: Ensure that properties are declared correctly in Dart, using the appropriate syntax for private variables. +3. Constructor: Translate the PHP constructor method to Dart, ensuring proper initialization of variables. +4. Methods: Create all methods, including getters and setters, ensuring they adhere to Dart conventions. +5. Instance Creation: Create an instance of the Dart class and demonstrate calling the methods to ensure functionality is retained. +6. Error Handling: Implement error handling mechanisms in Dart to handle exceptions and errors. +7. Comments: Add any comments from the Laravel code to Dart comments. Add comments to the created Dart code to explain the logic and functionality. +8. Identify: Identify and use Dart packages and 3rd-party libraries that can replace libraries used in the PHP code. +10. Documentation: Create a README.md file that explains how to use the package, including installation, usage, and examples. +11. Testing: Create unit tests for the package to ensure functionality and reliability. +12. Code Formatting: Format the Dart code according to Dart's style guide. +13. Create a Laravel Inspired package for each of the packages that are dependent on the Event package. Be sure to reference the event package you created. + +In addition to the above requirements, please also: +- Produce 100% equivalent Dart code. +- Identify and use Dart packages and 3rd-party libraries that can replace libraries used in the PHP code. +- Identify and use Dart's equivalent of PHP's built-in functions. +- Keep the ported output in the same code block. If you need to continue, begin in the same code block where you left off. +- Replace PHP's $this keyword with Dart's this where necessary. +- Use Dart's @override annotation if necessary for any overridden methods. +- Replace echo with print for output in Dart. +- Pay attention to the differences in syntax between PHP and Dart. +- Ensure the Dart code is idiomatic and leverages Dart-specific features where appropriate. +- Maintain the logic and flow of the original Laravel Package. +- Explain the changes made in the Dart code compared to the PHP code. \ No newline at end of file diff --git a/examples/app-template/pubspec.yaml b/examples/app-template/pubspec.yaml index c3aab90..4a3b4f4 100644 --- a/examples/app-template/pubspec.yaml +++ b/examples/app-template/pubspec.yaml @@ -1,4 +1,4 @@ -name: app-template +name: app_template description: An absolute bare-bones protevus app. version: 1.0.0 # repository: https://github.com/my_org/my_repo diff --git a/packages/app/.gitignore b/packages/app/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/app/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/app/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/app/LICENSE.md b/packages/app/LICENSE.md deleted file mode 100644 index 0fd0d03..0000000 --- a/packages/app/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) - -The Laravel Framework is Copyright (c) Taylor Otwell -The Fabric Framework is Copyright (c) Vieo, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/app/README.md b/packages/app/README.md deleted file mode 100644 index 757f4c9..0000000 --- a/packages/app/README.md +++ /dev/null @@ -1 +0,0 @@ -

\ No newline at end of file diff --git a/packages/app/analysis_options.yaml b/packages/app/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/app/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/app/lib/application.dart b/packages/app/lib/application.dart deleted file mode 100644 index 10fbea6..0000000 --- a/packages/app/lib/application.dart +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library exports various components of the application framework. -/// -/// It includes: -/// - Application and ApplicationServer classes for managing the application lifecycle -/// - Channel for handling request/response cycles -/// - IsolateApplicationServer and IsolateSupervisor for managing isolates -/// - Options for configuring the application -/// - Starter for initializing and running the application -library; - -export 'src/application.dart'; -export 'src/application_server.dart'; -export 'src/channel.dart'; -export 'src/isolate_application_server.dart'; -export 'src/isolate_supervisor.dart'; -export 'src/options.dart'; -export 'src/starter.dart'; diff --git a/packages/app/lib/src/application.dart b/packages/app/lib/src/application.dart deleted file mode 100644 index 01db341..0000000 --- a/packages/app/lib/src/application.dart +++ /dev/null @@ -1,379 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'dart:isolate'; - -import 'package:protevus_application/application.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:logging/logging.dart'; - -export 'application_server.dart'; -export 'options.dart'; -export 'starter.dart'; - -/// The Application class is responsible for starting and managing instances of an ApplicationChannel. -/// -/// An application object opens HTTP listeners that forward requests to instances of your [ApplicationChannel]. -/// It is unlikely that you need to use this class directly - the `conduit serve` command creates an application object -/// on your behalf. -class Application { - /// A list of isolates that this application supervises. - /// - /// This list contains [ApplicationIsolateSupervisor] instances, each representing - /// an isolate running a separate instance of the application. These supervisors - /// are responsible for managing the lifecycle and communication with their - /// respective isolates. The list is populated when the application starts and - /// is cleared when the application stops. - List supervisors = []; - - /// The [ApplicationServer] listening for HTTP requests while under test. - /// - /// This property is only valid when an application is started via [startOnCurrentIsolate]. - /// It represents the server instance that handles incoming HTTP requests during testing. - /// The server is initialized when the application starts on the current isolate and - /// provides access to the underlying HTTP server and application channel. - /// - /// Note: This property should not be accessed before calling [startOnCurrentIsolate], - /// as it will not be initialized until then. - late ApplicationServer server; - - /// The [ApplicationChannel] handling requests while under test. - /// - /// This property provides access to the application channel instance when the application - /// is started using [startOnCurrentIsolate]. It allows direct interaction with the channel - /// during testing, enabling access to its properties and methods. - /// - /// The returned value is cast to type [T], which should match the generic type parameter - /// of the [Application] class. - /// - /// This property is only valid and accessible after calling [startOnCurrentIsolate]. - /// Attempting to access it before starting the application or when using [start] instead - /// of [startOnCurrentIsolate] may result in unexpected behavior or errors. - /// - /// Usage example: - /// ```dart - /// final app = Application(); - /// await app.startOnCurrentIsolate(); - /// final myChannel = app.channel; - /// // Now you can interact with myChannel for testing purposes - /// ``` - T get channel => server.channel as T; - - /// The logger that this application will write messages to. - /// - /// This logger is used throughout the application to record messages, errors, - /// and other important information. It is configured with the name 'protevus', - /// which will appear as the source of all log messages generated by this logger. - /// - /// The Logger class is likely from a logging package, providing various methods - /// for different log levels (e.g., info, warning, error) and potentially - /// supporting different output destinations or formatting options. - /// - /// Usage of this logger helps in debugging, monitoring, and maintaining the - /// application by providing a centralized way to capture and analyze runtime - /// information. - Logger logger = Logger("protevus"); - - /// The options used to configure this application. - /// - /// This property holds an instance of [ApplicationOptions] that contains various - /// configuration settings for the application. These options can include things - /// like port numbers, database configurations, or any other application-specific - /// settings. - /// - /// The options are typically set before the application is started. It's important - /// to note that modifying these options after the application has been started - /// will not have any effect on the running application. - /// - /// Example usage: - /// ```dart - /// final app = Application(); - /// app.options.port = 8080; - /// app.options.configurationFilePath = 'config.yaml'; - /// await app.start(); - /// ``` - /// - /// Default value is an instance of [ApplicationOptions] with default settings. - ApplicationOptions options = ApplicationOptions(); - - /// The duration to wait for each isolate during startup before failing. - /// - /// This property sets the maximum time allowed for each isolate to start up - /// during the application's initialization process. If an isolate fails to - /// complete its startup within this time frame, a [TimeoutException] is thrown. - /// - /// Defaults to 30 seconds. - Duration isolateStartupTimeout = const Duration(seconds: 30); - - /// Indicates whether the application is currently running. - /// - /// This will return true if [start]/[startOnCurrentIsolate] have been invoked and completed; i.e. this is the synchronous version of the [Future] returned by [start]/[startOnCurrentIsolate]. - /// - /// This value will return to false after [stop] has completed. - bool get isRunning => _hasFinishedLaunching; - - /// Indicates whether the application has finished launching. - /// - /// This boolean flag is set to true once the application has successfully - /// completed its startup process, including initializing all isolates and - /// opening HTTP listeners. It is used internally to track the application's - /// running state and is consulted by the [isRunning] getter. - /// - /// The value is set to false initially and when the application is stopped, - /// and set to true at the end of successful [start] or [startOnCurrentIsolate] - /// method execution. - bool _hasFinishedLaunching = false; - - /// Retrieves the [ChannelRuntime] for the current application channel type. - /// - /// This getter accesses the [RuntimeContext.current] map using the generic type [T] - /// (which represents the application's channel type) as the key. It then casts - /// the retrieved value to [ChannelRuntime]. - /// - /// The [ChannelRuntime] object contains runtime information and utilities - /// specific to the channel type, which are used in various parts of the - /// application for setup, initialization, and execution. - /// - /// This getter is used internally by the Application class to access - /// channel-specific runtime information without exposing it publicly. - ChannelRuntime get _runtime => RuntimeContext.current[T] as ChannelRuntime; - - /// Starts this application, allowing it to handle HTTP requests. - /// - /// This method initializes the application by spawning a specified number of isolates, - /// each running an instance of the application channel. It then sets up an HTTP listener - /// to distribute incoming requests across these isolates. - /// - /// The [Future] returned from this method will complete once all isolates have successfully started - /// and are available to handle requests. - /// - /// If your application channel implements [ApplicationChannel.initializeApplication], - /// it will be invoked prior to any isolate being spawned. - /// - /// See also [startOnCurrentIsolate] for starting an application when running automated tests. - Future start({int numberOfInstances = 1, bool consoleLogging = false}) async { - if (supervisors.isNotEmpty) { - throw StateError( - "Application error. Cannot invoke 'start' on already running Conduit application.", - ); - } - - if (options.address == null) { - if (options.isIpv6Only) { - options.address = InternetAddress.anyIPv6; - } else { - options.address = InternetAddress.anyIPv4; - } - } - - try { - await _runtime.runGlobalInitialization(options); - - for (var i = 0; i < numberOfInstances; i++) { - final supervisor = await _spawn( - this, - options, - i + 1, - logger, - isolateStartupTimeout, - logToConsole: consoleLogging, - ); - supervisors.add(supervisor); - await supervisor.resume(); - } - } catch (e, st) { - logger.severe("$e", this, st); - await stop().timeout(const Duration(seconds: 5)); - rethrow; - } - for (final sup in supervisors) { - sup.sendPendingMessages(); - } - _hasFinishedLaunching = true; - } - - /// Starts the application on the current isolate without spawning additional isolates. - /// - /// An application started in this way will run on the same isolate this method is invoked on. - /// Performance is limited when running the application with this method; prefer to use [start]. - Future startOnCurrentIsolate() async { - if (supervisors.isNotEmpty) { - throw StateError( - "Application error. Cannot invoke 'test' on already running Conduit application.", - ); - } - - options.address ??= InternetAddress.loopbackIPv4; - - try { - await _runtime.runGlobalInitialization(options); - - server = ApplicationServer(_runtime.channelType, options, 1); - - await server.start(); - _hasFinishedLaunching = true; - } catch (e, st) { - logger.severe("$e", this, st); - await stop().timeout(const Duration(seconds: 5)); - rethrow; - } - } - - /// Stops the application from running. - /// - /// This method performs the following actions: - /// 1. Sets the '_hasFinishedLaunching' flag to false. - /// 2. Stops all supervisor isolates concurrently. - /// 3. Handles potential errors during supervisor shutdown, particularly checking for 'LateError'. - /// 4. Attempts to close the server forcefully. - /// 5. Logs any errors that occur during server closure. - /// 6. Resets the '_hasFinishedLaunching' flag and clears the supervisors list. - /// 7. Removes all listeners from the logger. - /// - /// If a 'LateError' is encountered during supervisor shutdown, it throws a [StateError] - /// indicating that the channel type was not properly loaded. - /// - /// This method ensures a clean shutdown of all application components and should be - /// called when the application needs to be terminated. - Future stop() async { - _hasFinishedLaunching = false; - await Future.wait(supervisors.map((s) => s.stop())) - .onError((error, stackTrace) { - if (error.runtimeType.toString() == 'LateError') { - throw StateError( - 'Channel type $T was not loaded in the current isolate. Check that the class was declared and public.', - ); - } - throw error! as Error; - }); - - try { - await server.server.close(force: true); - } catch (e) { - logger.severe(e); - } - - _hasFinishedLaunching = false; - supervisors = []; - - logger.clearListeners(); - } - - /// Creates an [APIDocument] from an [ApplicationChannel]. - /// - /// This static method generates API documentation for a given application channel type. - /// It is primarily used by the 'conduit document' CLI command to create OpenAPI (formerly Swagger) documentation. - /// - /// The method performs the following steps: - /// 1. Retrieves the runtime context for the specified channel type. - /// 2. Runs global initialization with the provided configuration. - /// 3. Creates an ApplicationServer instance. - /// 4. Prepares the channel. - /// 5. Generates the API documentation. - /// 6. Closes the channel. - /// 7. Returns the generated APIDocument. - /// - /// Parameters: - /// - [type]: The Type of the ApplicationChannel subclass. - /// - [config]: The ApplicationOptions containing configuration for the application. - /// - [projectSpec]: A Map containing additional project-specific information for the documentation. - /// - /// Returns: - /// A Future that resolves to an [APIDocument] containing the generated API documentation. - /// - /// This method is called by the `conduit document` CLI. - static Future document( - Type type, - ApplicationOptions config, - Map projectSpec, - ) async { - final runtime = RuntimeContext.current[type] as ChannelRuntime; - - await runtime.runGlobalInitialization(config); - - final server = ApplicationServer(runtime.channelType, config, 1); - - await server.channel.prepare(); - - final doc = await server.channel.documentAPI(projectSpec); - - await server.channel.close(); - - return doc; - } - - /// Spawns a new isolate to run an instance of the application. - /// - /// This method creates a new isolate that runs an instance of the application channel. - /// It sets up the necessary communication channels and initializes the isolate with - /// the application's configuration and runtime information. - /// - /// Parameters: - /// - [application]: The main Application instance. - /// - [config]: ApplicationOptions containing the configuration for this instance. - /// - [identifier]: A unique identifier for this isolate. - /// - [logger]: The Logger instance for logging. - /// - [startupTimeout]: The maximum duration allowed for the isolate to start up. - /// - [logToConsole]: Whether to enable console logging for this isolate (default: false). - /// - /// Returns: - /// A Future that resolves to an [ApplicationIsolateSupervisor] managing the new isolate. - /// - /// This method is crucial for scaling the application across multiple isolates, - /// allowing for better performance and resource utilization. - Future _spawn( - Application application, - ApplicationOptions config, - int identifier, - Logger logger, - Duration startupTimeout, { - bool logToConsole = false, - }) async { - final receivePort = ReceivePort(); - - final libraryUri = _runtime.libraryUri; - final typeName = _runtime.name; - final entryPoint = _runtime.isolateEntryPoint; - - final initialMessage = ApplicationInitialServerMessage( - typeName, - libraryUri, - config, - identifier, - receivePort.sendPort, - logToConsole: logToConsole, - ); - final isolate = - await Isolate.spawn(entryPoint, initialMessage, paused: true); - - return ApplicationIsolateSupervisor( - application, - isolate, - receivePort, - identifier, - logger, - startupTimeout: startupTimeout, - ); - } -} - -/// Represents an exception that occurs during the startup process of an application. -/// -/// Contains the original exception that halted startup. -class ApplicationStartupException implements Exception { - ApplicationStartupException(this.originalException); - - dynamic originalException; - - @override - String toString() => originalException.toString(); -} diff --git a/packages/app/lib/src/application_server.dart b/packages/app/lib/src/application_server.dart deleted file mode 100644 index f26effb..0000000 --- a/packages/app/lib/src/application_server.dart +++ /dev/null @@ -1,274 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'package:logging/logging.dart'; -import 'package:protevus_application/application.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// A class representing an application server in the Conduit framework. -/// -/// The ApplicationServer class is responsible for managing the lifecycle of an HTTP server -/// and its associated [ApplicationChannel]. It handles server creation, starting, and stopping, -/// as well as routing incoming requests to the appropriate handlers. -/// -/// Key features: -/// - Creates and manages an instance of [ApplicationChannel] -/// - Configures and starts an HTTP or HTTPS server -/// - Handles incoming requests and routes them to the appropriate controller -/// - Manages server lifecycle (start, stop, close) -/// - Provides logging capabilities -/// - Supports both IPv4 and IPv6 -/// - Handles secure connections with SSL/TLS -/// -/// This class is typically instantiated and managed by the Application class and should not -/// be created directly in most cases -class ApplicationServer { - /// Creates a new server instance. - /// - /// You should not need to invoke this method directly. - ApplicationServer(this.channelType, this.options, this.identifier) { - channel = (RuntimeContext.current[channelType] as ChannelRuntime) - .instantiateChannel() - ..server = this - ..options = options; - } - - /// The configuration options used to start this server's [channel]. - /// - /// This property holds an instance of [ApplicationOptions] which contains - /// various settings used to configure the server, such as the address to bind to, - /// the port number, SSL/TLS settings, and other application-specific options. - /// These options are passed to the [ApplicationChannel] when it is initialized. - ApplicationOptions options; - - /// The underlying [HttpServer] instance used by this [ApplicationServer]. - /// - /// This property represents the core HTTP server that handles incoming requests. - /// It is initialized when the server starts and is used throughout the lifecycle - /// of the [ApplicationServer] to manage incoming connections and route requests - /// to the appropriate handlers. - /// - /// The server can be either a standard HTTP server or an HTTPS server, depending - /// on the configuration and security context provided during initialization. - late final HttpServer server; - - /// The instance of [ApplicationChannel] serving requests. - /// - /// This property represents the primary request handling pipeline for the application. - /// It is instantiated when the ApplicationServer is created and is responsible for - /// processing incoming HTTP requests, routing them to appropriate controllers, - /// and generating responses. - /// - /// The [ApplicationChannel] is a custom class defined by the application developer - /// that sets up the request handling logic, including middleware, controllers, - /// and other application-specific components. - late ApplicationChannel channel; - - /// The cached entrypoint of [channel]. - /// - /// This property stores the main [Controller] that serves as the entry point for request handling. - /// It is initialized when the server starts and is used to process incoming HTTP requests. - /// The entrypoint controller typically represents the root of the request handling pipeline - /// and may delegate to other controllers or middleware as needed. - late Controller entryPoint; - - /// The type of [ApplicationChannel] this server will use. - /// - /// This property stores the Type of the ApplicationChannel subclass that will be - /// instantiated and used by this ApplicationServer. The ApplicationChannel - /// defines the request handling logic and routing for the application. - final Type channelType; - - /// Target for sending messages to other [ApplicationChannel.messageHub]s. - /// - /// This property represents an [EventSink] that can be used to send messages - /// to other [ApplicationChannel.messageHub]s across different instances of - /// the application. It is primarily used for inter-server communication in - /// distributed setups. - /// - /// The [hubSink] is typically set and managed by instances of [ApplicationMessageHub]. - /// Application developers should not directly modify or use this property, as it is - /// intended for internal framework use. - /// - /// The sink can be null if no message hub has been configured for this server. - EventSink? hubSink; - - /// Indicates whether this server requires an HTTPS listener. - /// - /// This getter returns a boolean value that determines if the server - /// should use HTTPS instead of HTTP. It is typically set to true when - /// a security context is provided during server initialization. - /// - /// Returns: - /// [bool]: true if the server requires HTTPS, false otherwise. - bool get requiresHTTPS => _requiresHTTPS; - - /// Indicates whether this server instance is configured to use HTTPS. - /// - /// This private variable is set to true when a security context is provided - /// during server initialization, indicating that the server should use HTTPS. - /// It is used internally to determine the server's connection type and is - /// accessed through the public getter [requiresHTTPS]. - /// - /// The value is false by default, assuming HTTP connection, and is only set to - /// true when HTTPS is explicitly configured. - bool _requiresHTTPS = false; - - /// The unique identifier of this instance. - /// - /// Each instance has its own identifier, a numeric value starting at 1, to identify it - /// among other instances. - /// - /// This identifier is used to distinguish between different [ApplicationServer] instances - /// when multiple servers are running concurrently. It's particularly useful for logging - /// and debugging purposes, allowing developers to trace which server instance is handling - /// specific requests or operations. - /// - /// The identifier is typically assigned automatically by the [Application] class when - /// creating new server instances, ensuring that each server has a unique number. - /// - /// Example: - /// If three server instances are created, they might have identifiers 1, 2, and 3 respectively. - int identifier; - - /// Returns the logger instance for this ApplicationServer. - /// - /// This getter provides access to a [Logger] instance specifically configured - /// for the Conduit framework. The logger is named "conduit" and can be used - /// throughout the ApplicationServer and its associated classes for consistent - /// logging purposes. - /// - /// The logger can be used to record various levels of information, warnings, - /// and errors during the server's operation, which is crucial for debugging - /// and monitoring the application's behavior. - /// - /// Returns: - /// A [Logger] instance named "conduit". - Logger get logger => Logger("protevus"); - - /// Starts this instance, allowing it to receive HTTP requests. - /// - /// This method initializes the server, preparing it to handle incoming HTTP requests. - /// It performs the following steps: - /// 1. Prepares the channel by calling [channel.prepare()]. - /// 2. Sets up the entry point for request handling. - /// 3. Binds the HTTP server to the specified address and port. - /// 4. Configures HTTPS if a security context is provided. - /// - /// The method supports both HTTP and HTTPS connections, determined by the presence - /// of a security context. It also handles IPv6 configuration and server sharing options. - /// - /// Parameters: - /// [shareHttpServer] - A boolean indicating whether to share the HTTP server - /// across multiple instances. Defaults to false. - /// - /// Returns: - /// A [Future] that completes when the server has successfully started and is - /// ready to receive requests. - /// - /// Throws: - /// May throw exceptions related to network binding or security context configuration. - /// - /// Note: - /// This method should not be invoked directly under normal circumstances. - /// It is typically called by the framework during the application startup process. - Future start({bool shareHttpServer = false}) async { - logger.fine("ApplicationServer($identifier).start entry"); - - await channel.prepare(); - - entryPoint = channel.entryPoint; - entryPoint.didAddToChannel(); - - logger.fine("ApplicationServer($identifier).start binding HTTP"); - final securityContext = channel.securityContext; - if (securityContext != null) { - _requiresHTTPS = true; - - server = await HttpServer.bindSecure( - options.address, - options.port, - securityContext, - requestClientCertificate: options.isUsingClientCertificate, - v6Only: options.isIpv6Only, - shared: shareHttpServer, - ); - } else { - _requiresHTTPS = false; - - server = await HttpServer.bind( - options.address, - options.port, - v6Only: options.isIpv6Only, - shared: shareHttpServer, - ); - } - - logger.fine("ApplicationServer($identifier).start bound HTTP"); - return didOpen(); - } - - /// Closes this HTTP server and associated channel. - /// - /// This method performs the following steps: - /// 1. Closes the HTTP server, forcibly terminating any ongoing connections. - /// 2. Closes the associated [ApplicationChannel]. - /// 3. Closes the [hubSink] if it exists. - /// - /// The method logs the progress of each step for debugging purposes. - /// - /// Returns: - /// A [Future] that completes when all closing operations are finished. - /// - /// Note: - /// The [hubSink] is actually closed by channel.messageHub.close, but it's - /// explicitly closed here to satisfy the Dart analyzer. - Future close() async { - logger.fine("ApplicationServer($identifier).close Closing HTTP listener"); - await server.close(force: true); - logger.fine("ApplicationServer($identifier).close Closing channel"); - await channel.close(); - - // This is actually closed by channel.messageHub.close, but this shuts up the analyzer. - hubSink?.close(); - logger.fine("ApplicationServer($identifier).close Closing complete"); - } - - /// Invoked when this server becomes ready to receive requests. - /// - /// [ApplicationChannel.willStartReceivingRequests] is invoked after this opening has completed. - Future didOpen() async { - server.serverHeader = "conduit/$identifier"; - - logger.fine("ApplicationServer($identifier).didOpen start listening"); - server.map((baseReq) => Request(baseReq)).listen(entryPoint.receive); - - channel.willStartReceivingRequests(); - logger.info("Server conduit/$identifier started."); - } - - /// Sends an application event. - /// - /// This method is designed to handle application-wide events. By default, - /// it does nothing and serves as a placeholder for potential event handling - /// implementations in derived classes. - /// - /// Parameters: - /// [event]: A dynamic object representing the event to be sent. - /// It can be of any type, allowing flexibility in event structures. - /// - /// Note: - /// Override this method in subclasses to implement specific event handling logic. - void sendApplicationEvent(dynamic event) { - // By default, do nothing - } -} diff --git a/packages/app/lib/src/channel.dart b/packages/app/lib/src/channel.dart deleted file mode 100644 index 7707eb6..0000000 --- a/packages/app/lib/src/channel.dart +++ /dev/null @@ -1,401 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_application/application.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:logging/logging.dart'; -import 'package:meta/meta.dart'; - -/// An abstract class that defines the behavior specific to your application. -/// -/// You create a subclass of [ApplicationChannel] to initialize your application's services and define how HTTP requests are handled by your application. -/// There *must* only be one subclass in an application and it must be visible to your application library file, e.g., 'package:my_app/my_app.dart'. -/// -/// You must implement [entryPoint] to define the controllers that comprise your application channel. Most applications will -/// also override [prepare] to read configuration values and initialize services. Some applications will provide an [initializeApplication] -/// method to do global startup tasks. -/// -/// When your application is started, an instance of your application channel is created for each isolate (see [Application.start]). Each instance -/// is a replica of your application that runs in its own memory isolated thread. -abstract class ApplicationChannel implements APIComponentDocumenter { - /// Provides global initialization for the application. - /// - /// Most of your application initialization code is written in [prepare], which is invoked for each isolate. For initialization that - /// needs to occur once per application start, you must provide an implementation for this method. This method is invoked prior - /// to any isolates being spawned. - /// - /// You may alter [options] in this method and those changes will be available in each instance's [options]. To pass arbitrary data - /// to each of your isolates at startup, add that data to [ApplicationOptions.context]. - /// - /// Example: - /// - /// class MyChannel extends ApplicationChannel { - /// static Future initializeApplication(ApplicationOptions options) async { - /// options.context["runtimeOption"] = "foo"; - /// } - /// - /// Future prepare() async { - /// if (options.context["runtimeOption"] == "foo") { - /// // do something - /// } - /// } - /// } - /// - /// - /// Do not configure objects like [CodecRegistry], [CORSPolicy.defaultPolicy] or any other value that isn't explicitly passed through [options]. - /// - /// * Note that static methods are not inherited in Dart and therefore you are not overriding this method. The declaration of this method in the base [ApplicationChannel] class - /// is for documentation purposes. - static Future initializeApplication(ApplicationOptions options) async {} - - /// Returns a Logger instance for this object. - /// - /// This logger's name appears as 'conduit'. - Logger get logger => Logger("protevus"); - - /// Returns the [ApplicationServer] instance that sends HTTP requests to this object. - /// - /// This getter provides access to the server associated with this ApplicationChannel. - /// The server is responsible for handling incoming HTTP requests and routing them - /// to the appropriate controllers within the channel. - ApplicationServer get server => _server; - - /// Sets the ApplicationServer for this channel and establishes message hub connections. - /// - /// This setter method performs two main tasks: - /// 1. It assigns the provided [server] to the private [_server] variable. - /// 2. It sets up the message hub connections: - /// - It adds a listener to the outbound stream of the messageHub, which sends - /// application events through the server. - /// - It sets the inbound sink of the messageHub as the hubSink of the server. - /// - /// This setup allows for inter-isolate communication through the ApplicationMessageHub. - /// - /// [server] The ApplicationServer instance to be set for this channel. - set server(ApplicationServer server) { - _server = server; - messageHub._outboundController.stream.listen(server.sendApplicationEvent); - server.hubSink = messageHub._inboundController.sink; - } - - /// A messaging hub for inter-isolate communication within the application. - /// - /// You use this object to synchronize state across the isolates of an application. Any data sent - /// through this object will be received by every other channel in your application (except the one that sent it). - final ApplicationMessageHub messageHub = ApplicationMessageHub(); - - /// Returns a SecurityContext for HTTPS configuration if certificate and private key files are provided. - /// - /// If this value is non-null, the [server] receiving HTTP requests will only accept requests over HTTPS. - /// - /// By default, this value is null. If the [ApplicationOptions] provided to the application are configured to - /// reference a private key and certificate file, this value is derived from that information. You may override - /// this method to provide an alternative means to creating a [SecurityContext]. - SecurityContext? get securityContext { - if (options?.certificateFilePath == null || - options?.privateKeyFilePath == null) { - return null; - } - - return SecurityContext() - ..useCertificateChain(options!.certificateFilePath!) - ..usePrivateKey(options!.privateKeyFilePath!); - } - - /// The configuration options used to start the application this channel belongs to. - /// - /// These options are set when starting the application. Changes to this object have no effect - /// on other isolates. - /// - /// This property holds an instance of [ApplicationOptions] which contains various - /// configuration settings for the application. These options are typically set - /// during the application's startup process. - /// - /// The options stored here are specific to this channel instance and do not - /// affect other isolates running in the application. This means that modifying - /// these options at runtime will only impact the current isolate. - /// - /// The property is nullable, allowing for cases where options might not be set - /// or where default configurations are used in the absence of specific options. - ApplicationOptions? options; - - /// You implement this accessor to define how HTTP requests are handled by your application. - /// - /// You must implement this method to return the first controller that will handle an HTTP request. Additional controllers - /// are linked to the first controller to create the entire flow of your application's request handling logic. This method - /// is invoked during startup and controllers cannot be changed after it is invoked. This method is always invoked after - /// [prepare]. - /// - /// In most applications, the first controller is a [Router]. Example: - /// - /// @override - /// Controller get entryPoint { - /// final router = Router(); - /// router.route("/path").link(() => PathController()); - /// return router; - /// } - Controller get entryPoint; - - /// The [ApplicationServer] instance associated with this channel. - /// - /// This private variable stores the server that handles HTTP requests for this - /// ApplicationChannel. It is marked as 'late' because it will be initialized - /// after the channel is created, typically when the 'server' setter is called. - /// - /// The server is responsible for managing incoming HTTP connections and - /// routing requests to the appropriate controllers within the channel. - late ApplicationServer _server; - - /// Performs initialization tasks for the application channel. - /// - /// This method allows this instance to perform any initialization (other than setting up the [entryPoint]). This method - /// is often used to set up services that [Controller]s use to fulfill their duties. This method is invoked - /// prior to [entryPoint], so that the services it creates can be injected into [Controller]s. - /// - /// By default, this method does nothing. - Future prepare() async {} - - /// Overridable method called just before the application starts receiving requests. - /// - /// Override this method to take action just before [entryPoint] starts receiving requests. By default, does nothing. - void willStartReceivingRequests() {} - - /// Releases resources and performs cleanup when the application channel is closing. - /// - /// This method is invoked when the owning [Application] is stopped. It closes open ports - /// that this channel was using so that the application can be properly shut down. - /// - /// Prefer to use [ServiceRegistry] instead of overriding this method. - /// - /// If you do override this method, you must call the super implementation. - @mustCallSuper - Future close() async { - logger.fine( - "ApplicationChannel(${server.identifier}).close: closing messageHub", - ); - await messageHub.close(); - } - - /// Creates an OpenAPI document for the components and paths in this channel. - /// - /// This method generates a complete OpenAPI specification document for the application, - /// including all components, paths, and operations defined in the channel. - /// - /// The documentation process first invokes [documentComponents] on this channel. Every controller in the channel will have its - /// [documentComponents] methods invoked. Any declared property - /// of this channel that implements [APIComponentDocumenter] will have its [documentComponents] - /// method invoked. If there services that are part of the application, but not stored as properties of this channel, you may override - /// [documentComponents] in your subclass to add them. You must call the superclass' implementation of [documentComponents]. - /// - /// After components have been documented, [APIOperationDocumenter.documentPaths] is invoked on [entryPoint]. The controllers - /// of the channel will add paths and operations to the document during this process. - /// - /// This method should not be overridden. - /// - /// [projectSpec] should contain the keys `name`, `version` and `description`. - Future documentAPI(Map projectSpec) async { - final doc = APIDocument()..components = APIComponents(); - final root = entryPoint; - root.didAddToChannel(); - - final context = APIDocumentContext(doc); - documentComponents(context); - - doc.paths = root.documentPaths(context); - - doc.info = APIInfo( - projectSpec["name"] as String?, - projectSpec["version"] as String?, - description: projectSpec["description"] as String?, - ); - - await context.finalize(); - - return doc; - } - - /// Documents the components of this ApplicationChannel and its controllers. - /// - /// This method is responsible for generating API documentation for the components - /// of this ApplicationChannel and its associated controllers. It performs the following tasks: - /// - /// 1. Calls `documentComponents` on the entry point controller, which typically - /// initiates the documentation process for all linked controllers. - /// - /// 2. Retrieves all documentable channel components using the ChannelRuntime, - /// which are typically services or other objects that implement APIComponentDocumenter. - /// - /// 3. Calls `documentComponents` on each of these channel components, allowing - /// them to add their own documentation to the API registry. - /// - /// This method is marked with @mustCallSuper, indicating that subclasses - /// overriding this method must call the superclass implementation. - /// - /// [registry] The APIDocumentContext used to store and organize the API documentation. - @mustCallSuper - @override - void documentComponents(APIDocumentContext registry) { - entryPoint.documentComponents(registry); - - (RuntimeContext.current[runtimeType] as ChannelRuntime) - .getDocumentableChannelComponents(this) - .forEach((component) { - component.documentComponents(registry); - }); - } -} - -/// An object that facilitates message passing between [ApplicationChannel]s in different isolates. -/// -/// You use this object to share information between isolates. Each [ApplicationChannel] has a property of this type. A message sent through this object -/// is received by every other channel through its hub. -/// -/// To receive messages in a hub, add a listener via [listen]. To send messages, use [add]. -/// -/// For example, an application may want to send data to every connected websocket. A reference to each websocket -/// is only known to the isolate it established a connection on. This data must be sent to each isolate so that each websocket -/// connected to that isolate can send the data: -/// -/// router.route("/broadcast").linkFunction((req) async { -/// var message = await req.body.decodeAsString(); -/// websocketsOnThisIsolate.forEach((s) => s.add(message); -/// messageHub.add({"event": "broadcastMessage", "data": message}); -/// return Response.accepted(); -/// }); -/// -/// messageHub.listen((event) { -/// if (event is Map && event["event"] == "broadcastMessage") { -/// websocketsOnThisIsolate.forEach((s) => s.add(event["data"]); -/// } -/// }); -class ApplicationMessageHub extends Stream implements Sink { - /// A logger instance for the ApplicationMessageHub. - /// - /// This logger is used to log messages and errors related to the ApplicationMessageHub. - /// It is named "protevus" to identify logs from this specific component. - final Logger _logger = Logger("protevus"); - - /// A StreamController for outbound messages. - /// - /// This controller manages the stream of outbound messages sent from this - /// ApplicationMessageHub to other hubs. It is used internally to handle - /// the flow of messages being sent out to other isolates. - /// - /// The stream is not broadcast, meaning it only allows a single subscriber. - /// This is typically used by the ApplicationServer to listen for outbound - /// messages and distribute them to other isolates. - final StreamController _outboundController = - StreamController(); - - /// A StreamController for inbound messages. - /// - /// This controller manages the stream of inbound messages received by this - /// ApplicationMessageHub from other hubs. It is used internally to handle - /// the flow of messages coming in from other isolates. - /// - /// The stream is broadcast, meaning it allows multiple subscribers. This allows - /// multiple parts of the application to listen for and react to incoming messages - /// independently. - final StreamController _inboundController = - StreamController.broadcast(); - - /// Adds a listener for messages from other hubs. - /// - /// A class that facilitates message passing between [ApplicationChannel]s in different isolates. - /// - /// This class implements both [Stream] and [Sink] interfaces, allowing it to send and receive messages - /// across isolates. It uses separate controllers for inbound and outbound messages to manage the flow - /// of data. - /// - /// You use this method to add listeners for messages from other hubs. - /// When another hub [add]s a message, this hub will receive it on [onData]. - /// - /// [onError], if provided, will be invoked when this isolate tries to [add] invalid data. Only the isolate - /// that failed to send the data will receive [onError] events. - @override - StreamSubscription listen( - void Function(dynamic event)? onData, { - Function? onError, - void Function()? onDone, - bool? cancelOnError = false, - }) => - _inboundController.stream.listen( - onData, - onError: onError ?? - ((err, StackTrace st) => - _logger.severe("ApplicationMessageHub error", err, st)), - onDone: onDone, - cancelOnError: cancelOnError, - ); - - /// Sends a message to all other hubs. - /// - /// This method allows sending a message [event] to all other isolates in the application. - /// The message will be delivered to all other isolates that have set up a callback using [listen]. - /// - /// [event] must be isolate-safe data - in general, this means it may not be or contain a closure. Consult the API reference `dart:isolate` for more details. If [event] - /// is not isolate-safe data, an error is delivered to [listen] on this isolate. - @override - void add(dynamic event) { - _outboundController.sink.add(event); - } - - /// Closes the message hub and its associated stream controllers. - /// - /// This method performs the following tasks: - /// 1. If the outbound controller has no listeners, it adds a dummy listener - /// to prevent potential issues with unhandled stream events. - /// 2. If the inbound controller has no listeners, it adds a dummy listener - /// for the same reason. - /// 3. Closes both the outbound and inbound controllers. - /// - /// This method should be called when the application is shutting down or - /// when the message hub is no longer needed to ensure proper cleanup of resources. - /// - /// Returns a Future that completes when both controllers have been closed. - @override - Future close() async { - if (!_outboundController.hasListener) { - _outboundController.stream.listen(null); - } - - if (!_inboundController.hasListener) { - _inboundController.stream.listen(null); - } - - await _outboundController.close(); - await _inboundController.close(); - } -} - -/// An abstract class that defines the runtime behavior of an ApplicationChannel. -/// -/// This class provides methods and properties for managing the lifecycle, -/// documentation, and instantiation of an ApplicationChannel. -abstract class ChannelRuntime { - Iterable getDocumentableChannelComponents( - ApplicationChannel channel, - ); - - Type get channelType; - - String get name; - Uri get libraryUri; - IsolateEntryFunction get isolateEntryPoint; - - ApplicationChannel instantiateChannel(); - - Future runGlobalInitialization(ApplicationOptions config); -} diff --git a/packages/app/lib/src/isolate_application_server.dart b/packages/app/lib/src/isolate_application_server.dart deleted file mode 100644 index 9ce7b2a..0000000 --- a/packages/app/lib/src/isolate_application_server.dart +++ /dev/null @@ -1,255 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:isolate'; -import 'package:logging/logging.dart'; -import 'package:protevus_application/application.dart'; - -/// An isolated server implementation of the ApplicationServer class. -/// -/// This class extends ApplicationServer to run in a separate isolate, allowing -/// for concurrent execution of multiple server instances. It manages communication -/// with a supervising application through message passing. -/// -/// The server can be started, stopped, and can send and receive application events. -/// It also supports optional console logging for debugging purposes. -/// -/// Constructor parameters: -/// - channelType: The type of channel to be used. -/// - configuration: ApplicationOptions for server configuration. -/// - identifier: A unique identifier for this server instance. -/// - supervisingApplicationPort: SendPort for communicating with the supervising application. -/// - logToConsole: Optional flag to enable console logging (default is false). -class ApplicationIsolateServer extends ApplicationServer { - /// Constructor for ApplicationIsolateServer. - /// - /// Creates a new instance of ApplicationIsolateServer with the specified parameters. - /// - /// Parameters: - /// - channelType: The type of channel to be used for communication. - /// - configuration: ApplicationOptions for configuring the server. - /// - identifier: A unique identifier for this server instance. - /// - supervisingApplicationPort: SendPort for communicating with the supervising application. - /// - logToConsole: Optional flag to enable console logging (default is false). - /// - /// This constructor initializes the server, sets up logging if enabled, and establishes - /// communication with the supervising application. It also sets up a listener for - /// incoming messages from the supervisor. - ApplicationIsolateServer( - Type channelType, - ApplicationOptions configuration, - int identifier, - this.supervisingApplicationPort, { - bool logToConsole = false, - }) : super(channelType, configuration, identifier) { - if (logToConsole) { - hierarchicalLoggingEnabled = true; - logger.level = Level.ALL; - // ignore: avoid_print - logger.onRecord.listen(print); - } - supervisingReceivePort = ReceivePort(); - supervisingReceivePort.listen(listener); - - logger - .fine("ApplicationIsolateServer($identifier) listening, sending port"); - supervisingApplicationPort.send(supervisingReceivePort.sendPort); - } - - /// A SendPort used for communication with the supervising application. - /// - /// This SendPort allows the ApplicationIsolateServer to send messages and events - /// back to the supervising application, enabling bidirectional communication - /// between the isolated server and its parent process. - SendPort supervisingApplicationPort; - - /// A ReceivePort for receiving messages from the supervising application. - /// - /// This ReceivePort is used to listen for incoming messages from the supervising - /// application. It's initialized in the constructor and is used to set up a - /// listener for handling various commands and messages, such as stop requests - /// or application events. - /// - /// The 'late' keyword indicates that this variable will be initialized after - /// the constructor body, but before it's used. - late ReceivePort supervisingReceivePort; - - /// Starts the ApplicationIsolateServer. - /// - /// This method overrides the base class's start method to add functionality - /// specific to the isolated server. It performs the following steps: - /// 1. Calls the superclass's start method with the provided shareHttpServer parameter. - /// 2. Logs a fine-level message indicating that the server has started. - /// 3. Sends a 'listening' message to the supervising application. - /// - /// Parameters: - /// - shareHttpServer: A boolean indicating whether to share the HTTP server (default is false). - /// - /// Returns: - /// A Future that completes with the result of the superclass's start method. - /// - /// Throws: - /// Any exceptions that may be thrown by the superclass's start method. - @override - Future start({bool shareHttpServer = false}) async { - final result = await super.start(shareHttpServer: shareHttpServer); - logger.fine( - "ApplicationIsolateServer($identifier) started, sending listen message", - ); - supervisingApplicationPort - .send(ApplicationIsolateSupervisor.messageKeyListening); - - return result; - } - - /// Sends an application event to the supervising application. - /// - /// This method overrides the base class's sendApplicationEvent method to - /// implement event sending in the context of an isolated server. It wraps - /// the event in a MessageHubMessage and sends it through the - /// supervisingApplicationPort. - /// - /// Parameters: - /// - event: The application event to be sent. Can be of any type. - /// - /// If an error occurs during the sending process, it is caught and added - /// to the hubSink as an error, along with the stack trace. - /// - /// Note: This method does not throw exceptions directly; instead, it - /// reports errors through the hubSink. - @override - void sendApplicationEvent(dynamic event) { - try { - supervisingApplicationPort.send(MessageHubMessage(event)); - } catch (e, st) { - hubSink?.addError(e, st); - } - } - - /// Listener method for handling incoming messages from the supervising application. - /// - /// This method processes two types of messages: - /// 1. A stop message (ApplicationIsolateSupervisor.messageKeyStop): - /// When received, it calls the stop() method to shut down the server. - /// 2. A MessageHubMessage: - /// When received, it adds the payload of the message to the hubSink. - /// - /// Parameters: - /// - message: The incoming message. Can be either a stop command or a MessageHubMessage. - /// - /// This method doesn't return any value but performs actions based on the message type: - /// - For a stop message, it initiates the server shutdown process. - /// - For a MessageHubMessage, it propagates the payload to the hubSink if it exists. - /// - /// Note: This method assumes that hubSink is properly initialized elsewhere in the class. - void listener(dynamic message) { - if (message == ApplicationIsolateSupervisor.messageKeyStop) { - stop(); - } else if (message is MessageHubMessage) { - hubSink?.add(message.payload); - } - } - - /// Stops the ApplicationIsolateServer and performs cleanup operations. - /// - /// This method performs the following steps: - /// 1. Closes the supervisingReceivePort to stop receiving messages. - /// 2. Logs a fine-level message indicating the server is closing. - /// 3. Calls the close() method to shut down the server. - /// 4. Logs a fine-level message confirming the server has closed. - /// 5. Clears all listeners from the logger. - /// 6. Logs a fine-level message indicating it's sending a stop acknowledgement. - /// 7. Sends a stop acknowledgement message to the supervising application. - /// - /// Returns: - /// A Future that completes when all stop operations are finished. - /// - /// Note: This method is asynchronous and should be awaited when called. - Future stop() async { - supervisingReceivePort.close(); - logger.fine("ApplicationIsolateServer($identifier) closing server"); - await close(); - logger.fine("ApplicationIsolateServer($identifier) did close server"); - logger.clearListeners(); - logger.fine( - "ApplicationIsolateServer($identifier) sending stop acknowledgement", - ); - supervisingApplicationPort - .send(ApplicationIsolateSupervisor.messageKeyStop); - } -} - -/// A typedef defining the signature for an isolate entry function. -/// -/// This function type is used to define the entry point for an isolate in the context -/// of an ApplicationIsolateServer. It takes a single parameter of type -/// ApplicationInitialServerMessage, which contains all the necessary information -/// to initialize and run the server within the isolate. -/// -/// Parameters: -/// - message: An ApplicationInitialServerMessage object containing configuration -/// details, identifiers, and communication ports needed to set up the server -/// in the isolate. -/// -/// This typedef is typically used when spawning new isolates for server instances, -/// allowing for a standardized way of passing initial setup information to the isolate. -typedef IsolateEntryFunction = void Function( - ApplicationInitialServerMessage message, -); - -/// Represents the initial message sent to an ApplicationIsolateServer when it's created. -/// -/// This class encapsulates all the necessary information needed to initialize and -/// configure an ApplicationIsolateServer within an isolate. It includes details about -/// the stream type, configuration options, communication ports, and logging preferences. -/// -/// Properties: -/// - streamTypeName: The name of the stream type to be used by the server. -/// - streamLibraryURI: The URI of the library containing the stream implementation. -/// - configuration: ApplicationOptions object containing server configuration details. -/// - parentMessagePort: SendPort for communicating with the parent (supervising) application. -/// - identifier: A unique identifier for the server instance. -/// - logToConsole: A boolean flag indicating whether to enable console logging (default is false). -/// -/// This class is typically used when spawning a new isolate for an ApplicationIsolateServer, -/// providing all the necessary information in a single, structured message. -class ApplicationInitialServerMessage { - ApplicationInitialServerMessage( - this.streamTypeName, - this.streamLibraryURI, - this.configuration, - this.identifier, - this.parentMessagePort, { - this.logToConsole = false, - }); - - String streamTypeName; - Uri streamLibraryURI; - ApplicationOptions configuration; - SendPort parentMessagePort; - int identifier; - bool logToConsole = false; -} - -/// Represents a message that can be sent through the message hub. -/// -/// This class encapsulates a payload of any type, allowing for flexible -/// communication between different parts of the application. -/// -/// The payload can be of any type (dynamic), making this class versatile -/// for various types of messages. -/// -/// Parameters: -/// - payload: The content of the message, which can be of any type. -class MessageHubMessage { - MessageHubMessage(this.payload); - - dynamic payload; -} diff --git a/packages/app/lib/src/isolate_supervisor.dart b/packages/app/lib/src/isolate_supervisor.dart deleted file mode 100644 index 198d585..0000000 --- a/packages/app/lib/src/isolate_supervisor.dart +++ /dev/null @@ -1,386 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:isolate'; - -import 'package:protevus_application/application.dart'; -import 'package:logging/logging.dart'; - -/// Represents the supervision of a [ApplicationIsolateServer]. -/// -/// This class, ApplicationIsolateSupervisor, is responsible for supervising and managing -/// an [ApplicationIsolateServer]. It handles the lifecycle of the isolate, including -/// starting, stopping, and communicating with it. The supervisor also manages error -/// handling, message passing between isolates, and ensures proper startup and shutdown -/// of the supervised isolate. -/// -/// You should not use this class directly. -class ApplicationIsolateSupervisor { - /// Creates an instance of [ApplicationIsolateSupervisor]. - /// - /// This constructor initializes a new [ApplicationIsolateSupervisor] with the provided parameters. - /// - /// Parameters: - /// - [supervisingApplication]: The [Application] instance that owns this supervisor. - /// - [isolate]: The [Isolate] being supervised. - /// - [receivePort]: The [ReceivePort] for receiving messages from the supervised isolate. - /// - [identifier]: A numeric identifier for the isolate relative to the [Application]. - /// - [logger]: The [Logger] instance used for logging. - /// - [startupTimeout]: Optional. The maximum duration to wait for the isolate to start up. - /// Defaults to 30 seconds. - ApplicationIsolateSupervisor( - this.supervisingApplication, - this.isolate, - this.receivePort, - this.identifier, - this.logger, { - this.startupTimeout = const Duration(seconds: 30), - }); - - /// The [Isolate] being supervised by this [ApplicationIsolateSupervisor]. - /// - /// This isolate represents a separate thread of execution where the - /// [ApplicationIsolateServer] runs. The supervisor manages the lifecycle - /// and communication with this isolate. - final Isolate isolate; - - /// The [ReceivePort] for receiving messages from the supervised isolate. - /// - /// This [ReceivePort] is used to establish a communication channel between - /// the supervisor and the supervised isolate. It allows the supervisor to - /// receive various types of messages, including startup notifications, - /// error reports, and custom messages from the isolate. - /// - /// The [receivePort] is crucial for managing the lifecycle of the isolate - /// and handling inter-isolate communication. It is used in conjunction with - /// the [listener] method to process incoming messages from the isolate. - final ReceivePort receivePort; - - /// A numeric identifier for the isolate relative to the [Application]. - /// - /// This identifier is unique within the context of the parent [Application]. - /// It is used to distinguish between different isolates managed by the same - /// application, facilitating logging, debugging, and isolate management. - /// The identifier is typically assigned sequentially when creating new isolates. - final int identifier; - - /// The maximum duration to wait for the isolate to start up. - /// - /// This duration specifies the time limit for the supervised isolate to complete its - /// startup process. If the isolate fails to start within this timeout period, an - /// exception will be thrown. This helps prevent indefinite waiting in case of startup - /// issues. - /// - /// The default value is typically set in the constructor, often to 30 seconds. - final Duration startupTimeout; - - /// A reference to the owning [Application]. - /// - /// This property holds a reference to the [Application] instance that owns and manages - /// this [ApplicationIsolateSupervisor]. It allows the supervisor to interact with - /// the main application, access shared resources, and coordinate activities across - /// multiple isolates. - /// - /// The supervising application is responsible for creating and managing the lifecycle - /// of this supervisor and its associated isolate. It also provides context for - /// operations such as logging, configuration, and inter-isolate communication. - Application supervisingApplication; - - /// The logger instance used for recording events and errors. - /// - /// This [Logger] is typically shared with the [supervisingApplication] and is used - /// to log various events, warnings, and errors related to the isolate supervision - /// process. It helps in debugging and monitoring the behavior of the supervised - /// isolate and the supervisor itself. - /// - /// The logger can be used to record information at different severity levels, - /// such as fine, info, warning, and severe, depending on the nature of the event - /// being logged. - Logger logger; - - /// A list to store pending [MessageHubMessage] objects. - /// - /// This queue is used to temporarily hold messages that are received when the - /// supervising application is not running. Once the application starts running, - /// these messages are processed and sent to other supervisors. - /// - /// The queue helps ensure that no messages are lost during the startup phase - /// of the application, maintaining message integrity across isolates. - final List _pendingMessageQueue = []; - - /// Indicates whether the isolate is currently in the process of launching. - /// - /// This getter returns `true` if the isolate is still in the startup phase, - /// and `false` if the launch process has completed. - /// - /// It checks the state of the [_launchCompleter] to determine if the - /// launch process is still ongoing. If the completer is not yet completed, - /// it means the isolate is still launching. - /// - /// This property is useful for handling different behaviors or error states - /// depending on whether the isolate is in its launch phase or has already - /// started running normally. - bool get _isLaunching => !_launchCompleter.isCompleted; - - /// The [SendPort] used to send messages to the supervised isolate. - /// - /// This [SendPort] is initialized when the supervisor receives the corresponding - /// [SendPort] from the supervised isolate during the startup process. It enables - /// bi-directional communication between the supervisor and the supervised isolate. - /// - /// The [_serverSendPort] is used to send various messages to the isolate, including - /// stop signals, custom application messages, and other control commands. It plays - /// a crucial role in managing the lifecycle and behavior of the supervised isolate. - late SendPort _serverSendPort; - - /// A [Completer] used to manage the launch process of the supervised isolate. - /// - /// This completer is initialized when the isolate is being launched and is completed - /// when the isolate has successfully started up. It's used in conjunction with - /// [resume] method to handle the asynchronous nature of isolate startup. - /// - /// The completer allows other parts of the supervisor to wait for the isolate - /// to finish launching before proceeding with further operations. It's also used - /// to implement timeout functionality in case the isolate fails to start within - /// the specified [startupTimeout]. - late Completer _launchCompleter; - - /// A [Completer] used to manage the stop process of the supervised isolate. - /// - /// This nullable [Completer] is initialized when the [stop] method is called - /// and is used to handle the asynchronous nature of stopping the isolate. - /// It allows the supervisor to wait for the isolate to acknowledge the stop - /// message before proceeding with the termination process. - /// - /// The completer is set to null after the stop process is complete, indicating - /// that the isolate has been successfully stopped. This helps manage the state - /// of the stop operation and prevents multiple stop attempts from interfering - /// with each other. - Completer? _stopCompleter; - - /// A constant string used as a message key to signal the supervised isolate to stop. - /// - /// This constant is used in the communication protocol between the supervisor - /// and the supervised isolate. When sent to the isolate, it indicates that - /// the isolate should begin its shutdown process. - /// - /// The underscore prefix in the value suggests that this is intended for - /// internal use within the isolate communication system. - static const String messageKeyStop = "_MessageStop"; - - /// A constant string used as a message key to indicate that the supervised isolate is listening. - /// - /// This constant is part of the communication protocol between the supervisor - /// and the supervised isolate. When the isolate sends this message to the - /// supervisor, it signals that the isolate has completed its startup process - /// and is ready to receive and process messages. - /// - /// The underscore prefix in the value suggests that this is intended for - /// internal use within the isolate communication system. - static const String messageKeyListening = "_MessageListening"; - - /// Resumes the [Isolate] being supervised. - /// - /// This method initiates the process of resuming the supervised isolate and - /// sets up the necessary listeners and error handlers. It performs the following steps: - /// - /// 1. Initializes a new [Completer] for managing the launch process. - /// 2. Sets up a listener for the [receivePort] to handle incoming messages. - /// 3. Configures the isolate to handle errors non-fatally. - /// 4. Adds an error listener to the isolate. - /// 5. Resumes the isolate from its paused state. - /// 6. Waits for the isolate to complete its startup process. - /// - /// If the isolate fails to start within the specified [startupTimeout], a - /// [TimeoutException] is thrown with a detailed error message. - /// - /// Returns a [Future] that completes when the isolate has successfully started, - /// or throws an exception if the startup process fails or times out. - /// - /// Throws: - /// - [TimeoutException] if the isolate doesn't start within the [startupTimeout]. - Future resume() { - _launchCompleter = Completer(); - receivePort.listen(listener); - - isolate.setErrorsFatal(false); - isolate.addErrorListener(receivePort.sendPort); - logger.fine( - "ApplicationIsolateSupervisor($identifier).resume will resume isolate", - ); - isolate.resume(isolate.pauseCapability!); - - return _launchCompleter.future.timeout( - startupTimeout, - onTimeout: () { - logger.fine( - "ApplicationIsolateSupervisor($identifier).resume timed out waiting for isolate start", - ); - throw TimeoutException( - "Isolate ($identifier) failed to launch in $startupTimeout seconds. " - "There may be an error with your application or Application.isolateStartupTimeout needs to be increased."); - }, - ); - } - - /// Stops the [Isolate] being supervised. - /// - /// This method initiates the process of stopping the supervised isolate. It performs the following steps: - /// - /// 1. Creates a new [Completer] to manage the stop process. - /// 2. Sends a stop message to the supervised isolate using [_serverSendPort]. - /// 3. Waits for the isolate to acknowledge the stop message. - /// 4. If the isolate doesn't respond within 5 seconds, logs a severe message. - /// 5. Forcefully kills the isolate using [isolate.kill()]. - /// 6. Closes the [receivePort] to clean up resources. - /// - /// The method uses a timeout of 5 seconds to wait for the isolate's acknowledgment. - /// If the timeout occurs, it assumes the isolate is not responding and proceeds to terminate it. - /// - /// This method ensures that the isolate is stopped one way or another, either gracefully - /// or by force, and properly cleans up associated resources. - /// - /// Returns a [Future] that completes when the stop process is finished, regardless of - /// whether the isolate responded to the stop message or was forcefully terminated. - Future stop() async { - _stopCompleter = Completer(); - logger.fine( - "ApplicationIsolateSupervisor($identifier).stop sending stop to supervised isolate", - ); - _serverSendPort.send(messageKeyStop); - - try { - await _stopCompleter!.future.timeout(const Duration(seconds: 5)); - } on TimeoutException { - logger.severe( - "Isolate ($identifier) not responding to stop message, terminating.", - ); - } finally { - isolate.kill(); - } - - receivePort.close(); - } - - /// Handles incoming messages from the supervised isolate. - /// - /// This method is the central message processing function for the supervisor. - /// It handles various types of messages: - /// - /// - [SendPort]: Stores the send port for communicating with the isolate. - /// - [messageKeyListening]: Indicates the isolate has started and is listening. - /// - [messageKeyStop]: Acknowledges that the isolate has received a stop message. - /// - [List]: Represents an error from the isolate, which is then handled. - /// - [MessageHubMessage]: Inter-isolate communication message. - /// - /// For [MessageHubMessage], if the supervising application is not running, - /// the message is queued. Otherwise, it's immediately sent to other supervisors. - /// - /// This method is crucial for managing the lifecycle and communication of the - /// supervised isolate, handling startup, shutdown, errors, and inter-isolate messaging. - void listener(dynamic message) { - if (message is SendPort) { - _serverSendPort = message; - } else if (message == messageKeyListening) { - _launchCompleter.complete(); - logger.fine( - "ApplicationIsolateSupervisor($identifier) isolate listening acknowledged", - ); - } else if (message == messageKeyStop) { - logger.fine( - "ApplicationIsolateSupervisor($identifier) stop message acknowledged", - ); - receivePort.close(); - - _stopCompleter!.complete(); - _stopCompleter = null; - } else if (message is List) { - logger.fine( - "ApplicationIsolateSupervisor($identifier) received isolate error ${message.first}", - ); - final stacktrace = StackTrace.fromString(message.last as String); - _handleIsolateException(message.first, stacktrace); - } else if (message is MessageHubMessage) { - if (!supervisingApplication.isRunning) { - _pendingMessageQueue.add(message); - } else { - _sendMessageToOtherSupervisors(message); - } - } - } - - /// Sends all pending messages stored in the [_pendingMessageQueue] to other supervisors. - /// - /// This method is typically called when the supervising application starts running - /// to process any messages that were received while the application was not active. - /// It performs the following steps: - /// - /// 1. Creates a copy of the [_pendingMessageQueue] to safely iterate over it. - /// 2. Clears the original [_pendingMessageQueue]. - /// 3. Sends each message in the copied list to other supervisors using [_sendMessageToOtherSupervisors]. - /// - /// This ensures that no messages are lost during the startup phase of the application - /// and maintains message integrity across isolates. - void sendPendingMessages() { - final list = List.from(_pendingMessageQueue); - _pendingMessageQueue.clear(); - list.forEach(_sendMessageToOtherSupervisors); - } - - /// Sends a [MessageHubMessage] to all other supervisors managed by the supervising application. - /// - /// This method is responsible for propagating messages across different isolates - /// managed by the same application. It performs the following actions: - /// - /// 1. Iterates through all supervisors in the supervising application. - /// 2. Excludes the current supervisor from the recipients. - /// 3. Sends the provided [message] to each of the other supervisors' isolates. - /// - /// This method is crucial for maintaining communication and synchronization - /// between different isolates within the application. - /// - /// Parameters: - /// - [message]: The [MessageHubMessage] to be sent to other supervisors. - void _sendMessageToOtherSupervisors(MessageHubMessage message) { - supervisingApplication.supervisors - .where((sup) => sup != this) - .forEach((supervisor) { - supervisor._serverSendPort.send(message); - }); - } - - /// Handles exceptions thrown by the supervised isolate. - /// - /// This method is responsible for processing and responding to exceptions - /// that occur within the supervised isolate. It behaves differently depending - /// on whether the isolate is still in the process of launching or not: - /// - /// - If the isolate is launching ([_isLaunching] is true): - /// It wraps the error in an [ApplicationStartupException] and completes - /// the [_launchCompleter] with this error, effectively failing the launch process. - /// - /// - If the isolate has already launched: - /// It logs the error as a severe uncaught exception using the supervisor's logger. - /// - /// Parameters: - /// - [error]: The error or exception object thrown by the isolate. - /// - [stacktrace]: The [StackTrace] associated with the error. - /// - /// This method is crucial for maintaining the stability and error handling - /// of the isolate, especially during its startup phase. - void _handleIsolateException(dynamic error, StackTrace stacktrace) { - if (_isLaunching) { - final appException = ApplicationStartupException(error); - _launchCompleter.completeError(appException, stacktrace); - } else { - logger.severe("Uncaught exception in isolate.", error, stacktrace); - } - } -} diff --git a/packages/app/lib/src/options.dart b/packages/app/lib/src/options.dart deleted file mode 100644 index 385a11b..0000000 --- a/packages/app/lib/src/options.dart +++ /dev/null @@ -1,175 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; - -import 'package:args/args.dart'; -import 'package:protevus_application/application.dart'; - -/// An object that contains configuration values for an [Application]. -/// -/// This class provides a set of options that can be used to configure an application, -/// including network settings, SSL configuration, and custom context values. -/// It also includes a static [ArgParser] for parsing command-line arguments. -/// -/// Key features: -/// - Configurable address and port for HTTP requests -/// - IPv6 support -/// - SSL/HTTPS configuration options -/// - Client-side certificate usage flag -/// - Custom context for application-specific configuration -/// - Command-line argument parsing for easy configuration -/// -/// Usage: -/// This class is typically used in conjunction with [ApplicationChannel] to set up -/// and configure an application based on external inputs or command-line arguments. -class ApplicationOptions { - /// The absolute path of the configuration file for this application. - /// - /// This property stores the file path of the configuration file used by the application. - /// The path is typically set when the application is started using the `--config-path` option - /// with the `conduit serve` command. - /// - /// The configuration file can contain application-specific settings and can be loaded - /// in the [ApplicationChannel] to access these configuration values. - /// - /// This property may be null if no configuration file path was specified when starting the application. - /// - /// Usage: - /// - Access this property to get the path of the configuration file. - /// - Use the path to load and parse the configuration file in your application logic. - /// - Ensure to handle cases where this property might be null. - String? configurationFilePath; - - /// The address to listen for HTTP requests on. - /// - /// This property specifies the network address on which the application will listen for incoming HTTP requests. - /// - /// This value may be an [InternetAddress] or a [String]. - dynamic address; - - /// The port number on which the application will listen for HTTP requests. - /// - /// Defaults to 8888. - int port = 8888; - - /// Whether or not the application should only receive connections over IPv6. - /// - /// This flag determines if the application should exclusively use IPv6 for incoming connections. - /// When set to true, the application will only accept IPv6 connections and reject IPv4 connections. - /// This setting can be useful in environments that require IPv6-only communication. - /// - /// Defaults to false. This flag impacts the default value of the [address] property. - bool isIpv6Only = false; - - /// Indicates whether the application's request controllers should use client-side HTTPS certificates. - /// - /// Defaults to false. - bool isUsingClientCertificate = false; - - /// The path to a SSL certificate file. - /// - /// If specified - along with [privateKeyFilePath] - an [Application] will only allow secure connections over HTTPS. - /// This value is often set through the `--ssl-certificate-path` command line option of `conduit serve`. For finer control - /// over how HTTPS is configured for an application, see [ApplicationChannel.securityContext]. - String? certificateFilePath; - - /// The path to a private key file for SSL/TLS encryption. - /// - /// If specified - along with [certificateFilePath] - an [Application] will only allow secure connections over HTTPS. - /// This value is often set through the `--ssl-key-path` command line option of `conduit serve`. For finer control - /// over how HTTPS is configured for an application, see [ApplicationChannel.securityContext]. - String? privateKeyFilePath; - - /// Contextual configuration values for each [ApplicationChannel]. - /// - /// This is a user-specific set of configuration options provided by [ApplicationChannel.initializeApplication]. - /// Each instance of [ApplicationChannel] has access to these values if set. - /// - /// This map allows for storing and retrieving custom configuration values that can be used - /// throughout the application. It provides a flexible way to pass application-specific - /// settings to different parts of the system. - /// - /// The context can be populated during the application's initialization phase and - /// can contain any type of data that adheres to the dynamic type. - /// - /// Usage: - /// - Add configuration values: `context['databaseUrl'] = 'postgres://...';` - /// - Retrieve values: `final dbUrl = options.context['databaseUrl'];` - /// - /// Note: It's important to ensure type safety when retrieving values from this map, - /// as it uses dynamic typing. - final Map context = {}; - - /// A static [ArgParser] for parsing command-line arguments for the application. - /// - /// This parser defines several options and flags that can be used to configure - /// the application when it is launched from the command line. The available - /// options include: - /// - /// - address: The address to listen on for HTTP requests. - /// - config-path: The path to a configuration file. - /// - isolates: Number of isolates for handling requests. - /// - port: The port number to listen for HTTP requests on. - /// - ipv6-only: Flag to limit listening to IPv6 connections only. - /// - ssl-certificate-path: The path to an SSL certificate file. - /// - ssl-key-path: The path to an SSL private key file. - /// - timeout: Number of seconds to wait to ensure startup succeeded. - /// - help: Flag to display help information. - /// - /// Each option is configured with a description, and some include default values - /// or abbreviations for easier command-line usage. - static final parser = ArgParser() - ..addOption( - "address", - abbr: "a", - help: "The address to listen on. See HttpServer.bind for more details." - " Using the default will listen on any address.", - ) - ..addOption( - "config-path", - abbr: "c", - help: - "The path to a configuration file. This File is available in the ApplicationOptions " - "for a ApplicationChannel to use to read application-specific configuration values. Relative paths are relative to [directory].", - defaultsTo: "config.yaml", - ) - ..addOption( - "isolates", - abbr: "n", - help: "Number of isolates handling requests.", - ) - ..addOption( - "port", - abbr: "p", - help: "The port number to listen for HTTP requests on.", - defaultsTo: "8888", - ) - ..addFlag( - "ipv6-only", - help: "Limits listening to IPv6 connections only.", - negatable: false, - ) - ..addOption( - "ssl-certificate-path", - help: - "The path to an SSL certicate file. If provided along with --ssl-certificate-path, the application will be HTTPS-enabled.", - ) - ..addOption( - "ssl-key-path", - help: - "The path to an SSL private key file. If provided along with --ssl-certificate-path, the application will be HTTPS-enabled.", - ) - ..addOption( - "timeout", - help: "Number of seconds to wait to ensure startup succeeded.", - defaultsTo: "45", - ) - ..addFlag("help"); -} diff --git a/packages/app/lib/src/starter.dart b/packages/app/lib/src/starter.dart deleted file mode 100644 index 89d6cba..0000000 --- a/packages/app/lib/src/starter.dart +++ /dev/null @@ -1,56 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:isolate'; - -import 'package:protevus_application/application.dart'; - -/* - Warning: do not remove. This method is invoked by a generated script. - - */ - -/// Starts the application either on the current isolate or across multiple isolates. -/// -/// This function initializes and starts the application, setting up communication -/// between isolates using ports. It responds to stop commands and reports the -/// application's status back to the parent isolate. -/// -/// Parameters: -/// - app: The Application instance to be started. -/// - isolateCount: The number of isolates to start the application on. If 0, starts on the current isolate. -/// - parentPort: The SendPort of the parent isolate for communication. -/// -/// The function sets up a ReceivePort to listen for commands, particularly the "stop" command. -/// It then starts the application either on the current isolate or across multiple isolates -/// based on the isolateCount parameter. Finally, it sends a status message back to the parent isolate. -Future startApplication( - Application app, - int isolateCount, - SendPort parentPort, -) async { - final port = ReceivePort(); - - port.listen((msg) { - if (msg["command"] == "stop") { - port.close(); - app.stop().then((_) { - parentPort.send({"status": "stopped"}); - }); - } - }); - - if (isolateCount == 0) { - await app.startOnCurrentIsolate(); - } else { - await app.start(numberOfInstances: isolateCount); - } - parentPort.send({"status": "ok", "port": port.sendPort}); -} diff --git a/packages/app/pubspec.yaml b/packages/app/pubspec.yaml deleted file mode 100644 index d588edc..0000000 --- a/packages/app/pubspec.yaml +++ /dev/null @@ -1,23 +0,0 @@ -name: protevus_application -description: The Application Package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.2 - -# Add regular dependencies here. -dependencies: - args: ^2.4.2 - logging: ^1.2.0 - meta: ^1.12.0 - protevus_runtime: ^0.0.1 - protevus_openapi: ^0.0.1 - protevus_http: ^0.0.1 - # path: ^1.8.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/app/test/.gitkeep b/packages/app/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/auth/.gitignore b/packages/auth/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/auth/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/auth/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/auth/LICENSE.md b/packages/auth/LICENSE.md deleted file mode 100644 index 0fd0d03..0000000 --- a/packages/auth/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) - -The Laravel Framework is Copyright (c) Taylor Otwell -The Fabric Framework is Copyright (c) Vieo, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/auth/README.md b/packages/auth/README.md deleted file mode 100644 index 757f4c9..0000000 --- a/packages/auth/README.md +++ /dev/null @@ -1 +0,0 @@ -

\ No newline at end of file diff --git a/packages/auth/analysis_options.yaml b/packages/auth/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/auth/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/auth/lib/auth.dart b/packages/auth/lib/auth.dart deleted file mode 100644 index 8736392..0000000 --- a/packages/auth/lib/auth.dart +++ /dev/null @@ -1,80 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_hashing/hashing.dart'; -import 'package:crypto/crypto.dart'; - -export 'src/auth_code_controller.dart'; -export 'src/auth_controller.dart'; -export 'src/auth_redirect_controller.dart'; -export 'src/authorization_parser.dart'; -export 'src/authorization_server.dart'; -export 'src/authorizer.dart'; -export 'src/exceptions.dart'; -export 'src/objects.dart'; -export 'src/protocols.dart'; -export 'src/validator.dart'; - -/// A utility method to generate a password hash using the PBKDF2 scheme. -/// -/// This function takes a password and salt as input and generates a secure hash -/// using the PBKDF2 (Password-Based Key Derivation Function 2) algorithm. -String generatePasswordHash( - String password, - String salt, { - int hashRounds = 1000, - int hashLength = 32, - Hash? hashFunction, -}) { - final generator = PBKDF2(hashAlgorithm: hashFunction ?? sha256); - return generator.generateBase64Key(password, salt, hashRounds, hashLength); -} - -/// A utility method to generate a random base64 salt. -/// -/// This function generates a random salt encoded as a base64 string. -/// The salt is useful for adding randomness to password hashing processes, -/// making them more resistant to attacks. -String generateRandomSalt({int hashLength = 32}) { - return generateAsBase64String(hashLength); -} - -/// A utility method to generate a ClientID and Client Secret Pair. -/// -/// This function creates an [AuthClient] instance, which can be either public or confidential, -/// depending on whether a secret is provided. -/// -/// Any client that allows the authorization code flow must include [redirectURI]. -/// -/// Note that [secret] is hashed with a randomly generated salt, and therefore cannot be retrieved -/// later. The plain-text secret must be stored securely elsewhere. -AuthClient generateAPICredentialPair( - String clientID, - String? secret, { - String? redirectURI, - int hashLength = 32, - int hashRounds = 1000, - Hash? hashFunction, -}) { - if (secret == null) { - return AuthClient.public(clientID, redirectURI: redirectURI); - } - - final salt = generateRandomSalt(hashLength: hashLength); - final hashed = generatePasswordHash( - secret, - salt, - hashRounds: hashRounds, - hashLength: hashLength, - hashFunction: hashFunction, - ); - - return AuthClient.withRedirectURI(clientID, hashed, salt, redirectURI); -} diff --git a/packages/auth/lib/src/auth_code_controller.dart b/packages/auth/lib/src/auth_code_controller.dart deleted file mode 100644 index 087f5e2..0000000 --- a/packages/auth/lib/src/auth_code_controller.dart +++ /dev/null @@ -1,489 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Provides [AuthCodeController] with application-specific behavior. -/// -/// This abstract class defines the interface for a delegate that can be used -/// with [AuthCodeController] to customize the rendering of the login form. -/// It is deprecated along with [AuthCodeController], and developers are -/// advised to see the documentation for alternative approaches. -/// -/// The main responsibility of this delegate is to generate an HTML -/// representation of a login form when requested by the [AuthCodeController]. -@Deprecated('AuthCodeController is deprecated. See docs.') -abstract class AuthCodeControllerDelegate { - /// Returns an HTML representation of a login form. - /// - /// This method is responsible for generating the HTML content of a login form - /// that will be displayed to the user when they attempt to authenticate. - /// - /// The form submission should include the values of [responseType], [clientID], [state], [scope] - /// as well as user-entered username and password in `x-www-form-urlencoded` data, e.g. - /// - /// POST https://example.com/auth/code - /// Content-Type: application/x-www-form-urlencoded - /// - /// response_type=code&client_id=com.conduit.app&state=o9u3jla&username=bob&password=password - /// - /// - /// If not null, [scope] should also be included as an additional form parameter. - Future render( - AuthCodeController forController, - Uri requestUri, - String? responseType, - String clientID, - String? state, - String? scope, - ); -} - -/// Controller for issuing OAuth 2.0 authorization codes. -/// -/// This controller handles the authorization code grant flow of OAuth 2.0. It provides -/// endpoints for both initiating the flow (GET request) and completing it (POST request). -/// -/// .route("/auth/code") -/// .link(() => new AuthCodeController(authServer)); -@Deprecated('Use AuthRedirectController instead.') -class AuthCodeController extends ResourceController { - /// Creates a new instance of an [AuthCodeController]. - /// - /// This constructor initializes an [AuthCodeController] with the provided [authServer]. - /// It is marked as deprecated, and users are advised to use [AuthRedirectController] instead. - /// - /// Parameters: - /// - [authServer]: The required authorization server used for handling authentication. - /// - [delegate]: An optional [AuthCodeControllerDelegate] that, if provided, allows this controller - /// to return a login page for all GET requests. - /// - /// The constructor also sets the [acceptedContentTypes] to only accept - /// "application/x-www-form-urlencoded" content type. - /// - /// This controller is part of the OAuth 2.0 authorization code flow and is used - /// for issuing authorization codes. However, due to its deprecated status, - /// it's recommended to transition to newer alternatives as specified in the documentation. - @Deprecated('Use AuthRedirectController instead.') - AuthCodeController(this.authServer, {this.delegate}) { - acceptedContentTypes = [ - ContentType("application", "x-www-form-urlencoded") - ]; - } - - /// A reference to the [AuthServer] used to grant authorization codes. - /// - /// This [AuthServer] instance is responsible for handling the authentication - /// and authorization processes, including the generation and validation of - /// authorization codes. It is a crucial component of the OAuth 2.0 flow - /// implemented by this controller. - final AuthServer authServer; - - /// A randomly generated value the client can use to verify the origin of the redirect. - /// - /// Clients must include this query parameter and verify that any redirects from this - /// server have the same value for 'state' as passed in. This value is usually a randomly generated - /// session identifier. - /// - /// This property is bound to the 'state' query parameter in the request URL. - /// It plays a crucial role in preventing cross-site request forgery (CSRF) attacks - /// by ensuring that the authorization request and response originate from the same client session. - /// - /// The 'state' parameter should be: - /// - Unique for each authorization request - /// - Securely generated to be unguessable - /// - Stored by the client for later comparison - /// - /// When the authorization server redirects the user back to the client, - /// it includes this state value, allowing the client to verify that the redirect - /// is in response to its own authorization request. - @Bind.query("state") - String? state; - - /// The type of response expected from the authorization server. - /// - /// This parameter is bound to the 'response_type' query parameter in the request URL. - /// For the authorization code flow, this value must be 'code'. - /// - /// The response type indicates to the authorization server which grant type - /// is being utilized. In this case, 'code' signifies that the client expects - /// to receive an authorization code that can be exchanged for an access token - /// in a subsequent request. - /// - /// Must be 'code'. - @Bind.query("response_type") - String? responseType; - - /// The client ID of the authenticating client. - /// - /// This property is bound to the 'client_id' query parameter in the request URL. - /// It represents the unique identifier of the client application requesting authorization. - /// - /// The client ID must be registered and valid according to the [authServer]. - /// It is used to identify the client during the OAuth 2.0 authorization process. - /// - /// This field is nullable, but typically required for most OAuth 2.0 flows. - /// If not provided or invalid, the authorization request may be rejected. - @Bind.query("client_id") - String? clientID; - - /// Renders an HTML login form. - final AuthCodeControllerDelegate? delegate; - - /// Returns an HTML login form for OAuth 2.0 authorization. - /// - /// A client that wishes to authenticate with this server should direct the user - /// to this page. The user will enter their username and password that is sent as a POST - /// request to this same controller. - /// - /// The 'client_id' must be a registered, valid client of this server. The client must also provide - /// a [state] to this request and verify that the redirect contains the same value in its query string. - @Operation.get() - Future getAuthorizationPage({ - /// A space-delimited list of access scopes to be requested by the form submission on the returned page. - @Bind.query("scope") String? scope, - }) async { - if (clientID == null) { - return Response.badRequest(); - } - - if (delegate == null) { - return Response(405, {}, null); - } - - final renderedPage = await delegate! - .render(this, request!.raw.uri, responseType, clientID!, state, scope); - - return Response.ok(renderedPage)..contentType = ContentType.html; - } - - /// Creates a one-time use authorization code. - /// - /// This method handles the POST request for the OAuth 2.0 authorization code grant flow. - /// It authenticates the user with the provided credentials and, if successful, generates - /// a one-time use authorization code. - /// - /// This method is typically invoked by the login form returned from the GET to this controller. - @Operation.post() - Future authorize({ - /// The username of the authenticating user. - /// - /// This parameter is bound to the 'username' query parameter in the request URL. - /// It represents the username of the user attempting to authenticate. - /// - /// The username is used in conjunction with the password to verify the user's identity - /// during the OAuth 2.0 authorization code grant flow. It is a crucial part of the - /// user authentication process. - /// - /// This field is nullable, but typically required for successful authentication. - /// If not provided or invalid, the authorization request may be rejected. - @Bind.query("username") String? username, - - /// The password of the authenticating user. - /// - /// This parameter is bound to the 'password' query parameter in the request URL. - /// It represents the password of the user attempting to authenticate. - /// - /// The password is used in conjunction with the username to verify the user's identity - /// during the OAuth 2.0 authorization code grant flow. It is a crucial part of the - /// user authentication process. - /// - /// This field is nullable, but typically required for successful authentication. - /// If not provided or invalid, the authorization request may be rejected. - /// - /// Note: Transmitting passwords as query parameters is not recommended for production - /// environments due to security concerns. This approach should only be used in - /// controlled, secure environments or for testing purposes. - @Bind.query("password") String? password, - - /// A space-delimited list of access scopes being requested. - /// - /// This parameter is bound to the 'scope' query parameter in the request URL. - /// It represents the permissions that the client is requesting access to. - /// - /// The scope is typically a string containing one or more space-separated - /// scope values. Each scope value represents a specific permission or - /// set of permissions that the client is requesting. - /// - /// For example, a scope might look like: "read_profile edit_profile" - /// - /// The authorization server can use this information to present - /// the user with a consent screen, allowing them to approve or deny - /// specific permissions requested by the client. - /// - /// This field is optional. If not provided, the authorization server - /// may assign a default set of scopes or handle the request according - /// to its own policies. - @Bind.query("scope") String? scope, - }) async { - final client = await authServer.getClient(clientID!); - - if (state == null) { - return _redirectResponse( - null, - null, - error: AuthServerException(AuthRequestError.invalidRequest, client), - ); - } - - if (responseType != "code") { - if (client?.redirectURI == null) { - return Response.badRequest(); - } - - return _redirectResponse( - null, - state, - error: AuthServerException(AuthRequestError.invalidRequest, client), - ); - } - - try { - final scopes = scope?.split(" ").map((s) => AuthScope(s)).toList(); - - final authCode = await authServer.authenticateForCode( - username, - password, - clientID!, - requestedScopes: scopes, - ); - return _redirectResponse(client!.redirectURI, state, code: authCode.code); - } on FormatException { - return _redirectResponse( - null, - state, - error: AuthServerException(AuthRequestError.invalidScope, client), - ); - } on AuthServerException catch (e) { - return _redirectResponse(null, state, error: e); - } - } - - /// Overrides the default documentation for the request body of this controller's operations. - /// - /// This method is called during the OpenAPI documentation generation process. - /// It modifies the request body schema for POST operations to: - /// 1. Set the format of the 'password' field to "password". - /// 2. Mark certain fields as required in the request body. - /// - /// The method specifically targets the "application/x-www-form-urlencoded" content type - /// in POST requests. It updates the schema to indicate that the 'password' field should - /// be treated as a password input, and sets the following fields as required: - /// - client_id - /// - state - /// - response_type - /// - username - /// - password - /// - /// Returns: - /// An [APIRequestBody] object representing the documented request body, - /// or null if there is no request body for the operation. - @override - APIRequestBody? documentOperationRequestBody( - APIDocumentContext context, - Operation? operation, - ) { - final body = super.documentOperationRequestBody(context, operation); - if (operation!.method == "POST") { - body!.content!["application/x-www-form-urlencoded"]!.schema! - .properties!["password"]!.format = "password"; - body.content!["application/x-www-form-urlencoded"]!.schema!.isRequired = [ - "client_id", - "state", - "response_type", - "username", - "password" - ]; - } - return body; - } - - /// Overrides the default documentation for operation parameters. - /// - /// This method is called during the OpenAPI documentation generation process. - /// It modifies the parameter documentation for the controller's operations by: - /// 1. Retrieving the default parameters using the superclass method. - /// 2. Setting all parameters except 'scope' as required. - /// - /// Parameters: - /// context: The [APIDocumentContext] for the current documentation generation. - /// operation: The [Operation] being documented. - /// - /// Returns: - /// A List of [APIParameter] objects representing the documented parameters, - /// with updated 'isRequired' properties. - @override - List documentOperationParameters( - APIDocumentContext context, - Operation? operation, - ) { - final params = super.documentOperationParameters(context, operation)!; - params.where((p) => p.name != "scope").forEach((p) { - p.isRequired = true; - }); - return params; - } - - /// Generates documentation for the operation responses of this controller. - /// - /// This method overrides the default behavior to provide custom documentation - /// for the GET and POST operations of the AuthCodeController. - /// - /// For GET requests: - /// - Defines a 200 OK response that serves a login form in HTML format. - /// - /// For POST requests: - /// - Defines a 302 Found (Moved Temporarily) response for successful requests, - /// indicating that the 'code' query parameter in the redirect URI contains - /// the authorization code, or an 'error' parameter is present for errors. - /// - Defines a 400 Bad Request response for cases where the 'client_id' is - /// invalid and the redirect URI cannot be verified. - /// - /// Parameters: - /// context: The API documentation context. - /// operation: The operation being documented. - /// - /// Returns: - /// A Map of status codes to APIResponse objects describing the possible - /// responses for the operation. - @override - Map documentOperationResponses( - APIDocumentContext context, - Operation? operation, - ) { - if (operation!.method == "GET") { - return { - "200": APIResponse.schema( - "Serves a login form.", - APISchemaObject.string(), - contentTypes: ["text/html"], - ) - }; - } else if (operation.method == "POST") { - return { - "${HttpStatus.movedTemporarily}": APIResponse( - "If successful, the query parameter of the redirect URI named 'code' contains authorization code. " - "Otherwise, the query parameter 'error' is present and contains a error string.", - headers: { - "Location": APIHeader() - ..schema = APISchemaObject.string(format: "uri") - }, - ), - "${HttpStatus.badRequest}": APIResponse.schema( - "If 'client_id' is invalid, the redirect URI cannot be verified and this response is sent.", - APISchemaObject.object({"error": APISchemaObject.string()}), - contentTypes: ["application/json"], - ) - }; - } - - throw StateError("AuthCodeController documentation failed."); - } - - /// Customizes the documentation for the operations of this controller. - /// - /// This method overrides the default implementation to add additional - /// information specific to the OAuth 2.0 authorization code flow. - /// - /// It performs the following tasks: - /// 1. Calls the superclass method to get the default operation documentation. - /// 2. Updates the authorization URL in the documented authorization code flow - /// of the auth server to match the current route. - /// - /// Parameters: - /// context: The [APIDocumentContext] for the current documentation generation. - /// route: The route string for this controller. - /// path: The [APIPath] object representing the path in the API documentation. - /// - /// Returns: - /// A Map of operation names to [APIOperation] objects representing the - /// documented operations for this controller. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - final ops = super.documentOperations(context, route, path); - authServer.documentedAuthorizationCodeFlow.authorizationURL = - Uri(path: route.substring(1)); - return ops; - } - - /// Generates a redirect response for the OAuth 2.0 authorization code flow. - /// - /// This method constructs a redirect URI based on the provided parameters and - /// returns a Response object with appropriate headers for redirection. - /// - /// Parameters: - /// - [inputUri]: The base URI to redirect to. If null, falls back to the client's redirectURI. - /// - [clientStateOrNull]: The state parameter provided by the client. If not null, it's included in the redirect URI. - /// - [code]: The authorization code to be included in the redirect URI. Optional. - /// - [error]: An AuthServerException containing error details. Optional. - /// - /// Returns: - /// - A Response object with status 302 (Found) and appropriate headers for redirection. - /// - If no valid redirect URI can be constructed, returns a 400 (Bad Request) response. - /// - /// The method constructs the redirect URI by: - /// 1. Determining the base URI (from input or client's redirect URI) - /// 2. Adding query parameters for code, state, and error as applicable - /// 3. Constructing a new URI with these parameters - /// - /// The response includes headers for location, cache control, and pragma. - static Response _redirectResponse( - String? inputUri, - String? clientStateOrNull, { - String? code, - AuthServerException? error, - }) { - final uriString = inputUri ?? error!.client?.redirectURI; - if (uriString == null) { - return Response.badRequest(body: {"error": error!.reasonString}); - } - - final redirectURI = Uri.parse(uriString); - final queryParameters = - Map.from(redirectURI.queryParameters); - - if (code != null) { - queryParameters["code"] = code; - } - if (clientStateOrNull != null) { - queryParameters["state"] = clientStateOrNull; - } - if (error != null) { - queryParameters["error"] = error.reasonString; - } - - final responseURI = Uri( - scheme: redirectURI.scheme, - userInfo: redirectURI.userInfo, - host: redirectURI.host, - port: redirectURI.port, - path: redirectURI.path, - queryParameters: queryParameters, - ); - return Response( - HttpStatus.movedTemporarily, - { - HttpHeaders.locationHeader: responseURI.toString(), - HttpHeaders.cacheControlHeader: "no-store", - HttpHeaders.pragmaHeader: "no-cache" - }, - null, - ); - } -} diff --git a/packages/auth/lib/src/auth_controller.dart b/packages/auth/lib/src/auth_controller.dart deleted file mode 100644 index 050f6bd..0000000 --- a/packages/auth/lib/src/auth_controller.dart +++ /dev/null @@ -1,459 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Controller for issuing and refreshing OAuth 2.0 access tokens. -/// -/// This controller issues and refreshes access tokens. Access tokens are issued for valid username and password (resource owner password grant) -/// or for an authorization code (authorization code grant) from a [AuthRedirectController]. -/// -/// See operation method [grant] for more details. -/// -/// Usage: -/// -/// router -/// .route("/auth/token") -/// .link(() => new AuthController(authServer)); -/// -class AuthController extends ResourceController { - /// Creates a new instance of an [AuthController]. - /// - /// [authServer] is the isRequired authorization server that grants tokens. - AuthController(this.authServer) { - acceptedContentTypes = [ - ContentType("application", "x-www-form-urlencoded") - ]; - } - - /// A reference to the [AuthServer] this controller uses to grant tokens. - final AuthServer authServer; - - /// Required basic authentication Authorization header containing client ID and secret for the authenticating client. - /// - /// Requests must contain the client ID and client secret in the authorization header, - /// using the basic authentication scheme. If the client is a public client - i.e., no client secret - - /// the client secret is omitted from the Authorization header. - /// - /// Example: com.stablekernel.public is a public client. The Authorization header should be constructed - /// as so: - /// - /// Authorization: Basic base64("com.stablekernel.public:") - /// - /// Notice the trailing colon indicates that the client secret is the empty string. - @Bind.header(HttpHeaders.authorizationHeader) - String? authHeader; - - final AuthorizationBasicParser _parser = const AuthorizationBasicParser(); - - /// This class, AuthController, is responsible for handling OAuth 2.0 token operations. - /// It provides functionality for issuing and refreshing access tokens using various grant types. - /// - /// Key features: - /// - Supports 'password', 'refresh_token', and 'authorization_code' grant types - /// - Handles client authentication via Basic Authorization header - /// - Processes token requests and returns RFC6749 compliant responses - /// - Includes error handling for various authentication scenarios - /// - Provides OpenAPI documentation support - /// - /// The main method, 'grant', processes token requests based on the provided grant type. - /// It interacts with an AuthServer to perform the actual authentication and token generation. - /// - /// This controller also includes methods for generating API documentation, - /// including operation parameters, request body, and responses. - /// - /// Usage: - /// router - /// .route("/auth/token") - /// .link(() => new AuthController(authServer)); - /// - /// Note: This controller expects client credentials to be provided in the Authorization header - /// using the Basic authentication scheme. - /// - /// Creates or refreshes an authentication token. - /// - /// When grant_type is 'password', there must be username and password values. - /// When grant_type is 'refresh_token', there must be a refresh_token value. - /// When grant_type is 'authorization_code', there must be a authorization_code value. - /// - /// This endpoint requires client_id authentication. The Authorization header must - /// include a valid Client ID and Secret in the Basic authorization scheme format. - @Operation.post() - Future grant({ - /// The username of the user attempting to authenticate. - /// - /// This parameter is typically used with the 'password' grant type. - /// It should be provided as a query parameter in the request. - @Bind.query("username") String? username, - - /// The password of the user attempting to authenticate. - /// - /// This parameter is typically used with the 'password' grant type. - /// It should be provided as a query parameter in the request. - /// Note: Sending passwords as query parameters is not recommended for production environments due to security concerns. - @Bind.query("password") String? password, - - /// The refresh token used to obtain a new access token. - /// - /// This parameter is typically used with the 'refresh_token' grant type. - /// It should be provided as a query parameter in the request. - /// The refresh token is used to request a new access token when the current one has expired. - /// - /// Example: - /// curl -X POST -d "grant_type=refresh_token&refresh_token=" https://example.com/auth/token - /// - /// Note: The refresh token should be securely stored and managed by the client application. - /// It is important to handle refresh tokens with care to prevent unauthorized access to user resources. - /// - /// See also: - /// - [RFC 6749, Section 6](https://tools.ietf.org/html/rfc6749#section-6) for more details on the refresh token grant type. - /// - [OAuth 2.0 Refresh Token Grant](https://oauth.net/2/grant-types/refresh-token/) for a detailed explanation of the refresh token grant type. - /// - [OAuth 2.0 Security Best Current Practice](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-2.1) for security considerations when implementing OAuth 2.0. - @Bind.query("refresh_token") String? refreshToken, - - /// The authorization code obtained from the authorization server. - /// - /// This parameter is typically used with the 'authorization_code' grant type. - /// It should be provided as a query parameter in the request. - /// The authorization code is used to request an access token after the user has granted permission to the client application. - /// - /// Example: - /// curl -X POST -d "grant_type=authorization_code&code=&redirect_uri=" https://example.com/auth/token - /// - /// Note: The authorization code should be securely transmitted and used only once to prevent replay attacks. - /// It is important to handle authorization codes with care to protect user data and ensure the security of the OAuth 2.0 flow. - /// - /// See also: - /// - [RFC 6749, Section 4.1.3](https://tools.ietf.org/html/rfc6749#section-4.1.3) for more details on the authorization code grant type. - /// - [OAuth 2.0 Authorization Code Grant](https://oauth.net/2/grant-types/authorization-code/) for a detailed explanation of the authorization code grant type. - /// - [OAuth 2.0 Security Best Current Practice](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-2.1) for security considerations when implementing OAuth 2.0. - @Bind.query("code") String? authCode, - - /// The URI to which the authorization server will redirect the user-agent after obtaining authorization. - /// - /// This parameter is typically used with the 'authorization_code' grant type. - /// It should be provided as a query parameter in the request. - /// The redirect URI is used to ensure that the authorization code is sent to the correct client application. - /// - /// Example: - /// curl -X POST -d "grant_type=authorization_code&code=&redirect_uri=https://example.com/callback" https://example.com/auth/token - /// - /// Note: The redirect URI should be registered with the authorization server and should match the URI used during the authorization request. - /// It is important to handle redirect URIs with care to prevent unauthorized access to user resources. - /// - /// See also: - /// - [RFC 6749, Section 4.1.3](https://tools.ietf.org/html/rfc6749#section-4.1.3) for more details on the authorization code grant type. - /// - [OAuth 2.0 Authorization Code Grant](https://oauth.net/2/grant-types/authorization-code/) for a detailed explanation of the authorization code grant type. - /// - [OAuth 2.0 Security Best Current Practice](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-2.1) for security considerations when implementing OAuth 2.0. - @Bind.query("grant_type") String? grantType, - - /// The scope of the access request, which defines the resources and permissions that the client application is requesting. - /// - /// This parameter is optional and should be provided as a query parameter in the request. - /// The scope value is a space-delimited list of scope identifiers, which indicate the specific resources and permissions that the client application needs to access. - /// - /// Example: - /// curl -X POST -d "grant_type=authorization_code&code=&redirect_uri=&scope=read write" https://example.com/auth/token - /// - /// Note: The scope parameter should be used to limit the access granted to the client application to only the necessary resources and permissions. - /// It is important to handle scope values with care to ensure that the client application does not have unintended access to user resources. - /// - /// See also: - /// - [RFC 6749, Section 3.3](https://tools.ietf.org/html/rfc6749#section-3.3) for more details on the scope parameter. - /// - [OAuth 2.0 Security Best Current Practice](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-2.2) for security considerations when implementing OAuth 2.0 scope. - /// - [OAuth 2.0 Scope](https://oauth.net/2/scope/) for a detailed explanation of the scope parameter and its usage. - @Bind.query("scope") String? scope, - }) async { - AuthBasicCredentials basicRecord; - try { - basicRecord = _parser.parse(authHeader); - } on AuthorizationParserException { - return _responseForError(AuthRequestError.invalidClient); - } - - try { - final scopes = scope?.split(" ").map((s) => AuthScope(s)).toList(); - - if (grantType == "password") { - final token = await authServer.authenticate( - username, - password, - basicRecord.username, - basicRecord.password, - requestedScopes: scopes, - ); - - return AuthController.tokenResponse(token); - } else if (grantType == "refresh_token") { - final token = await authServer.refresh( - refreshToken, - basicRecord.username, - basicRecord.password, - requestedScopes: scopes, - ); - - return AuthController.tokenResponse(token); - } else if (grantType == "authorization_code") { - if (scope != null) { - return _responseForError(AuthRequestError.invalidRequest); - } - - final token = await authServer.exchange( - authCode, basicRecord.username, basicRecord.password); - - return AuthController.tokenResponse(token); - } else if (grantType == null) { - return _responseForError(AuthRequestError.invalidRequest); - } - } on FormatException { - return _responseForError(AuthRequestError.invalidScope); - } on AuthServerException catch (e) { - return _responseForError(e.reason); - } - - return _responseForError(AuthRequestError.unsupportedGrantType); - } - - /// Transforms a [AuthToken] into a [Response] object with an RFC6749 compliant JSON token - /// as the HTTP response body. - /// - /// This static method takes an [AuthToken] object and converts it into a [Response] object - /// that adheres to the OAuth 2.0 specification (RFC6749). The response includes: - /// - A status code of 200 (OK) - /// - Headers to prevent caching of the token - /// - A body containing the token information in JSON format - /// - /// Parameters: - /// - token: An [AuthToken] object containing the authentication token details - /// - /// Returns: - /// A [Response] object with the token information, ready to be sent to the client - /// - /// Example usage: - /// ```dart - /// AuthToken myToken = // ... obtain token - /// Response response = AuthController.tokenResponse(myToken); - /// ``` - /// - /// See also: - /// - [RFC6749](https://tools.ietf.org/html/rfc6749) for the OAuth 2.0 specification - /// - [AuthToken] for the structure of the token object - static Response tokenResponse(AuthToken token) { - return Response( - HttpStatus.ok, - {"Cache-Control": "no-store", "Pragma": "no-cache"}, - token.asMap(), - ); - } - - /// Processes the response before it is sent, specifically handling duplicate parameter errors. - /// - /// This method is called just before a response is sent. It checks for responses with a 400 status code - /// and modifies the error message in case of duplicate parameters in the request, which violates the OAuth 2.0 specification. - /// - /// The method performs the following actions: - /// 1. Checks if the response status code is 400 (Bad Request). - /// 2. If the response body contains an "error" key with a string value, it examines the error message. - /// 3. If the error message indicates multiple values (likely due to duplicate parameters), it replaces the error message - /// with a standard "invalid_request" error as defined in the OAuth 2.0 specification. - /// - /// This post-processing helps to maintain compliance with the OAuth 2.0 specification by providing a standard error - /// response for invalid requests, even in the case of duplicate parameters which are not explicitly handled elsewhere. - /// - /// Parameters: - /// response: The Response object that will be sent to the client. - /// - /// Note: This method directly modifies the response object if conditions are met. - @override - void willSendResponse(Response response) { - if (response.statusCode == 400) { - // This post-processes the response in the case that duplicate parameters - // were in the request, which violates oauth2 spec. It just adjusts the error message. - // This could be hardened some. - final body = response.body; - if (body != null && body["error"] is String) { - final errorMessage = body["error"] as String; - if (errorMessage.startsWith("multiple values")) { - response.body = { - "error": - AuthServerException.errorString(AuthRequestError.invalidRequest) - }; - } - } - } - } - - /// Modifies the list of API parameters documented for this operation. - /// - /// This method overrides the default behavior to remove the 'Authorization' header - /// from the list of documented parameters. This is typically done because the - /// Authorization header is handled separately in OAuth 2.0 flows and doesn't need - /// to be explicitly documented as an operation parameter. - /// - /// Parameters: - /// - context: The current API documentation context. - /// - operation: The operation being documented (can be null). - /// - /// Returns: - /// A list of [APIParameter] objects representing the documented parameters - /// for this operation, with the Authorization header removed. - @override - List documentOperationParameters( - APIDocumentContext context, - Operation? operation, - ) { - final parameters = super.documentOperationParameters(context, operation)!; - parameters.removeWhere((p) => p.name == HttpHeaders.authorizationHeader); - return parameters; - } - - /// Customizes the documentation for the request body of this operation. - /// - /// This method overrides the default behavior to add specific requirements - /// and formatting for the OAuth 2.0 token endpoint: - /// - /// 1. It marks the 'grant_type' parameter as required in the request body. - /// 2. It sets the format of the 'password' field to "password", indicating - /// that it should be treated as a sensitive input in API documentation tools. - /// - /// Parameters: - /// - context: The current API documentation context. - /// - operation: The operation being documented (can be null). - /// - /// Returns: - /// An [APIRequestBody] object with the customized schema for the request body. - @override - APIRequestBody documentOperationRequestBody( - APIDocumentContext context, - Operation? operation, - ) { - final body = super.documentOperationRequestBody(context, operation)!; - body.content!["application/x-www-form-urlencoded"]!.schema!.isRequired = [ - "grant_type" - ]; - body.content!["application/x-www-form-urlencoded"]!.schema! - .properties!["password"]!.format = "password"; - return body; - } - - /// Customizes the API documentation for the operations handled by this controller. - /// - /// This method overrides the default behavior to: - /// 1. Add OAuth 2.0 client authentication security requirement to all operations. - /// 2. Set the token and refresh URLs for the documented authorization code flow. - /// 3. Set the token and refresh URLs for the documented password flow. - /// - /// Parameters: - /// - context: The current API documentation context. - /// - route: The route string for the current operations. - /// - path: The APIPath object representing the current path. - /// - /// Returns: - /// A map of operation names to APIOperation objects with the customized documentation. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - final operations = super.documentOperations(context, route, path); - - operations.forEach((_, op) { - op.security = [ - APISecurityRequirement({"oauth2-client-authentication": []}) - ]; - }); - - final relativeUri = Uri(path: route.substring(1)); - authServer.documentedAuthorizationCodeFlow.tokenURL = relativeUri; - authServer.documentedAuthorizationCodeFlow.refreshURL = relativeUri; - - authServer.documentedPasswordFlow.tokenURL = relativeUri; - authServer.documentedPasswordFlow.refreshURL = relativeUri; - - return operations; - } - - /// Defines the API responses for the token operation in OpenAPI documentation. - /// - /// This method overrides the default behavior to provide custom documentation - /// for the responses of the token endpoint. It describes two possible responses: - /// - /// 1. A successful response (200 OK) when credentials are successfully exchanged for a token. - /// This response includes details about the issued token such as access_token, token_type, - /// expiration time, refresh_token, and scope. - /// - /// 2. An error response (400 Bad Request) for cases of invalid credentials or missing parameters. - /// This response includes an error message. - /// - /// Parameters: - /// - context: The current API documentation context. - /// - operation: The operation being documented (can be null). - /// - /// Returns: - /// A map of status codes to APIResponse objects describing the possible - /// responses for this operation. - @override - Map documentOperationResponses( - APIDocumentContext context, - Operation? operation, - ) { - return { - "200": APIResponse.schema( - "Successfully exchanged credentials for token", - APISchemaObject.object({ - "access_token": APISchemaObject.string(), - "token_type": APISchemaObject.string(), - "expires_in": APISchemaObject.integer(), - "refresh_token": APISchemaObject.string(), - "scope": APISchemaObject.string() - }), - contentTypes: ["application/json"], - ), - "400": APIResponse.schema( - "Invalid credentials or missing parameters.", - APISchemaObject.object({"error": APISchemaObject.string()}), - contentTypes: ["application/json"], - ) - }; - } - - /// Creates a Response object for an authentication error. - /// - /// This method generates a standardized HTTP response for various authentication - /// errors that may occur during the OAuth 2.0 flow. It uses the [AuthRequestError] - /// enum to determine the specific error and creates a response with: - /// - A status code of 400 (Bad Request) - /// - A JSON body containing an "error" key with a description of the error - /// - /// Parameters: - /// - error: An [AuthRequestError] enum representing the specific authentication error. - /// - /// Returns: - /// A [Response] object with status code 400 and a JSON body describing the error. - /// - /// Example usage: - /// ```dart - /// Response errorResponse = _responseForError(AuthRequestError.invalidRequest); - /// ``` - /// - /// The error string in the response body is generated using [AuthServerException.errorString], - /// ensuring consistency with OAuth 2.0 error reporting standards. - Response _responseForError(AuthRequestError error) { - return Response.badRequest( - body: {"error": AuthServerException.errorString(error)}, - ); - } -} diff --git a/packages/auth/lib/src/auth_redirect_controller.dart b/packages/auth/lib/src/auth_redirect_controller.dart deleted file mode 100644 index 7413bdd..0000000 --- a/packages/auth/lib/src/auth_redirect_controller.dart +++ /dev/null @@ -1,587 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Abstract class defining the interface for providing application-specific behavior to [AuthRedirectController]. -/// -/// This delegate is responsible for rendering the HTML login form when [AuthRedirectController.getAuthorizationPage] -/// is called in response to a GET request. Implementations of this class should customize the login form -/// according to the application's needs while ensuring that the form submission adheres to the required format. -/// -/// The rendered form should: -/// - Be submitted as a POST request to the [requestUri]. -/// - Include all provided parameters (responseType, clientID, state, scope) in the form submission. -/// - Collect and include user-entered username and password. -/// - Use 'application/x-www-form-urlencoded' as the Content-Type for form submission. -/// -/// Example of expected form submission: -/// -/// POST https://example.com/auth/code -/// Content-Type: application/x-www-form-urlencoded -/// -/// response_type=code&client_id=com.conduit.app&state=o9u3jla&username=bob&password=password -/// -/// Implementations should take care to handle all provided parameters and ensure secure transmission of credentials. -abstract class AuthRedirectControllerDelegate { - /// Returns an HTML representation of a login form. - /// - /// This method is responsible for generating and returning the HTML content for a login form - /// when [AuthRedirectController.getAuthorizationPage] is called in response to a GET request. - /// - /// The form submission should include the values of [responseType], [clientID], [state], [scope] - /// as well as user-entered username and password in `x-www-form-urlencoded` data, e.g. - /// - /// POST https://example.com/auth/code - /// Content-Type: application/x-www-form-urlencoded - /// - /// response_type=code&client_id=com.conduit.app&state=o9u3jla&username=bob&password=password - /// - /// - /// If not null, [scope] should also be included as an additional form parameter. - Future render( - AuthRedirectController forController, - Uri requestUri, - String? responseType, - String clientID, - String? state, - String? scope, - ); -} - -/// Controller for issuing OAuth 2.0 authorization codes and tokens. -/// -/// This controller provides an endpoint for creating an OAuth 2.0 authorization code or access token. An authorization code -/// can be exchanged for an access token with an [AuthController]. This is known as the OAuth 2.0 'Authorization Code Grant' flow. -/// Returning an access token is known as the OAuth 2.0 'Implicit Grant' flow. -/// -/// See operation methods [getAuthorizationPage] and [authorize] for more details. -/// -/// Usage: -/// -/// router -/// .route("/auth/code") -/// .link(() => new AuthRedirectController(authServer)); -/// -class AuthRedirectController extends ResourceController { - /// Creates a new instance of an [AuthRedirectController]. - /// - /// This constructor initializes an [AuthRedirectController] with the provided [authServer]. - /// - /// Parameters: - /// - [authServer]: The required authorization server. - /// - [delegate]: Optional. If provided, this controller will return a login page for all GET requests. - /// - [allowsImplicit]: Optional. Defaults to true. Determines if the controller allows the Implicit Grant Flow. - /// - /// The constructor also sets the [acceptedContentTypes] to ["application/x-www-form-urlencoded"]. - /// - /// Usage: - /// ```dart - /// final authRedirectController = AuthRedirectController( - /// myAuthServer, - /// delegate: myDelegate, - /// allowsImplicit: false, - /// ); - /// ``` - AuthRedirectController( - this.authServer, { - this.delegate, - this.allowsImplicit = true, - }) { - acceptedContentTypes = [ - ContentType("application", "x-www-form-urlencoded") - ]; - } - - /// A pre-defined Response object for unsupported response types. - /// - /// This static final variable creates a Response object with: - /// - HTTP status code 400 (Bad Request) - /// - HTML content indicating an "unsupported_response_type" error - /// - Content-Type set to text/html - /// - /// This response is used when the 'response_type' parameter in the request - /// is neither 'code' nor 'token', or when 'token' is requested but implicit - /// grant flow is not allowed. - static final Response _unsupportedResponseTypeResponse = Response.badRequest( - body: "

Error

unsupported_response_type

", - )..contentType = ContentType.html; - - /// A reference to the [AuthServer] used to grant authorization codes and access tokens. - /// - /// This property holds an instance of [AuthServer] which is responsible for - /// handling the authentication and authorization processes. It is used by - /// this controller to issue authorization codes and access tokens as part of - /// the OAuth 2.0 flow. - /// - /// The [AuthServer] instance should be properly configured and initialized - /// before being assigned to this property. - late final AuthServer authServer; - - /// Determines whether the controller allows the OAuth 2.0 Implicit Grant Flow. - /// - /// When set to true, the controller will process requests for access tokens - /// directly (response_type=token). When false, such requests will be rejected. - /// - /// This property is typically set in the constructor and should not be - /// modified after initialization. - final bool allowsImplicit; - - /// A randomly generated value the client can use to verify the origin of the redirect. - /// - /// This property is bound to the 'state' query parameter of the incoming request. - /// It serves as a security measure to prevent cross-site request forgery (CSRF) attacks. - /// - /// Clients must include this query parameter when initiating an authorization request. - /// Upon receiving a redirect from this server, clients should verify that the 'state' - /// value in the redirect matches the one they initially sent. This ensures that the - /// response is for the request they initiated and not for a malicious request. - /// - /// The value of 'state' is typically a randomly generated string or session identifier. - /// It should be unique for each authorization request to maintain security. - /// - /// Example usage: - /// ``` - /// GET /authorize?response_type=code&client_id=CLIENT_ID&state=RANDOM_STATE - /// ``` - @Bind.query("state") - String? state; - - /// The type of response requested from the authorization endpoint. - /// - /// This property is bound to the 'response_type' query parameter of the incoming request. - /// It must be either 'code' or 'token': - /// - 'code': Indicates that the client is initiating the authorization code flow. - /// - 'token': Indicates that the client is initiating the implicit flow. - /// - /// The value of this property determines the type of credential (authorization code or access token) - /// that will be issued upon successful authentication. - /// - /// Note: The availability of the 'token' response type depends on the [allowsImplicit] setting - /// of the controller. - @Bind.query("response_type") - String? responseType; - - /// The client ID of the authenticating client. - /// - /// This property is bound to the 'client_id' query parameter of the incoming request. - /// It represents the unique identifier of the client application requesting authorization. - /// - /// The client ID must be registered and valid according to the [authServer]. - /// It is used to identify the client during the authorization process and to ensure - /// that only authorized clients can request access tokens or authorization codes. - /// - /// This field is nullable, but typically required for most OAuth 2.0 flows. - /// If not provided in the request, it may lead to authorization failures. - /// - /// Example usage in a request URL: - /// ``` - /// GET /authorize?client_id=my_client_id&... - /// ``` - @Bind.query("client_id") - String? clientID; - - /// Delegate responsible for rendering the HTML login form. - /// - /// If provided, this delegate will be used to generate a custom login page - /// when [getAuthorizationPage] is called. The delegate's [render] method - /// is responsible for creating the HTML content of the login form. - /// - /// When this property is null, the controller will not serve a login page - /// and will respond with a 405 Method Not Allowed status for GET requests. - /// - /// This delegate allows for customization of the login experience while - /// maintaining the required OAuth 2.0 authorization flow. - final AuthRedirectControllerDelegate? delegate; - - /// Returns an HTML login form for OAuth 2.0 authorization. - /// - /// A client that wishes to authenticate with this server should direct the user - /// to this page. The user will enter their username and password that is sent as a POST - /// request to this same controller. - /// - /// The 'client_id' must be a registered, valid client of this server. The client must also provide - /// a [state] to this request and verify that the redirect contains the same value in its query string. - @Operation.get() - Future getAuthorizationPage({ - /// A space-delimited list of access scopes to be requested by the form submission on the returned page. - @Bind.query("scope") String? scope, - }) async { - if (delegate == null) { - return Response(405, {}, null); - } - - if (responseType != "code" && responseType != "token") { - return _unsupportedResponseTypeResponse; - } - - if (responseType == "token" && !allowsImplicit) { - return _unsupportedResponseTypeResponse; - } - - final renderedPage = await delegate! - .render(this, request!.raw.uri, responseType, clientID!, state, scope); - if (renderedPage == null) { - return Response.notFound(); - } - - return Response.ok(renderedPage)..contentType = ContentType.html; - } - - /// Creates a one-time use authorization code or an access token. - /// - /// This method handles the OAuth 2.0 authorization process, responding with a redirect - /// that contains either an authorization code ('code') or an access token ('token') - /// along with the passed in 'state'. If the request fails, the redirect URL will - /// contain an 'error' instead of the authorization code or access token. - /// - /// This method is typically invoked by the login form returned from the GET to this controller. - @Operation.post() - Future authorize({ - /// The username of the authenticating user. - @Bind.query("username") String? username, - - /// The password of the authenticating user. - @Bind.query("password") String? password, - - /// A space-delimited list of access scopes being requested. - @Bind.query("scope") String? scope, - }) async { - if (clientID == null) { - return Response.badRequest(); - } - - final client = await authServer.getClient(clientID!); - - if (client?.redirectURI == null) { - return Response.badRequest(); - } - - if (responseType == "token" && !allowsImplicit) { - return _unsupportedResponseTypeResponse; - } - - if (state == null) { - return _redirectResponse( - null, - null, - error: AuthServerException(AuthRequestError.invalidRequest, client), - ); - } - - try { - final scopes = scope?.split(" ").map((s) => AuthScope(s)).toList(); - - if (responseType == "code") { - if (client!.hashedSecret == null) { - return _redirectResponse( - null, - state, - error: AuthServerException( - AuthRequestError.unauthorizedClient, - client, - ), - ); - } - - final authCode = await authServer.authenticateForCode( - username, - password, - clientID!, - requestedScopes: scopes, - ); - return _redirectResponse( - client.redirectURI, - state, - code: authCode.code, - ); - } else if (responseType == "token") { - final token = await authServer.authenticate( - username, - password, - clientID!, - null, - requestedScopes: scopes, - ); - return _redirectResponse(client!.redirectURI, state, token: token); - } else { - return _redirectResponse( - null, - state, - error: AuthServerException(AuthRequestError.invalidRequest, client), - ); - } - } on FormatException { - return _redirectResponse( - null, - state, - error: AuthServerException(AuthRequestError.invalidScope, client), - ); - } on AuthServerException catch (e) { - if (responseType == "token" && - e.reason == AuthRequestError.invalidGrant) { - return _redirectResponse( - null, - state, - error: AuthServerException(AuthRequestError.accessDenied, client), - ); - } - - return _redirectResponse(null, state, error: e); - } - } - - /// Customizes the API documentation for the request body of this controller's operations. - /// - /// This method overrides the default implementation to add specific details to the - /// POST operation's request body schema: - /// - Sets the format of the 'password' field to "password". - /// - Marks 'client_id', 'state', 'response_type', 'username', and 'password' as required fields. - /// - /// Parameters: - /// - context: The API documentation context. - /// - operation: The operation being documented. - /// - /// Returns: - /// The modified [APIRequestBody] object, or null if no modifications were made. - @override - APIRequestBody? documentOperationRequestBody( - APIDocumentContext context, - Operation? operation, - ) { - final body = super.documentOperationRequestBody(context, operation); - if (operation!.method == "POST") { - body!.content!["application/x-www-form-urlencoded"]!.schema! - .properties!["password"]!.format = "password"; - body.content!["application/x-www-form-urlencoded"]!.schema!.isRequired = [ - "client_id", - "state", - "response_type", - "username", - "password" - ]; - } - return body; - } - - /// Customizes the API documentation for the operation parameters of this controller. - /// - /// This method overrides the default implementation to mark all parameters - /// as required, except for the 'scope' parameter. It does this by: - /// 1. Calling the superclass method to get the initial list of parameters. - /// 2. Iterating through all parameters except 'scope'. - /// 3. Setting the 'isRequired' property of each parameter to true. - /// - /// Parameters: - /// - context: The API documentation context. - /// - operation: The operation being documented. - /// - /// Returns: - /// A list of [APIParameter] objects with updated 'isRequired' properties. - @override - List documentOperationParameters( - APIDocumentContext context, - Operation? operation, - ) { - final params = super.documentOperationParameters(context, operation)!; - params.where((p) => p.name != "scope").forEach((p) { - p.isRequired = true; - }); - return params; - } - - /// Generates API documentation for the responses of this controller's operations. - /// - /// This method overrides the default implementation to provide custom documentation - /// for the GET and POST operations of the AuthRedirectController. - /// - /// For GET requests: - /// - Documents a 200 response that serves a login form in HTML format. - /// - /// For POST requests: - /// - Documents a 302 (Moved Temporarily) response for successful authorizations, - /// explaining the structure of the redirect URI for both 'code' and 'token' response types. - /// - Documents a 400 (Bad Request) response for cases where the client ID is invalid - /// and the redirect URI cannot be verified. - /// - /// Parameters: - /// - context: The API documentation context. - /// - operation: The operation being documented. - /// - /// Returns: - /// A Map of status codes to APIResponse objects describing the possible responses. - /// - /// Throws: - /// StateError if documentation fails (i.e., for unexpected HTTP methods). - @override - Map documentOperationResponses( - APIDocumentContext context, - Operation? operation, - ) { - if (operation!.method == "GET") { - return { - "200": APIResponse.schema( - "Serves a login form.", - APISchemaObject.string(), - contentTypes: ["text/html"], - ) - }; - } else if (operation.method == "POST") { - return { - "${HttpStatus.movedTemporarily}": APIResponse( - "If successful, in the case of a 'response type' of 'code', the query " - "parameter of the redirect URI named 'code' contains authorization code. " - "Otherwise, the query parameter 'error' is present and contains a error string. " - "In the case of a 'response type' of 'token', the redirect URI's fragment " - "contains an access token. Otherwise, the fragment contains an error code.", - headers: { - "Location": APIHeader() - ..schema = APISchemaObject.string(format: "uri") - }, - ), - "${HttpStatus.badRequest}": APIResponse.schema( - "If 'client_id' is invalid, the redirect URI cannot be verified and this response is sent.", - APISchemaObject.object({"error": APISchemaObject.string()}), - contentTypes: ["application/json"], - ) - }; - } - - throw StateError("AuthRedirectController documentation failed."); - } - - /// Customizes the API documentation for the operations of this controller. - /// - /// This method overrides the default implementation to update the authorization URLs - /// for both the Authorization Code Flow and Implicit Flow in the API documentation. - /// - /// It performs the following steps: - /// 1. Calls the superclass method to get the initial operations documentation. - /// 2. Constructs a URI from the given route. - /// 3. Sets this URI as the authorization URL for both the Authorization Code Flow - /// and the Implicit Flow in the auth server's documentation. - /// - /// Parameters: - /// - context: The API documentation context. - /// - route: The route string for this controller. - /// - path: The APIPath object representing this controller's path. - /// - /// Returns: - /// A Map of operation IDs to APIOperation objects describing the operations of this controller. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - final ops = super.documentOperations(context, route, path); - final uri = Uri(path: route.substring(1)); - authServer.documentedAuthorizationCodeFlow.authorizationURL = uri; - authServer.documentedImplicitFlow.authorizationURL = uri; - return ops; - } - - /// Generates a redirect response for OAuth 2.0 authorization flow. - /// - /// This method constructs a redirect URI based on the given parameters and the type of response - /// (code or token) requested. It handles both successful authorizations and error cases. - /// - /// Parameters: - /// - [inputUri]: The base URI to redirect to. If null, falls back to the client's registered redirect URI. - /// - [clientStateOrNull]: The state parameter provided by the client for CSRF protection. - /// - [code]: The authorization code (for code flow). - /// - [token]: The access token (for token/implicit flow). - /// - [error]: Any error that occurred during the authorization process. - /// - /// Returns: - /// - A [Response] object with a 302 status code and appropriate headers for redirection. - /// - If the redirect URI is invalid or cannot be constructed, returns a 400 Bad Request response. - /// - /// The method constructs the redirect URI as follows: - /// - For 'code' response type: Adds code, state, and error (if any) as query parameters. - /// - For 'token' response type: Adds token details, state, and error (if any) as URI fragment. - /// - /// The response includes headers to prevent caching of the redirect. - Response _redirectResponse( - String? inputUri, - String? clientStateOrNull, { - String? code, - AuthToken? token, - AuthServerException? error, - }) { - final uriString = inputUri ?? error!.client?.redirectURI; - if (uriString == null) { - return Response.badRequest(body: {"error": error!.reasonString}); - } - - Uri redirectURI; - - try { - redirectURI = Uri.parse(uriString); - } catch (error) { - return Response.badRequest(); - } - - final queryParameters = - Map.from(redirectURI.queryParameters); - String? fragment; - - if (responseType == "code") { - if (code != null) { - queryParameters["code"] = code; - } - if (clientStateOrNull != null) { - queryParameters["state"] = clientStateOrNull; - } - if (error != null) { - queryParameters["error"] = error.reasonString; - } - } else if (responseType == "token") { - final params = token?.asMap() ?? {}; - - if (clientStateOrNull != null) { - params["state"] = clientStateOrNull; - } - if (error != null) { - params["error"] = error.reasonString; - } - - fragment = params.keys - .map((key) => "$key=${Uri.encodeComponent(params[key].toString())}") - .join("&"); - } else { - return _unsupportedResponseTypeResponse; - } - - final responseURI = Uri( - scheme: redirectURI.scheme, - userInfo: redirectURI.userInfo, - host: redirectURI.host, - port: redirectURI.port, - path: redirectURI.path, - queryParameters: queryParameters, - fragment: fragment, - ); - return Response( - HttpStatus.movedTemporarily, - { - HttpHeaders.locationHeader: responseURI.toString(), - HttpHeaders.cacheControlHeader: "no-store", - HttpHeaders.pragmaHeader: "no-cache" - }, - null, - ); - } -} diff --git a/packages/auth/lib/src/authorization_parser.dart b/packages/auth/lib/src/authorization_parser.dart deleted file mode 100644 index 885ae45..0000000 --- a/packages/auth/lib/src/authorization_parser.dart +++ /dev/null @@ -1,225 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:convert'; - -/// An abstract class for parsing authorization headers. -/// -/// This class defines a common interface for parsing different types of -/// authorization headers. Implementations of this class should provide -/// specific parsing logic for different authorization schemes (e.g., Bearer, Basic). -/// -/// The type parameter [T] represents the return type of the [parse] method, -/// allowing for flexibility in the parsed result (e.g., String for Bearer tokens, -/// custom credential objects for other schemes). -abstract class AuthorizationParser { - const AuthorizationParser(); - - T parse(String authorizationHeader); -} - -/// Parses a Bearer token from an Authorization header. -/// -/// This class extends [AuthorizationParser] and specializes in parsing Bearer tokens -/// from Authorization headers. It implements the [parse] method to extract the token -/// from a given header string. -/// -/// Usage: -/// ```dart -/// final parser = AuthorizationBearerParser(); -/// final token = parser.parse("Bearer myToken123"); -/// print(token); // Outputs: myToken123 -/// ``` -/// -/// If the header is invalid or missing, it throws an [AuthorizationParserException] -/// with an appropriate [AuthorizationParserExceptionReason]. -class AuthorizationBearerParser extends AuthorizationParser { - const AuthorizationBearerParser(); - - /// Parses a Bearer token from an Authorization header. - /// - /// For example, if the input to this method is "Bearer token" it would return 'token'. - /// - /// If [authorizationHeader] is malformed or null, throws an [AuthorizationParserException]. - @override - String? parse(String authorizationHeader) { - if (authorizationHeader.isEmpty) { - throw AuthorizationParserException( - AuthorizationParserExceptionReason.missing, - ); - } - - final matcher = RegExp("Bearer (.+)"); - final match = matcher.firstMatch(authorizationHeader); - if (match == null) { - throw AuthorizationParserException( - AuthorizationParserExceptionReason.malformed, - ); - } - return match[1]; - } -} - -/// A structure to hold Basic authorization credentials. -/// -/// This class represents the credentials used in Basic HTTP Authentication. -/// It contains two properties: [username] and [password]. -/// -/// The [username] and [password] are marked as `late final`, indicating that -/// they must be initialized before use, but can only be set once. -/// -/// This class is typically used in conjunction with [AuthorizationBasicParser] -/// to parse and store credentials from a Basic Authorization header. -/// -/// The [toString] method is overridden to provide a string representation -/// of the credentials in the format "username:password". -/// -/// Example usage: -/// ```dart -/// final credentials = AuthBasicCredentials() -/// ..username = 'john_doe' -/// ..password = 'secret123'; -/// print(credentials); // Outputs: john_doe:secret123 -/// ``` -/// -/// See [AuthorizationBasicParser] for getting instances of this type. -class AuthBasicCredentials { - /// The username of a Basic Authorization header. - late final String username; - - /// The password of a Basic Authorization header. - late final String password; - - @override - String toString() => "$username:$password"; -} - -/// Parses a Basic Authorization header. -/// -/// This class extends [AuthorizationParser] and specializes in parsing Basic Authentication -/// credentials from Authorization headers. It implements the [parse] method to extract -/// the username and password from a given header string. -/// -/// The parser expects the header to be in the format "Basic ", -/// where the credentials are a string of "username:password" encoded in Base64. -/// -/// Usage: -/// ```dart -/// final parser = AuthorizationBasicParser(); -/// final credentials = parser.parse("Basic dXNlcm5hbWU6cGFzc3dvcmQ="); -/// print(credentials.username); // Outputs: username -/// print(credentials.password); // Outputs: password -/// ``` -/// -/// If the header is invalid, missing, or cannot be properly decoded, it throws an -/// [AuthorizationParserException] with an appropriate [AuthorizationParserExceptionReason]. -class AuthorizationBasicParser - extends AuthorizationParser { - /// Creates a constant instance of [AuthorizationBasicParser]. - /// - /// This constructor allows for the creation of immutable instances of the parser, - /// which can be safely shared and reused across multiple parts of an application. - /// - /// Example usage: - /// ```dart - /// final parser = const AuthorizationBasicParser(); - /// ``` - const AuthorizationBasicParser(); - - /// Parses a Basic Authorization header and returns [AuthBasicCredentials]. - /// - /// If [authorizationHeader] is malformed or null, throws an [AuthorizationParserException]. - @override - AuthBasicCredentials parse(String? authorizationHeader) { - if (authorizationHeader == null) { - throw AuthorizationParserException( - AuthorizationParserExceptionReason.missing, - ); - } - - final matcher = RegExp("Basic (.+)"); - final match = matcher.firstMatch(authorizationHeader); - if (match == null) { - throw AuthorizationParserException( - AuthorizationParserExceptionReason.malformed, - ); - } - - final base64String = match[1]!; - String decodedCredentials; - try { - decodedCredentials = - String.fromCharCodes(const Base64Decoder().convert(base64String)); - } catch (e) { - throw AuthorizationParserException( - AuthorizationParserExceptionReason.malformed, - ); - } - - final splitCredentials = decodedCredentials.split(":"); - if (splitCredentials.length != 2) { - throw AuthorizationParserException( - AuthorizationParserExceptionReason.malformed, - ); - } - - return AuthBasicCredentials() - ..username = splitCredentials.first - ..password = splitCredentials.last; - } -} - -/// Enumerates the possible reasons for authorization parsing failures. -/// -/// This enum is used in conjunction with [AuthorizationParserException] to -/// provide more specific information about why the parsing of an authorization -/// header failed. -/// -/// The enum contains two values: -/// - [missing]: Indicates that the required authorization header was not present. -/// - [malformed]: Indicates that the authorization header was present but its -/// format was incorrect or could not be properly parsed. -/// -/// This enum is typically used by [AuthorizationBearerParser] and -/// [AuthorizationBasicParser] to specify the nature of parsing failures. -enum AuthorizationParserExceptionReason { missing, malformed } - -/// An exception class for errors encountered during authorization parsing. -/// -/// This exception is thrown when there's an issue parsing an authorization header. -/// It contains a [reason] field of type [AuthorizationParserExceptionReason] -/// which provides more specific information about why the parsing failed. -/// -/// The [reason] can be either [AuthorizationParserExceptionReason.missing] -/// (indicating the absence of a required authorization header) or -/// [AuthorizationParserExceptionReason.malformed] (indicating an incorrectly -/// formatted authorization header). -/// -/// This exception is typically thrown by implementations of [AuthorizationParser], -/// such as [AuthorizationBearerParser] and [AuthorizationBasicParser]. -/// -/// Example usage: -/// ```dart -/// try { -/// parser.parse(header); -/// } catch (e) { -/// if (e is AuthorizationParserException) { -/// if (e.reason == AuthorizationParserExceptionReason.missing) { -/// print('Authorization header is missing'); -/// } else if (e.reason == AuthorizationParserExceptionReason.malformed) { -/// print('Authorization header is malformed'); -/// } -/// } -/// } -/// ``` -class AuthorizationParserException implements Exception { - AuthorizationParserException(this.reason); - - AuthorizationParserExceptionReason reason; -} diff --git a/packages/auth/lib/src/authorization_server.dart b/packages/auth/lib/src/authorization_server.dart deleted file mode 100644 index 269ec8b..0000000 --- a/packages/auth/lib/src/authorization_server.dart +++ /dev/null @@ -1,1012 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:math'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:crypto/crypto.dart'; - -/// A OAuth 2.0 authorization server. -/// -/// This class implements the core functionality of an OAuth 2.0 authorization server, -/// including client management, token issuance, token refresh, and token verification. -/// It supports various OAuth 2.0 flows such as password, client credentials, authorization code, -/// and refresh token. -/// -/// [AuthServer]s are typically used in conjunction with [AuthController] and [AuthRedirectController]. -/// These controllers provide HTTP interfaces to the [AuthServer] for issuing and refreshing tokens. -/// Likewise, [Authorizer]s verify these issued tokens to protect endpoint controllers. -/// -/// [AuthServer]s can be customized through their [delegate]. This required property manages persistent storage of authorization -/// objects among other tasks. There are security considerations for [AuthServerDelegate] implementations; prefer to use a tested -/// implementation like `ManagedAuthDelegate` from `package:conduit_core/managed_auth.dart`. -/// -/// Usage example with `ManagedAuthDelegate`: -/// -/// import 'package:conduit_core/conduit_core.dart'; -/// import 'package:conduit_core/managed_auth.dart'; -/// -/// class User extends ManagedObject<_User> implements _User, ManagedAuthResourceOwner {} -/// class _User extends ManagedAuthenticatable {} -/// -/// class Channel extends ApplicationChannel { -/// ManagedContext context; -/// AuthServer authServer; -/// -/// @override -/// Future prepare() async { -/// context = createContext(); -/// -/// final delegate = new ManagedAuthStorage(context); -/// authServer = new AuthServer(delegate); -/// } -/// -/// @override -/// Controller get entryPoint { -/// final router = new Router(); -/// router -/// .route("/protected") -/// .link(() =>new Authorizer(authServer)) -/// .link(() => new ProtectedResourceController()); -/// -/// router -/// .route("/auth/token") -/// .link(() => new AuthController(authServer)); -/// -/// return router; -/// } -/// } -/// -class AuthServer implements AuthValidator, APIComponentDocumenter { - /// This constructor initializes an [AuthServer] with the provided [delegate], - /// which is responsible for managing authentication-related data storage and retrieval. - /// - /// Parameters: - /// - [delegate]: An instance of [AuthServerDelegate] that handles data persistence. - /// - [hashRounds]: The number of iterations for password hashing. Defaults to 1000. - /// - [hashLength]: The length of the generated hash in bytes. Defaults to 32. - /// - [hashFunction]: The hash function to use. Defaults to [sha256]. - /// - /// The [hashRounds], [hashLength], and [hashFunction] parameters configure the - /// password hashing mechanism used by this [AuthServer] instance. These values - /// affect the security and performance of password hashing operations. - /// - /// Example: - /// ```dart - /// final delegate = MyAuthServerDelegate(); - /// final authServer = AuthServer( - /// delegate, - /// hashRounds: 1000, - /// hashLength: 32, - /// hashFunction: sha256, - /// ); - /// ``` - AuthServer( - this.delegate, { - this.hashRounds = 1000, - this.hashLength = 32, - this.hashFunction = sha256, - }); - - /// The object responsible for carrying out the storage mechanisms of this instance. - /// - /// This instance is responsible for storing, fetching and deleting instances of - /// [AuthToken], [AuthCode] and [AuthClient] by implementing the [AuthServerDelegate] interface. - /// - /// It is preferable to use the implementation of [AuthServerDelegate] from 'package:conduit_core/managed_auth.dart'. See - /// [AuthServer] for more details. - /// - /// This delegate plays a crucial role in the OAuth 2.0 flow by managing the persistence - /// of authentication-related objects. It abstracts away the storage implementation, - /// allowing for flexibility in how these objects are stored (e.g., in-memory, database). - /// - /// The delegate is responsible for the following main tasks: - /// 1. Storing and retrieving AuthClient information - /// 2. Managing AuthToken lifecycle (creation, retrieval, and revocation) - /// 3. Handling AuthCode operations for the authorization code flow - /// 4. Fetching ResourceOwner information for authentication purposes - /// - /// Implementations of this delegate should ensure thread-safety and efficient - /// data access to maintain the performance and security of the authentication server. - final AuthServerDelegate delegate; - - /// The number of hashing rounds performed by this instance when validating a password. - /// - /// This value determines the number of iterations the password hashing algorithm - /// will perform. A higher number of rounds increases the computational cost and - /// time required to hash a password, making it more resistant to brute-force attacks. - /// However, it also increases the time needed for legitimate password verification. - /// - /// The optimal value balances security and performance based on the specific - /// requirements of the application. Common values range from 1000 to 50000, - /// but may need adjustment based on hardware capabilities and security needs. - final int hashRounds; - - /// The resulting key length of a password hash when generated by this instance. - /// - /// This value determines the length (in bytes) of the generated password hash. - /// A longer hash length generally provides more security against certain types of attacks, - /// but also requires more storage space. Common values range from 16 to 64 bytes. - /// - /// This parameter is used in conjunction with [hashRounds] and [hashFunction] - /// to configure the password hashing algorithm (typically PBKDF2). - final int hashLength; - - /// The [Hash] function used by the PBKDF2 algorithm to generate password hashes by this instance. - /// - /// This function is used in the password hashing process to create secure, one-way - /// hashes of passwords. The PBKDF2 (Password-Based Key Derivation Function 2) - /// algorithm uses this hash function repeatedly to increase the computational cost - /// of cracking the resulting hash. - /// - /// By default, this is set to [sha256], but it can be customized to use other - /// cryptographic hash functions if needed. The choice of hash function affects - /// the security and performance characteristics of the password hashing process. - /// - /// This property works in conjunction with [hashRounds] and [hashLength] to - /// configure the overall password hashing strategy of the AuthServer. - final Hash hashFunction; - - /// Represents the OAuth 2.0 Authorization Code flow for OpenAPI documentation purposes. - /// - /// This property is used to document the Authorization Code flow in the OpenAPI - /// specification generated for this AuthServer. It is initialized as an empty - /// OAuth2 flow with an empty scopes map, which can be populated later with - /// the specific scopes supported by the server. - /// - /// The Authorization Code flow is a secure way of obtaining access tokens - /// that involves a client application directing the resource owner to an - /// authorization server to grant permission, then using the resulting - /// authorization code to obtain an access token. - /// - /// This property is typically used in conjunction with the `documentComponents` - /// method to properly document the OAuth2 security scheme in the API specification. - final APISecuritySchemeOAuth2Flow documentedAuthorizationCodeFlow = - APISecuritySchemeOAuth2Flow.empty()..scopes = {}; - - /// Represents the OAuth 2.0 Password flow for OpenAPI documentation purposes. - /// - /// This property is used to document the Password flow in the OpenAPI - /// specification generated for this AuthServer. It is initialized as an empty - /// OAuth2 flow with an empty scopes map, which can be populated later with - /// the specific scopes supported by the server for the Password flow. - /// - /// The Password flow allows users to exchange their username and password - /// directly for an access token. This flow should only be used by trusted - /// applications due to its sensitivity in handling user credentials. - /// - /// This property is typically used in conjunction with the `documentComponents` - /// method to properly document the OAuth2 security scheme in the API specification. - final APISecuritySchemeOAuth2Flow documentedPasswordFlow = - APISecuritySchemeOAuth2Flow.empty()..scopes = {}; - - /// Represents the OAuth 2.0 Implicit flow for OpenAPI documentation purposes. - /// - /// This property is used to document the Implicit flow in the OpenAPI - /// specification generated for this AuthServer. It is initialized as an empty - /// OAuth2 flow with an empty scopes map, which can be populated later with - /// the specific scopes supported by the server for the Implicit flow. - /// - /// The Implicit flow is designed for client-side applications (e.g., single-page web apps) - /// where the access token is returned immediately without an extra authorization code - /// exchange step. This flow has some security trade-offs and is generally not recommended - /// for new implementations. - /// - /// This property is typically used in conjunction with the `documentComponents` - /// method to properly document the OAuth2 security scheme in the API specification. - final APISecuritySchemeOAuth2Flow documentedImplicitFlow = - APISecuritySchemeOAuth2Flow.empty()..scopes = {}; - - /// Constant representing the token type "bearer" for OAuth 2.0 access tokens. - /// - /// This value is used to specify the type of token issued by the authorization server. - /// The "bearer" token type is defined in RFC 6750 and is the most common type used in OAuth 2.0. - /// Bearer tokens can be used by any party in possession of the token to access protected resources - /// without demonstrating possession of a cryptographic key. - static const String tokenTypeBearer = "bearer"; - - /// Hashes a password using the PBKDF2 algorithm. - /// - /// See [hashRounds], [hashLength] and [hashFunction] for more details. This method - /// invoke [auth.generatePasswordHash] with the above inputs. - String hashPassword(String password, String salt) { - return generatePasswordHash( - password, - salt, - hashRounds: hashRounds, - hashLength: hashLength, - hashFunction: hashFunction, - ); - } - - /// Adds a new OAuth2 client to the authentication server. - /// - /// [delegate] will store this client for future use. - Future addClient(AuthClient client) async { - if (client.id.isEmpty) { - throw ArgumentError( - "A client must have an id.", - ); - } - - if (client.redirectURI != null && client.hashedSecret == null) { - throw ArgumentError( - "A client with a redirectURI must have a client secret.", - ); - } - - return delegate.addClient(this, client); - } - - /// Retrieves an [AuthClient] record based on the provided [clientID]. - /// - /// Returns null if none exists. - Future getClient(String clientID) async { - return delegate.getClient(this, clientID); - } - - /// Revokes and removes an [AuthClient] record associated with the given [clientID]. - /// - /// Removes cached occurrences of [AuthClient] for [clientID]. - /// Asks [delegate] to remove an [AuthClient] by its ID via [AuthServerDelegate.removeClient]. - Future removeClient(String clientID) async { - if (clientID.isEmpty) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - return delegate.removeClient(this, clientID); - } - - /// Revokes all access grants for a specific resource owner. - /// - /// All authorization codes and tokens for the [ResourceOwner] identified by [identifier] - /// will be revoked. - Future revokeAllGrantsForResourceOwner(int? identifier) async { - if (identifier == null) { - throw ArgumentError.notNull("identifier"); - } - - await delegate.removeTokens(this, identifier); - } - - /// Authenticates a username and password of a [ResourceOwner] and returns an [AuthToken] upon success. - /// - /// This method works with this instance's [delegate] to generate and store a new token if all credentials are correct. - /// If credentials are not correct, it will throw the appropriate [AuthRequestError]. - /// - /// After [expiration], this token will no longer be valid. - Future authenticate( - String? username, - String? password, - String clientID, - String? clientSecret, { - Duration expiration = const Duration(hours: 24), - List? requestedScopes, - }) async { - if (clientID.isEmpty) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - final client = await getClient(clientID); - if (client == null) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - if (username == null || password == null) { - throw AuthServerException(AuthRequestError.invalidRequest, client); - } - - if (client.isPublic) { - if (!(clientSecret == null || clientSecret == "")) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - } else { - if (clientSecret == null) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - if (client.hashedSecret != hashPassword(clientSecret, client.salt!)) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - } - - final authenticatable = await delegate.getResourceOwner(this, username); - if (authenticatable == null) { - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - - final dbSalt = authenticatable.salt!; - final dbPassword = authenticatable.hashedPassword; - final hash = hashPassword(password, dbSalt); - if (hash != dbPassword) { - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - - final validScopes = - _validatedScopes(client, authenticatable, requestedScopes); - final token = _generateToken( - authenticatable.id, - client.id, - expiration.inSeconds, - allowRefresh: !client.isPublic, - scopes: validScopes, - ); - await delegate.addToken(this, token); - - return token; - } - - /// Verifies the validity of an access token and returns an [Authorization] object. - /// - /// This method obtains an [AuthToken] for [accessToken] from [delegate] and then verifies that the token is valid. - /// If the token is valid, an [Authorization] object is returned. Otherwise, an [AuthServerException] is thrown. - Future verify( - String? accessToken, { - List? scopesRequired, - }) async { - if (accessToken == null) { - throw AuthServerException(AuthRequestError.invalidRequest, null); - } - - final t = await delegate.getToken(this, byAccessToken: accessToken); - if (t == null || t.isExpired) { - throw AuthServerException( - AuthRequestError.invalidGrant, - AuthClient(t?.clientID ?? '', null, null), - ); - } - - if (scopesRequired != null) { - if (!AuthScope.verify(scopesRequired, t.scopes)) { - throw AuthServerException( - AuthRequestError.invalidScope, - AuthClient(t.clientID, null, null), - ); - } - } - - return Authorization( - t.clientID, - t.resourceOwnerIdentifier, - this, - scopes: t.scopes, - ); - } - - /// Refreshes a valid [AuthToken] instance. - /// - /// This method refreshes an existing [AuthToken] using its [refreshToken] for a given client ID. - /// It coordinates with the instance's [delegate] to update the old token with a new access token - /// and issue/expiration dates if successful. If unsuccessful, it throws an [AuthRequestError]. - /// - /// The method performs several validation steps: - /// 1. Verifies the client ID and retrieves the corresponding [AuthClient]. - /// 2. Checks for the presence of a refresh token. - /// 3. Retrieves the existing token using the refresh token. - /// 4. Validates the client secret. - /// 5. Handles scope validation and updates: - /// - If new scopes are requested, it ensures they are subsets of existing scopes and allowed by the client. - /// - If no new scopes are requested, it verifies that existing scopes are still valid for the client. - /// - /// Parameters: - /// - [refreshToken]: The refresh token of the [AuthToken] to be refreshed. - /// - [clientID]: The ID of the client requesting the token refresh. - /// - [clientSecret]: The secret of the client requesting the token refresh. - /// - [requestedScopes]: Optional list of scopes to be applied to the refreshed token. - /// - /// Returns: - /// A [Future] that resolves to a new [AuthToken] with updated access token, issue date, and expiration date. - /// - /// Throws: - /// - [AuthServerException] with [AuthRequestError.invalidClient] if the client ID is invalid or empty. - /// - [AuthServerException] with [AuthRequestError.invalidRequest] if the refresh token is missing. - /// - [AuthServerException] with [AuthRequestError.invalidGrant] if the token is not found or doesn't match the client ID. - /// - [AuthServerException] with [AuthRequestError.invalidClient] if the client secret is invalid. - /// - [AuthServerException] with [AuthRequestError.invalidScope] if the requested scopes are invalid or not allowed. - Future refresh( - String? refreshToken, - String clientID, - String? clientSecret, { - List? requestedScopes, - }) async { - if (clientID.isEmpty) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - final client = await getClient(clientID); - if (client == null) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - if (refreshToken == null) { - throw AuthServerException(AuthRequestError.invalidRequest, client); - } - - final t = await delegate.getToken(this, byRefreshToken: refreshToken); - if (t == null || t.clientID != clientID) { - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - - if (clientSecret == null) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - if (client.hashedSecret != hashPassword(clientSecret, client.salt!)) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - var updatedScopes = t.scopes; - if ((requestedScopes?.length ?? 0) != 0) { - // If we do specify scope - for (final incomingScope in requestedScopes!) { - final hasExistingScopeOrSuperset = t.scopes!.any( - (existingScope) => incomingScope.isSubsetOrEqualTo(existingScope), - ); - - if (!hasExistingScopeOrSuperset) { - throw AuthServerException(AuthRequestError.invalidScope, client); - } - - if (!client.allowsScope(incomingScope)) { - throw AuthServerException(AuthRequestError.invalidScope, client); - } - } - - updatedScopes = requestedScopes; - } else if (client.supportsScopes) { - // Ensure we still have access to same scopes if we didn't specify any - for (final incomingScope in t.scopes!) { - if (!client.allowsScope(incomingScope)) { - throw AuthServerException(AuthRequestError.invalidScope, client); - } - } - } - - final diff = t.expirationDate!.difference(t.issueDate!); - final now = DateTime.now().toUtc(); - final newToken = AuthToken() - ..accessToken = randomStringOfLength(32) - ..issueDate = now - ..expirationDate = now.add(Duration(seconds: diff.inSeconds)).toUtc() - ..refreshToken = t.refreshToken - ..type = t.type - ..scopes = updatedScopes - ..resourceOwnerIdentifier = t.resourceOwnerIdentifier - ..clientID = t.clientID; - - await delegate.updateToken( - this, - t.accessToken, - newToken.accessToken, - newToken.issueDate, - newToken.expirationDate, - ); - - return newToken; - } - - /// Creates a one-time use authorization code for a given client ID and user credentials. - /// - /// This method is part of the OAuth 2.0 Authorization Code flow. It authenticates a user - /// with their username and password for a specific client, and if successful, generates - /// a short-lived authorization code. - /// - /// The method performs several steps: - /// 1. Validates the client ID and retrieves the client information. - /// 2. Authenticates the user with the provided username and password. - /// 3. Validates the requested scopes against the client's allowed scopes and the user's permissions. - /// 4. Generates a new authorization code. - /// 5. Stores the authorization code using the delegate. - /// - /// Parameters: - /// - [username]: The username of the resource owner (user). - /// - [password]: The password of the resource owner. - /// - [clientID]: The ID of the client requesting the authorization code. - /// - [expirationInSeconds]: The lifetime of the authorization code in seconds (default is 600 seconds or 10 minutes). - /// - [requestedScopes]: Optional list of scopes the client is requesting access to. - /// - /// Returns: - /// A [Future] that resolves to an [AuthCode] object representing the generated authorization code. - /// - /// Throws: - /// - [AuthServerException] with [AuthRequestError.invalidClient] if the client ID is invalid or empty. - /// - [AuthServerException] with [AuthRequestError.invalidRequest] if the username or password is missing. - /// - [AuthServerException] with [AuthRequestError.unauthorizedClient] if the client doesn't have a redirect URI. - /// - [AuthServerException] with [AuthRequestError.accessDenied] if the user credentials are invalid. - /// - /// The generated authorization code can later be exchanged for an access token using the `exchange` method. - Future authenticateForCode( - String? username, - String? password, - String clientID, { - int expirationInSeconds = 600, - List? requestedScopes, - }) async { - if (clientID.isEmpty) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - final client = await getClient(clientID); - if (client == null) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - if (username == null || password == null) { - throw AuthServerException(AuthRequestError.invalidRequest, client); - } - - if (client.redirectURI == null) { - throw AuthServerException(AuthRequestError.unauthorizedClient, client); - } - - final authenticatable = await delegate.getResourceOwner(this, username); - if (authenticatable == null) { - throw AuthServerException(AuthRequestError.accessDenied, client); - } - - final dbSalt = authenticatable.salt; - final dbPassword = authenticatable.hashedPassword; - if (hashPassword(password, dbSalt!) != dbPassword) { - throw AuthServerException(AuthRequestError.accessDenied, client); - } - - final validScopes = - _validatedScopes(client, authenticatable, requestedScopes); - final authCode = _generateAuthCode( - authenticatable.id, - client, - expirationInSeconds, - scopes: validScopes, - ); - await delegate.addCode(this, authCode); - return authCode; - } - - /// Exchanges a valid authorization code for an [AuthToken]. - /// - /// This method is part of the OAuth 2.0 Authorization Code flow. It allows a client - /// to exchange a previously obtained authorization code for an access token. - /// - /// The method performs several validation steps: - /// 1. Verifies the client ID and retrieves the corresponding [AuthClient]. - /// 2. Checks for the presence of the authorization code. - /// 3. Validates the client secret. - /// 4. Retrieves and validates the stored authorization code. - /// 5. Checks if the authorization code is still valid and hasn't been used. - /// 6. Ensures the client ID matches the one associated with the authorization code. - /// - /// If all validations pass, it generates a new access token and stores it using the delegate. - /// - /// Parameters: - /// - [authCodeString]: The authorization code to be exchanged. - /// - [clientID]: The ID of the client requesting the token exchange. - /// - [clientSecret]: The secret of the client requesting the token exchange. - /// - [expirationInSeconds]: The lifetime of the generated access token in seconds (default is 3600 seconds or 1 hour). - /// - /// Returns: - /// A [Future] that resolves to an [AuthToken] representing the newly created access token. - /// - /// Throws: - /// - [AuthServerException] with [AuthRequestError.invalidClient] if the client ID is invalid or empty, or if the client secret is incorrect. - /// - [AuthServerException] with [AuthRequestError.invalidRequest] if the authorization code is missing. - /// - [AuthServerException] with [AuthRequestError.invalidGrant] if the authorization code is invalid, expired, or has been used before. - /// - /// This method is crucial for completing the Authorization Code flow, allowing clients - /// to securely obtain access tokens after receiving user authorization. - Future exchange( - String? authCodeString, - String clientID, - String? clientSecret, { - int expirationInSeconds = 3600, - }) async { - if (clientID.isEmpty) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - final client = await getClient(clientID); - if (client == null) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - if (authCodeString == null) { - throw AuthServerException(AuthRequestError.invalidRequest, null); - } - - if (clientSecret == null) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - if (client.hashedSecret != hashPassword(clientSecret, client.salt!)) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - final authCode = await delegate.getCode(this, authCodeString); - if (authCode == null) { - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - - // check if valid still - if (authCode.isExpired) { - await delegate.removeCode(this, authCode.code); - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - - // check that client ids match - if (authCode.clientID != client.id) { - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - - // check to see if has already been used - if (authCode.hasBeenExchanged!) { - await delegate.removeToken(this, authCode); - - throw AuthServerException(AuthRequestError.invalidGrant, client); - } - final token = _generateToken( - authCode.resourceOwnerIdentifier, - client.id, - expirationInSeconds, - scopes: authCode.requestedScopes, - ); - await delegate.addToken(this, token, issuedFrom: authCode); - - return token; - } - - ////// - // APIDocumentable overrides - ////// - - /// Generates and registers security schemes for API documentation. - /// - /// This method is responsible for documenting the security components of the API, - /// specifically the OAuth2 client authentication and standard OAuth2 flows. - /// - /// It performs the following tasks: - /// 1. Registers a basic HTTP authentication scheme for OAuth2 client authentication. - /// 2. Creates and registers an OAuth2 security scheme with authorization code and password flows. - /// 3. Defers cleanup of unused flows based on the presence of required URLs. - /// - /// The method uses the [APIDocumentContext] to register these security schemes, - /// making them available for use in the API documentation. - /// - /// Parameters: - /// - [context]: The [APIDocumentContext] used to register security schemes and defer cleanup operations. - @override - void documentComponents(APIDocumentContext context) { - final basic = APISecurityScheme.http("basic") - ..description = - "This endpoint requires an OAuth2 Client ID and Secret as the Basic Authentication username and password. " - "If the client ID does not have a secret (public client), the password is the empty string (retain the separating colon, e.g. 'com.conduit.app:')."; - context.securitySchemes.register("oauth2-client-authentication", basic); - - final oauth2 = APISecurityScheme.oauth2({ - "authorizationCode": documentedAuthorizationCodeFlow, - "password": documentedPasswordFlow - }) - ..description = "Standard OAuth 2.0"; - - context.securitySchemes.register("oauth2", oauth2); - - context.defer(() { - if (documentedAuthorizationCodeFlow.authorizationURL == null) { - oauth2.flows!.remove("authorizationCode"); - } - - if (documentedAuthorizationCodeFlow.tokenURL == null) { - oauth2.flows!.remove("authorizationCode"); - } - - if (documentedPasswordFlow.tokenURL == null) { - oauth2.flows!.remove("password"); - } - }); - } - - ///// - // AuthValidator overrides - ///// - - /// Documents the security requirements for an [Authorizer] in the API specification. - /// - /// This method generates the appropriate [APISecurityRequirement] objects - /// based on the type of authorization parser used by the [Authorizer]. - /// - /// For basic authentication (AuthorizationBasicParser), it specifies the - /// requirement for OAuth2 client authentication. - /// - /// For bearer token authentication (AuthorizationBearerParser), it specifies - /// the requirement for OAuth2 with optional scopes. - /// - /// Parameters: - /// - [context]: The API documentation context. - /// - [authorizer]: The Authorizer instance for which to generate requirements. - /// - [scopes]: Optional list of scopes to be included in the OAuth2 requirement. - /// - /// Returns: - /// A list of [APISecurityRequirement] objects representing the security - /// requirements for the given authorizer. Returns an empty list if the - /// parser type is not recognized. - @override - List documentRequirementsForAuthorizer( - APIDocumentContext context, - Authorizer authorizer, { - List? scopes, - }) { - if (authorizer.parser is AuthorizationBasicParser) { - return [ - APISecurityRequirement({"oauth2-client-authentication": []}) - ]; - } else if (authorizer.parser is AuthorizationBearerParser) { - return [ - APISecurityRequirement( - {"oauth2": scopes?.map((s) => s.toString()).toList() ?? []}, - ) - ]; - } - - return []; - } - - /// Validates an authorization request using the specified parser and authorization data. - /// - /// This method is responsible for validating different types of authorization, - /// including client credentials (Basic) and bearer tokens. - /// - /// Parameters: - /// - [parser]: An instance of [AuthorizationParser] used to parse the authorization data. - /// - [authorizationData]: The authorization data to be validated, type depends on the parser. - /// - [requiredScope]: Optional list of [AuthScope]s required for the authorization. - /// - /// Returns: - /// A [FutureOr] representing the validated authorization. - /// - /// Throws: - /// - [ArgumentError] if an invalid parser is provided. - /// - /// The method behaves differently based on the type of parser: - /// - For [AuthorizationBasicParser], it validates client credentials. - /// - For [AuthorizationBearerParser], it verifies the bearer token. - @override - FutureOr validate( - AuthorizationParser parser, - T authorizationData, { - List? requiredScope, - }) { - if (parser is AuthorizationBasicParser) { - final credentials = authorizationData as AuthBasicCredentials; - return _validateClientCredentials(credentials); - } else if (parser is AuthorizationBearerParser) { - return verify(authorizationData as String, scopesRequired: requiredScope); - } - - throw ArgumentError( - "Invalid 'parser' for 'AuthServer.validate'. Use 'AuthorizationBasicParser' or 'AuthorizationBearerHeader'.", - ); - } - - /// Validates client credentials for OAuth 2.0 client authentication. - /// - /// This method is used to authenticate a client using its client ID and secret - /// as part of the OAuth 2.0 client authentication process. - /// - /// The method performs the following steps: - /// 1. Retrieves the client using the provided client ID (username). - /// 2. Validates the client's existence and secret. - /// 3. For public clients (no secret), it allows authentication with an empty password. - /// 4. For confidential clients, it verifies the provided password against the stored hashed secret. - /// - /// Parameters: - /// - [credentials]: An [AuthBasicCredentials] object containing the client ID (username) and secret (password). - /// - /// Returns: - /// A [Future] representing the authenticated client. - /// - /// Throws: - /// - [AuthServerException] with [AuthRequestError.invalidClient] if: - /// - The client is not found. - /// - A public client provides a non-empty password. - /// - A confidential client provides an incorrect secret. - /// - /// This method is typically used in the context of the client credentials grant type - /// or when a client needs to authenticate itself for other OAuth 2.0 flows. - Future _validateClientCredentials( - AuthBasicCredentials credentials, - ) async { - final username = credentials.username; - final password = credentials.password; - - final client = await getClient(username); - - if (client == null) { - throw AuthServerException(AuthRequestError.invalidClient, null); - } - - if (client.hashedSecret == null) { - if (password == "") { - return Authorization(client.id, null, this, credentials: credentials); - } - - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - if (client.hashedSecret != hashPassword(password, client.salt!)) { - throw AuthServerException(AuthRequestError.invalidClient, client); - } - - return Authorization(client.id, null, this, credentials: credentials); - } - - /// Validates and filters the requested scopes for a client and resource owner. - /// - /// This method checks the requested scopes against the client's allowed scopes - /// and the resource owner's permitted scopes. It ensures that only valid and - /// authorized scopes are granted. - /// - /// Parameters: - /// - [client]: The [AuthClient] requesting the scopes. - /// - [authenticatable]: The [ResourceOwner] being authenticated. - /// - [requestedScopes]: The list of [AuthScope]s requested by the client. - /// - /// Returns: - /// A list of validated [AuthScope]s that are allowed for both the client and - /// the resource owner. Returns null if the client doesn't support scopes. - /// - /// Throws: - /// - [AuthServerException] with [AuthRequestError.invalidScope] if: - /// - The client supports scopes but no scopes are requested. - /// - None of the requested scopes are allowed for the client. - /// - The filtered scopes are not allowed for the resource owner. - /// - /// This method is crucial for maintaining the principle of least privilege - /// in OAuth 2.0 flows by ensuring that tokens are issued with appropriate scopes. - List? _validatedScopes( - AuthClient client, - ResourceOwner authenticatable, - List? requestedScopes, - ) { - List? validScopes; - if (client.supportsScopes) { - if ((requestedScopes?.length ?? 0) == 0) { - throw AuthServerException(AuthRequestError.invalidScope, client); - } - - validScopes = requestedScopes! - .where((incomingScope) => client.allowsScope(incomingScope)) - .toList(); - - if (validScopes.isEmpty) { - throw AuthServerException(AuthRequestError.invalidScope, client); - } - - final validScopesForAuthenticatable = - delegate.getAllowedScopes(authenticatable); - if (!identical(validScopesForAuthenticatable, AuthScope.any)) { - validScopes.retainWhere( - (clientAllowedScope) => validScopesForAuthenticatable!.any( - (userScope) => clientAllowedScope.isSubsetOrEqualTo(userScope), - ), - ); - - if (validScopes.isEmpty) { - throw AuthServerException(AuthRequestError.invalidScope, client); - } - } - } - - return validScopes; - } - - /// Generates a new [AuthToken] with the specified parameters. - /// - /// This method creates and initializes a new [AuthToken] object with the given - /// owner ID, client ID, and expiration time. It also sets other properties such - /// as the access token, issue date, token type, and optional refresh token. - /// - /// Parameters: - /// - [ownerID]: The identifier of the resource owner (user). - /// - [clientID]: The identifier of the client application. - /// - [expirationInSeconds]: The number of seconds until the token expires. - /// - [allowRefresh]: Whether to generate a refresh token (default is true). - /// - [scopes]: Optional list of scopes associated with the token. - /// - /// Returns: - /// A new [AuthToken] instance with all properties set according to the input parameters. - /// - /// The access token and refresh token (if allowed) are generated as random strings. - /// The token type is set to "bearer" as defined by [tokenTypeBearer]. - AuthToken _generateToken( - int? ownerID, - String clientID, - int expirationInSeconds, { - bool allowRefresh = true, - List? scopes, - }) { - final now = DateTime.now().toUtc(); - final token = AuthToken() - ..accessToken = randomStringOfLength(32) - ..issueDate = now - ..expirationDate = now.add(Duration(seconds: expirationInSeconds)) - ..type = tokenTypeBearer - ..resourceOwnerIdentifier = ownerID - ..scopes = scopes - ..clientID = clientID; - - if (allowRefresh) { - token.refreshToken = randomStringOfLength(32); - } - - return token; - } - - /// Generates a new [AuthCode] with the specified parameters. - /// - /// This method creates and initializes a new [AuthCode] object with the given - /// owner ID, client, and expiration time. It also sets other properties such - /// as the authorization code, issue date, and optional scopes. - /// - /// Parameters: - /// - [ownerID]: The identifier of the resource owner (user). - /// - [client]: The [AuthClient] for which the auth code is being generated. - /// - [expirationInSeconds]: The number of seconds until the auth code expires. - /// - [scopes]: Optional list of scopes associated with the auth code. - /// - /// Returns: - /// A new [AuthCode] instance with all properties set according to the input parameters. - /// - /// The authorization code is generated as a random string of 32 characters. - /// The issue date is set to the current UTC time, and the expiration date is - /// calculated based on the [expirationInSeconds] parameter. - AuthCode _generateAuthCode( - int? ownerID, - AuthClient client, - int expirationInSeconds, { - List? scopes, - }) { - final now = DateTime.now().toUtc(); - return AuthCode() - ..code = randomStringOfLength(32) - ..clientID = client.id - ..resourceOwnerIdentifier = ownerID - ..issueDate = now - ..requestedScopes = scopes - ..expirationDate = now.add(Duration(seconds: expirationInSeconds)); - } -} - -/// Generates a random string of specified length. -/// -/// This function creates a random string using a combination of uppercase letters, -/// lowercase letters, and digits. It uses a cryptographically secure random number -/// generator to ensure unpredictability. -/// -/// The function works by repeatedly selecting random characters from a predefined -/// set of possible characters and appending them to a string buffer. The selection -/// process uses the modulo operation to ensure an even distribution across the -/// character set. -/// -/// Returns: -/// A string of the specified [length] containing random characters. -String randomStringOfLength(int length) { - const possibleCharacters = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - final buff = StringBuffer(); - - final r = Random.secure(); - for (int i = 0; i < length; i++) { - buff.write( - possibleCharacters[r.nextInt(1000) % possibleCharacters.length], - ); - } - - return buff.toString(); -} diff --git a/packages/auth/lib/src/authorizer.dart b/packages/auth/lib/src/authorizer.dart deleted file mode 100644 index 832a3dc..0000000 --- a/packages/auth/lib/src/authorizer.dart +++ /dev/null @@ -1,374 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// A [Controller] that validates the Authorization header of a request. -/// -/// This class, Authorizer, is responsible for authenticating and authorizing incoming HTTP requests. -/// It validates the Authorization header, processes it according to the specified parser (e.g., Bearer or Basic), -/// and then uses the provided validator to check the credentials. -/// -/// For each request, this controller parses the authorization header, validates it with an [AuthValidator] and then create an [Authorization] object -/// if successful. The [Request] keeps a reference to this [Authorization] and is then sent to the next controller in the channel. -/// -/// If either parsing or validation fails, a 401 Unauthorized response is sent and the [Request] is removed from the channel. -/// -/// Parsing occurs according to [parser]. The resulting value (e.g., username and password) is sent to [validator]. -/// [validator] verifies this value (e.g., lookup a user in the database and verify their password matches). -/// -/// Usage: -/// -/// router -/// .route("/protected-route") -/// .link(() =>new Authorizer.bearer(authServer)) -/// .link(() => new ProtectedResourceController()); -class Authorizer extends Controller { - /// Creates an instance of [Authorizer]. - /// - /// This constructor allows for creating an [Authorizer] with custom configurations. - /// - /// By default, this instance will parse bearer tokens from the authorization header, e.g.: - /// - /// Authorization: Bearer ap9ijlarlkz8jIOa9laweo - /// - /// If [scopes] is provided, the authorization granted must have access to *all* scopes according to [validator]. - Authorizer( - this.validator, { - this.parser = const AuthorizationBearerParser(), - List? scopes, - }) : scopes = scopes?.map((s) => AuthScope(s)).toList(); - - /// Creates an instance of [Authorizer] with Basic Authentication parsing. - /// - /// This constructor initializes an [Authorizer] that uses Basic Authentication. - /// It sets up the [Authorizer] to parse the Authorization header of incoming requests - /// using the [AuthorizationBasicParser]. - /// - /// The Authorization header for Basic Authentication should be in the format: - /// - /// Authorization: Basic base64(username:password) - Authorizer.basic(AuthValidator? validator) - : this(validator, parser: const AuthorizationBasicParser()); - - /// Creates an instance of [Authorizer] with Bearer token parsing. - /// - /// This constructor initializes an [Authorizer] that uses Bearer token authentication. - /// It sets up the [Authorizer] to parse the Authorization header of incoming requests - /// using the [AuthorizationBearerParser]. - /// - /// Authorization: Bearer ap9ijlarlkz8jIOa9laweo - /// - /// If [scopes] is provided, the bearer token must have access to *all* scopes according to [validator]. - Authorizer.bearer(AuthValidator? validator, {List? scopes}) - : this( - validator, - parser: const AuthorizationBearerParser(), - scopes: scopes, - ); - - /// The validating authorization object. - /// - /// This property holds an instance of [AuthValidator] responsible for validating - /// the credentials parsed from the Authorization header. It processes these - /// credentials and produces an [Authorization] object that represents the - /// authorization level of the provided credentials. - /// - /// The validator can also reject a request if the credentials are invalid or - /// insufficient. This property is typically set to an instance of [AuthServer]. - /// - /// The validator is crucial for determining whether a request should be allowed - /// to proceed based on the provided authorization information. - final AuthValidator? validator; - - /// The list of required scopes for authorization. - /// - /// If [validator] grants scope-limited authorizations (e.g., OAuth2 bearer tokens), the authorization - /// provided by the request's header must have access to all [scopes] in order to move on to the next controller. - /// - /// This property is set with a list of scope strings in a constructor. Each scope string is parsed into - /// an [AuthScope] and added to this list. - final List? scopes; - - /// Parses the Authorization header of incoming requests. - /// - /// The parser determines how to interpret the data in the Authorization header. Concrete subclasses - /// are [AuthorizationBasicParser] and [AuthorizationBearerParser]. - /// - /// Once parsed, the parsed value is validated by [validator]. - final AuthorizationParser parser; - - /// Handles the incoming request by validating its authorization. - /// - /// This method performs the following steps: - /// 1. Extracts the Authorization header from the request. - /// 2. If the header is missing, returns an unauthorized response. - /// 3. Attempts to parse the authorization data using the configured parser. - /// 4. Validates the parsed data using the configured validator. - /// 5. If validation succeeds, adds the authorization to the request and proceeds. - /// 6. If validation fails due to insufficient scope, returns a forbidden response. - /// 7. For other validation failures, returns an unauthorized response. - /// 8. Handles parsing exceptions by returning appropriate error responses. - /// - /// @param request The incoming HTTP request to be authorized. - /// @return A [Future] that resolves to either the authorized [Request] or an error [Response]. - @override - FutureOr handle(Request request) async { - final authData = request.raw.headers.value(HttpHeaders.authorizationHeader); - if (authData == null) { - return Response.unauthorized(); - } - - try { - final value = parser.parse(authData); - request.authorization = - await validator!.validate(parser, value, requiredScope: scopes); - if (request.authorization == null) { - return Response.unauthorized(); - } - - _addScopeRequirementModifier(request); - } on AuthorizationParserException catch (e) { - return _responseFromParseException(e); - } on AuthServerException catch (e) { - if (e.reason == AuthRequestError.invalidScope) { - return Response.forbidden( - body: { - "error": "insufficient_scope", - "scope": scopes!.map((s) => s.toString()).join(" ") - }, - ); - } - - return Response.unauthorized(); - } - - return request; - } - - /// Generates an appropriate HTTP response based on the type of AuthorizationParserException. - /// - /// This method takes an [AuthorizationParserException] as input and returns - /// a [Response] object based on the exception's reason: - /// - /// - For [AuthorizationParserExceptionReason.malformed], it returns a 400 Bad Request - /// response with a body indicating an invalid authorization header. - /// - For [AuthorizationParserExceptionReason.missing], it returns a 401 Unauthorized - /// response. - /// - For any other reason, it returns a 500 Server Error response. - /// - /// @param e The AuthorizationParserException that occurred during parsing. - /// @return A Response object appropriate to the exception reason. - Response _responseFromParseException(AuthorizationParserException e) { - switch (e.reason) { - case AuthorizationParserExceptionReason.malformed: - return Response.badRequest( - body: {"error": "invalid_authorization_header"}, - ); - case AuthorizationParserExceptionReason.missing: - return Response.unauthorized(); - default: - return Response.serverError(); - } - } - - /// Adds a response modifier to the request to handle scope requirements. - /// - /// This method is called after successful authorization and adds a response - /// modifier to the request. The modifier's purpose is to enhance 403 (Forbidden) - /// responses that are due to insufficient scope. - /// - /// If this [Authorizer] has required scopes and the response is a 403 with a body - /// containing a "scope" key, this modifier will add any of this [Authorizer]'s - /// required scopes that aren't already present in the response body's scope list. - /// - /// This ensures that if a downstream controller returns a 403 due to insufficient - /// scope, the response includes all the scopes required by both this [Authorizer] - /// and the downstream controller. - /// - /// @param request The [Request] object to which the modifier will be added. - void _addScopeRequirementModifier(Request request) { - // If a controller returns a 403 because of invalid scope, - // this Authorizer adds its required scope as well. - if (scopes != null) { - request.addResponseModifier((resp) { - if (resp.statusCode == 403 && resp.body is Map) { - final body = resp.body as Map; - if (body.containsKey("scope")) { - final declaredScopes = (body["scope"] as String).split(" "); - final scopesToAdd = scopes! - .map((s) => s.toString()) - .where((s) => !declaredScopes.contains(s)); - body["scope"] = - [scopesToAdd, declaredScopes].expand((i) => i).join(" "); - } - } - }); - } - } - - /// Documents the components for the API documentation. - /// - /// This method is responsible for registering custom API responses that are specific - /// to authorization-related errors. It adds three responses to the API documentation: - /// - /// 1. "InsufficientScope": Used when the provided credentials or bearer token have - /// insufficient permissions to access a route. - /// - /// 2. "InsufficientAccess": Used when the provided credentials or bearer token are - /// not authorized for a specific request. - /// - /// 3. "MalformedAuthorizationHeader": Used when the provided Authorization header - /// is malformed. - /// - /// Each response is registered with a description and a schema defining the - /// structure of the JSON response body. - /// - /// @param context The APIDocumentContext used to register the responses. - @override - void documentComponents(APIDocumentContext context) { - /// Calls the superclass's documentComponents method. - /// - /// This method invokes the documentComponents method of the superclass, - /// ensuring that any component documentation defined in the parent class - /// is properly registered in the API documentation context. - /// - /// @param context The APIDocumentContext used for registering API components. - super.documentComponents(context); - - /// Registers an "InsufficientScope" response in the API documentation. - /// - /// This response is used when the provided credentials or bearer token - /// have insufficient permissions to access a specific route. It includes - /// details about the error and the required scope for the operation. - /// - /// The response has the following structure: - /// - A description explaining the insufficient scope error. - /// - Content of type "application/json" with a schema containing: - /// - An "error" field of type string. - /// - A "scope" field of type string, describing the required scope. - /// - /// This response can be referenced in API operations to standardize - /// the documentation of insufficient scope errors. - context.responses.register( - "InsufficientScope", - APIResponse( - "The provided credentials or bearer token have insufficient permission to access this route.", - content: { - "application/json": APIMediaType( - schema: APISchemaObject.object({ - "error": APISchemaObject.string(), - "scope": APISchemaObject.string() - ..description = "The required scope for this operation." - }), - ) - }, - ), - ); - - /// Registers an "InsufficientAccess" response in the API documentation. - /// - /// This response is used when the provided credentials or bearer token - /// are not authorized for a specific request. It includes details about - /// the error in a JSON format. - /// - /// The response has the following structure: - /// - A description explaining the insufficient access error. - /// - Content of type "application/json" with a schema containing: - /// - An "error" field of type string. - /// - /// This response can be referenced in API operations to standardize - /// the documentation of insufficient access errors. - context.responses.register( - "InsufficientAccess", - APIResponse( - "The provided credentials or bearer token are not authorized for this request.", - content: { - "application/json": APIMediaType( - schema: APISchemaObject.object( - {"error": APISchemaObject.string()}, - ), - ) - }, - ), - ); - - /// Registers a "MalformedAuthorizationHeader" response in the API documentation. - /// - /// This response is used when the provided Authorization header is malformed. - /// It includes details about the error in a JSON format. - /// - /// The response has the following structure: - /// - A description explaining the malformed authorization header error. - /// - Content of type "application/json" with a schema containing: - /// - An "error" field of type string. - /// - /// This response can be referenced in API operations to standardize - /// the documentation of malformed authorization header errors. - context.responses.register( - "MalformedAuthorizationHeader", - APIResponse( - "The provided Authorization header was malformed.", - content: { - "application/json": APIMediaType( - schema: APISchemaObject.object( - {"error": APISchemaObject.string()}, - ), - ) - }, - ), - ); - } - - /// Documents the operations for the API documentation. - /// - /// This method is responsible for adding security-related responses and requirements - /// to each operation in the API documentation. It performs the following tasks: - /// - /// 1. Calls the superclass's documentOperations method to get the base operations. - /// 2. For each operation: - /// - Adds a 400 response for malformed authorization headers. - /// - Adds a 401 response for insufficient access. - /// - Adds a 403 response for insufficient scope. - /// - Retrieves security requirements from the validator. - /// - Adds these security requirements to the operation. - /// - /// @param context The APIDocumentContext used for documenting the API. - /// @param route The route string for which operations are being documented. - /// @param path The APIPath object representing the path of the operations. - /// @return A map of operation names to APIOperation objects with added security documentation. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - final operations = super.documentOperations(context, route, path); - - operations.forEach((_, op) { - op.addResponse(400, context.responses["MalformedAuthorizationHeader"]); - op.addResponse(401, context.responses["InsufficientAccess"]); - op.addResponse(403, context.responses["InsufficientScope"]); - - final requirements = validator! - .documentRequirementsForAuthorizer(context, this, scopes: scopes); - for (final req in requirements) { - op.addSecurityRequirement(req); - } - }); - - return operations; - } -} diff --git a/packages/auth/lib/src/exceptions.dart b/packages/auth/lib/src/exceptions.dart deleted file mode 100644 index 40168b0..0000000 --- a/packages/auth/lib/src/exceptions.dart +++ /dev/null @@ -1,242 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_auth/auth.dart'; - -/// An exception class for handling authentication server errors. -/// -/// This class implements the [Exception] interface and is used to represent -/// various errors that can occur during the authentication process. -/// -/// The [AuthServerException] contains: -/// - [reason]: An [AuthRequestError] enum value representing the specific error. -/// - [client]: An optional [AuthClient] associated with the error. -/// -/// It also provides utility methods: -/// - [errorString]: A static method that converts [AuthRequestError] enum values to standardized error strings. -/// - [reasonString]: A getter that returns the error string for the current [reason]. -/// -/// The [toString] method is overridden to provide a custom string representation of the exception. -class AuthServerException implements Exception { - /// Creates an [AuthServerException] with the specified [reason] and optional [client]. - /// - /// The [reason] parameter is an [AuthRequestError] enum value representing the specific error. - /// The [client] parameter is an optional [AuthClient] associated with the error. - /// - /// Example: - /// ```dart - /// var exception = AuthServerException(AuthRequestError.invalidRequest, null); - /// ``` - AuthServerException(this.reason, this.client); - - /// Converts an [AuthRequestError] enum value to its corresponding string representation. - /// - /// This static method takes an [AuthRequestError] as input and returns a standardized - /// string that represents the error. These strings are suitable for inclusion in - /// query strings or JSON response bodies when indicating errors during the processing - /// of OAuth 2.0 requests. - /// - /// The returned strings conform to the error codes defined in the OAuth 2.0 specification, - /// with the exception of 'invalid_token', which is a custom addition. - /// - /// Example: - /// ```dart - /// var errorString = AuthServerException.errorString(AuthRequestError.invalidRequest); - /// print(errorString); // Outputs: "invalid_request" - /// ``` - /// - /// @param error The [AuthRequestError] enum value to convert. - /// @return A string representation of the error. - static String errorString(AuthRequestError error) { - switch (error) { - case AuthRequestError.invalidRequest: - return "invalid_request"; - case AuthRequestError.invalidClient: - return "invalid_client"; - case AuthRequestError.invalidGrant: - return "invalid_grant"; - case AuthRequestError.invalidScope: - return "invalid_scope"; - case AuthRequestError.invalidToken: - return "invalid_token"; - - case AuthRequestError.unsupportedGrantType: - return "unsupported_grant_type"; - case AuthRequestError.unsupportedResponseType: - return "unsupported_response_type"; - - case AuthRequestError.unauthorizedClient: - return "unauthorized_client"; - case AuthRequestError.accessDenied: - return "access_denied"; - - case AuthRequestError.serverError: - return "server_error"; - case AuthRequestError.temporarilyUnavailable: - return "temporarily_unavailable"; - } - } - - /// The specific reason for the authentication error. - /// - /// This property holds an [AuthRequestError] enum value that represents - /// the specific error that occurred during the authentication process. - /// It provides detailed information about why the authentication request failed. - AuthRequestError reason; - - /// The optional [AuthClient] associated with this exception. - /// - /// This property may contain an [AuthClient] instance that is related to the - /// authentication error. It can be null if no specific client is associated - /// with the error or if the error occurred before client authentication. - /// - /// This information can be useful for debugging or logging purposes, providing - /// context about which client encountered the authentication error. - AuthClient? client; - - /// Returns a string representation of the [reason] for this exception. - /// - /// This getter utilizes the static [errorString] method to convert the - /// [AuthRequestError] enum value stored in [reason] to its corresponding - /// string representation. - /// - /// @return A standardized string representation of the error reason. - String get reasonString { - return errorString(reason); - } - - /// Returns a string representation of the [AuthServerException]. - /// - /// This method overrides the default [Object.toString] method to provide - /// a custom string representation of the exception. The returned string - /// includes the exception class name, the [reason] for the exception, - /// and the associated [client] (if any). - /// - /// @return A string in the format "AuthServerException: [reason] [client]". - @override - String toString() { - return "AuthServerException: $reason $client"; - } -} - -/// Enum representing possible errors as defined by the OAuth 2.0 specification. -/// -/// Auth endpoints will use this list of values to determine the response sent back -/// to a client upon a failed request. -enum AuthRequestError { - /// Represents an invalid request error. - /// - /// The request is missing a required parameter, includes an - /// unsupported parameter value (other than grant type), - /// repeats a parameter, includes multiple credentials, - /// utilizes more than one mechanism for authenticating the - /// client, or is otherwise malformed. - invalidRequest, - - /// Represents an invalid client error. - /// - /// Client authentication failed (e.g., unknown client, no - /// client authentication included, or unsupported - /// authentication method). The authorization server MAY - /// return an HTTP 401 (Unauthorized) status code to indicate - /// which HTTP authentication schemes are supported. If the - /// client attempted to authenticate via the "Authorization" - /// request header field, the authorization server MUST - /// respond with an HTTP 401 (Unauthorized) status code and - /// include the "WWW-Authenticate" response header field - /// matching the authentication scheme used by the client. - invalidClient, - - /// Represents an invalid grant error. - /// - /// The provided authorization grant (e.g., authorization - /// code, resource owner credentials) or refresh token is - /// invalid, expired, revoked, does not match the redirection - /// URI used in the authorization request, or was issued to - /// another client. - invalidGrant, - - /// Represents an invalid scope error. - /// - /// This error occurs when the requested scope is invalid, unknown, malformed, - /// or exceeds the scope granted by the resource owner. It typically indicates - /// that the client has requested access to resources or permissions that are - /// either not recognized by the authorization server or not authorized for - /// the particular client or user. - /// - /// In the OAuth 2.0 flow, this error might be returned if a client requests - /// access to a scope that doesn't exist or that the user hasn't granted - /// permission for. - invalidScope, - - /// Represents an unsupported grant type error. - /// - /// This error occurs when the authorization server does not support the - /// grant type requested by the client. It typically indicates that the - /// client has specified a grant type that is either not recognized or - /// not implemented by the authorization server. - /// - /// In the OAuth 2.0 flow, this error might be returned if, for example, - /// a client requests a grant type like "password" when the server only - /// supports "authorization_code" and "refresh_token" grant types. - unsupportedGrantType, - - /// Represents an unsupported response type error. - /// - /// This error occurs when the authorization server does not support obtaining - /// an authorization code using the specified response type. It typically - /// indicates that the client has requested a response type that is not - /// recognized or not implemented by the authorization server. - unsupportedResponseType, - - /// Represents an unauthorized client error. - /// - /// This error occurs when the client is not authorized to request an - /// authorization code using this method. It typically indicates that - /// the client does not have the necessary permissions or credentials - /// to perform the requested action, even though it may be properly - /// authenticated. - unauthorizedClient, - - /// Represents an access denied error. - /// - /// This error occurs when the resource owner or authorization server denies the request. - /// It is typically used when the authenticated user does not have sufficient permissions - /// to perform the requested action, or when the user explicitly denies authorization - /// during the OAuth flow. - accessDenied, - - /// Represents a server error. - /// - /// This error occurs when the authorization server encounters an unexpected - /// condition that prevented it from fulfilling the request. This is typically - /// used for internal server errors or other unexpected issues that prevent - /// the server from properly processing the authentication request. - serverError, - - /// Represents a temporarily unavailable error. - /// - /// This error occurs when the authorization server is temporarily unable to handle - /// the request due to a temporary overloading or maintenance of the server. - /// The client may repeat the request at a later time. The server SHOULD include - /// a Retry-After HTTP header field in the response indicating how long the client - /// should wait before retrying the request. - temporarilyUnavailable, - - /// Represents an invalid token error. - /// - /// This error occurs when the provided token is invalid, expired, or otherwise - /// not acceptable for the requested operation. It is typically used when a client - /// presents an access token that cannot be validated or is no longer valid. - /// - /// Note: This particular error reason is not part of the standard OAuth 2.0 - /// specification. It is a custom addition to handle scenarios specific to - /// token validation that are not covered by other standard error types. - invalidToken -} diff --git a/packages/auth/lib/src/objects.dart b/packages/auth/lib/src/objects.dart deleted file mode 100644 index 74ab98a..0000000 --- a/packages/auth/lib/src/objects.dart +++ /dev/null @@ -1,1044 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; - -/// Represents an OAuth 2.0 client ID and secret pair. -/// -/// This class encapsulates the information necessary for OAuth 2.0 client authentication. -/// It can represent both public and confidential clients, with support for the authorization code grant flow. -/// -/// Use the command line tool `conduit auth` to create instances of this type and store them to a database. -class AuthClient { - /// Creates an instance of [AuthClient]. - /// - /// This constructor creates an [AuthClient] with the given parameters. - /// - /// If this client supports scopes, [allowedScopes] must contain a list of scopes that tokens may request when authorized - /// by this client. - /// - /// NOTE: [id] must not be null. [hashedSecret] and [salt] must either both be null or both be valid values. If [hashedSecret] and [salt] - /// are valid values, this client is a confidential client. Otherwise, the client is public. The terms 'confidential' and 'public' - /// are described by the OAuth 2.0 specification. - AuthClient( - String id, - String? hashedSecret, - String? salt, { - List? allowedScopes, - }) : this.withRedirectURI( - id, - hashedSecret, - salt, - null, - allowedScopes: allowedScopes, - ); - - /// Creates an instance of a public [AuthClient]. - /// - /// This constructor creates a public [AuthClient] with the given [id]. - /// Public clients do not have a client secret. - /// - /// - [id]: The unique identifier for the client. - /// - [allowedScopes]: Optional list of scopes that this client is allowed to request. - /// - [redirectURI]: Optional URI to redirect to after authorization. - /// - /// This is equivalent to calling [AuthClient.withRedirectURI] with null values for - /// hashedSecret and salt. - AuthClient.public(String id, - {List? allowedScopes, String? redirectURI}) - : this.withRedirectURI( - id, - null, - null, - redirectURI, - allowedScopes: allowedScopes, - ); - - /// Creates an instance of [AuthClient] that uses the authorization code grant flow. - /// - /// This constructor creates a confidential [AuthClient] with the given parameters. - /// - /// - [id]: The unique identifier for the client. - /// - [hashedSecret]: The hashed secret of the client. - /// - [salt]: The salt used to hash the client secret. - /// - [redirectURI]: The URI to redirect to after authorization. - /// - [allowedScopes]: Optional list of scopes that this client is allowed to request. - /// - /// This constructor is specifically for clients that use the authorization code grant flow, - /// which requires a redirect URI. All parameters except [allowedScopes] must be non-null. - /// The presence of [hashedSecret] and [salt] indicates that this is a confidential client. - AuthClient.withRedirectURI( - this.id, - this.hashedSecret, - this.salt, - this.redirectURI, { - List? allowedScopes, - }) { - this.allowedScopes = allowedScopes; - } - - /// The list of allowed scopes for this client. - /// - /// This private variable stores the allowed scopes for the AuthClient. - /// It is used internally to manage and validate the scopes that this client - /// is authorized to request during the authentication process. - List? _allowedScopes; - - /// The unique identifier for this OAuth 2.0 client. - /// - /// This is a required field for all OAuth 2.0 clients and is used to identify - /// the client during the authentication and authorization process. It should - /// be a string value that is unique among all clients registered with the - /// authorization server. - final String id; - - /// The hashed secret of the client. - /// - /// This property stores the hashed version of the client's secret, which is used for authentication - /// in confidential clients. The secret is hashed for security reasons, to avoid storing the raw secret. - /// - /// This value may be null if the client is public. A null value indicates that this is a public client, - /// which doesn't use a client secret for authentication. See [isPublic] for more information on - /// determining if a client is public or confidential. - /// - /// The hashed secret is typically used in conjunction with the [salt] property to verify - /// the client's credentials during the authentication process. - String? hashedSecret; - - /// The salt used to hash the client secret. - /// - /// This value may be null if the client is public. See [isPublic]. - String? salt; - - /// The redirection URI for authorization codes and/or tokens. - /// - /// This property stores the URI where the authorization server should redirect - /// the user after they grant or deny permission to the client. It is used in - /// the authorization code grant flow of OAuth 2.0. - /// - /// In the context of OAuth 2.0: - /// - For authorization code grant, this URI is where the authorization code is sent. - /// - For implicit grant, this URI is where the access token is sent. - /// - /// This value may be null if the client doesn't support the authorization code flow. - String? redirectURI; - - /// The list of scopes available when authorizing with this client. - /// - /// This getter returns the list of allowed scopes for the client. The setter - /// filters the provided list to remove any redundant scopes. - /// - /// Scoping is determined by this instance; i.e. the authorizing client determines which scopes a token - /// has. This list contains all valid scopes for this client. If null, client does not support scopes - /// and all access tokens have same authorization. - List? get allowedScopes => _allowedScopes; - set allowedScopes(List? scopes) { - _allowedScopes = scopes?.where((s) { - return !scopes.any( - (otherScope) => - s.isSubsetOrEqualTo(otherScope) && !s.isExactlyScope(otherScope), - ); - }).toList(); - } - - /// Determines if this instance supports authorization scopes. - /// - /// In application's that do not use authorization scopes, this will return false. - /// Otherwise, will return true. - bool get supportsScopes => allowedScopes != null; - - /// Determines if this client can issue tokens for the provided [scope]. - /// - /// This method checks if the given [scope] is allowed for this client by comparing it - /// against the client's [allowedScopes]. It returns true if the provided [scope] is - /// a subset of or equal to any of the scopes in [allowedScopes]. - /// - /// If [allowedScopes] is null or empty, this method returns false, indicating that - /// no scopes are allowed for this client. - /// - /// [scope]: The AuthScope to check against this client's allowed scopes. - /// - /// Returns true if the scope is allowed, false otherwise. - bool allowsScope(AuthScope scope) { - return allowedScopes - ?.any((clientScope) => scope.isSubsetOrEqualTo(clientScope)) ?? - false; - } - - /// Whether or not this is a public client. - /// - /// Public clients do not have a client secret and are used for clients that can't store - /// their secret confidentially, i.e. JavaScript browser applications. - bool get isPublic => hashedSecret == null; - - /// Determines whether this client is confidential or public. - /// - /// Confidential clients have a client secret that must be used when authenticating with - /// a client-authenticated request. Confidential clients are used when you can - /// be sure that the client secret cannot be viewed by anyone outside of the developer. - bool get isConfidential => hashedSecret != null; - - /// Returns a string representation of the AuthClient instance. - /// - /// This method provides a human-readable description of the AuthClient, including: - /// - Whether the client is public or confidential - /// - The client's ID - /// - The client's redirect URI (if set) - /// - /// The format of the returned string is: - /// "AuthClient (public/confidential): [client_id] [redirect_uri]" - /// - /// @return A string representation of the AuthClient. - @override - String toString() { - return "AuthClient (${isPublic ? "public" : "confidental"}): $id $redirectURI"; - } -} - -/// Represents an OAuth 2.0 token. -/// -/// This class encapsulates the properties and functionality of an OAuth 2.0 token, -/// including access token, refresh token, expiration details, and associated scopes. -/// It is used by [AuthServerDelegate] and [AuthServer] to exchange OAuth 2.0 tokens. -/// -/// See the `package:conduit_core/managed_auth` library for a concrete implementation of this type. -class AuthToken { - /// The access token string for OAuth 2.0 authentication. - /// - /// This token is used in the Authorization header of HTTP requests to authenticate - /// the client. It should be included in the header as "Bearer ". - /// - /// The access token is typically a short-lived credential that grants access to - /// protected resources on behalf of the resource owner (user). - /// - /// This value may be null if the token has not been issued or has been invalidated. - String? accessToken; - - /// The refresh token associated with this OAuth 2.0 token. - /// - /// A refresh token is a credential that can be used to obtain a new access token - /// when the current access token becomes invalid or expires. This allows the client - /// to obtain continued access to protected resources without requiring the resource - /// owner to re-authorize the application. - /// - /// This value may be null if the authorization server does not issue refresh tokens - /// or if the token has not been issued with a refresh token. - String? refreshToken; - - /// The time this token was issued on. - /// - /// This property represents the date and time when the OAuth 2.0 token was originally issued. - /// It can be used to calculate the age of the token or to implement token refresh policies. - /// The value is stored as a [DateTime] object, which allows for easy manipulation and comparison. - /// - /// This value may be null if the issue date is not tracked or has not been set. - DateTime? issueDate; - - /// The expiration date and time of this token. - /// - /// This property represents the point in time when the OAuth 2.0 token will become invalid. - /// After this date and time, the token should no longer be accepted for authentication. - /// - /// The value is stored as a [DateTime] object, which allows for easy comparison with the current time - /// to determine if the token has expired. This is typically used in conjunction with [issueDate] - /// to calculate the token's lifespan and manage token refresh cycles. - /// - /// This value may be null if the token does not have an expiration date or if it has not been set. - DateTime? expirationDate; - - /// The type of token used for authentication. - /// - /// This property specifies the type of token being used. In the OAuth 2.0 framework, - /// the most common token type is 'bearer'. The token type is typically used in the - /// HTTP Authorization header to indicate how the access token should be used. - /// - /// Currently, only 'bearer' is considered valid for this implementation. - /// - /// Example usage in an HTTP header: - /// Authorization: Bearer - /// - /// This value may be null if the token type has not been set or is unknown. - String? type; - - /// The identifier of the resource owner. - /// - /// Tokens are owned by a resource owner, typically a User, Profile or Account - /// in an application. This value is the primary key or identifying value of those - /// instances. - /// - /// This property represents the unique identifier of the resource owner associated - /// with the OAuth 2.0 token. It is typically used to link the token to a specific - /// user or account in the system. - /// - /// The value is stored as an integer, which could be: - /// - A database primary key - /// - A unique user ID - /// - Any other numeric identifier that uniquely identifies the resource owner - /// - /// This property may be null if the token is not associated with a specific - /// resource owner or if the association has not been established. - int? resourceOwnerIdentifier; - - /// The client ID associated with this token. - /// - /// This property represents the unique identifier of the OAuth 2.0 client - /// that was used to obtain this token. It is used to link the token back - /// to the client application that requested it. - /// - /// The client ID is typically assigned by the authorization server when - /// the client application is registered, and it's used to identify the - /// client during the authentication and token issuance process. - late String clientID; - - /// The list of authorization scopes associated with this token. - /// - /// This property represents the set of permissions or access rights granted to this token. - /// Each [AuthScope] in the list defines a specific area of access or functionality - /// that the token holder is allowed to use. - /// - /// The scopes determine what actions or resources the token can access within the system. - /// If this list is null, it typically means the token has no specific scope restrictions - /// and may have full access (depending on the system's implementation). - /// - /// This property is crucial for implementing fine-grained access control in OAuth 2.0 - /// systems, allowing for precise definition of what each token is allowed to do. - List? scopes; - - /// Determines whether this token has expired. - /// - /// This getter compares the token's [expirationDate] with the current UTC time - /// to determine if the token has expired. It returns true if the token has - /// expired, and false if it is still valid. - /// - /// The comparison is done by calculating the difference in seconds between - /// the expiration date and the current time. If this difference is less than - /// or equal to zero, the token is considered expired. - /// - /// Returns: - /// [bool]: true if the token has expired, false otherwise. - /// - /// Note: This getter assumes that [expirationDate] is not null. If it is null, - /// this will result in a null pointer exception. - bool get isExpired { - return expirationDate!.difference(DateTime.now().toUtc()).inSeconds <= 0; - } - - /// Emits this instance as a [Map] according to the OAuth 2.0 specification. - Map asMap() { - final map = { - "access_token": accessToken, - "token_type": type, - "expires_in": - expirationDate!.difference(DateTime.now().toUtc()).inSeconds, - }; - - if (refreshToken != null) { - map["refresh_token"] = refreshToken; - } - - if (scopes != null) { - map["scope"] = scopes!.map((s) => s.toString()).join(" "); - } - - return map; - } -} - -/// Represents an OAuth 2.0 authorization code. -/// -/// This class encapsulates the properties and functionality of an OAuth 2.0 authorization code, -/// which is used in the authorization code grant flow. It contains information such as the code itself, -/// associated client and resource owner details, issue and expiration dates, and requested scopes. -/// -/// See the conduit/managed_auth library for a concrete implementation of this type. -class AuthCode { - /// The actual one-time code used to exchange for tokens. - /// - /// This property represents the authorization code in the OAuth 2.0 authorization code flow. - /// It is a short-lived, single-use code that is issued by the authorization server and can be - /// exchanged for an access token and, optionally, a refresh token. - /// - /// The code is typically valid for a short period (usually a few minutes) and can only be - /// used once. After it has been exchanged for tokens, it becomes invalid. - /// - /// This value may be null if the code has not been generated yet or has been invalidated. - String? code; - - /// The client ID associated with this authorization code. - /// - /// This property represents the unique identifier of the OAuth 2.0 client - /// that requested the authorization code. It is used to link the authorization - /// code back to the client application that initiated the OAuth flow. - /// - /// The client ID is typically assigned by the authorization server when - /// the client application is registered, and it's used to identify the - /// client during the authorization code exchange process. - /// - /// This property is marked as 'late', indicating that it must be initialized - /// before it's accessed, but not necessarily in the constructor. - late String clientID; - - /// The identifier of the resource owner associated with this authorization code. - /// - /// Authorization codes are owned by a resource owner, typically a User, Profile or Account - /// in an application. This value is the primary key or identifying value of those - /// instances. - int? resourceOwnerIdentifier; - - /// The timestamp when this authorization code was issued. - /// - /// This property represents the date and time when the OAuth 2.0 authorization code - /// was originally created and issued by the authorization server. It can be used to: - /// - Calculate the age of the authorization code - /// - Implement expiration policies - /// - Audit the authorization process - /// - /// The value is stored as a [DateTime] object, which allows for easy manipulation - /// and comparison with other dates and times. - /// - /// This value may be null if the issue date is not tracked or has not been set. - DateTime? issueDate; - - /// The expiration date and time of this authorization code. - /// - /// This property represents the point in time when the OAuth 2.0 authorization code - /// will become invalid. After this date and time, the code should no longer be - /// accepted for token exchange. - /// - /// It is recommended to set this value to 10 minutes after the [issueDate] to - /// limit the window of opportunity for potential attacks using intercepted - /// authorization codes. - /// - /// The value is stored as a [DateTime] object, which allows for easy comparison - /// with the current time to determine if the code has expired. This is typically - /// used in conjunction with [issueDate] to enforce the short-lived nature of - /// authorization codes. - /// - /// This value may be null if the authorization code does not have an expiration - /// date or if it has not been set. - DateTime? expirationDate; - - /// Indicates whether this authorization code has already been exchanged for a token. - /// - /// In the OAuth 2.0 authorization code flow, an authorization code should only be used once - /// to obtain an access token. This property helps track whether the code has been exchanged. - /// - /// - If `true`, the code has already been used to obtain a token and should not be accepted again. - /// - If `false` or `null`, the code has not yet been exchanged and may still be valid for token issuance. - /// - /// This property is crucial for preventing authorization code replay attacks, where an attacker - /// might attempt to use a single authorization code multiple times. - bool? hasBeenExchanged; - - /// The list of scopes requested for the token to be exchanged. - /// - /// This property represents the set of permissions or access rights that are being - /// requested for the OAuth 2.0 token during the authorization code exchange process. - /// Each [AuthScope] in the list defines a specific area of access or functionality - /// that the token is requesting to use. - /// - /// If this list is null, it typically means no specific scopes are being requested, - /// and the token may receive default scopes or full access (depending on the system's - /// implementation and configuration). - /// - /// The actual scopes granted to the token may be a subset of these requested scopes, - /// based on the authorization server's policies and the resource owner's consent. - List? requestedScopes; - - /// Determines whether this authorization code has expired. - /// - /// This getter compares the [expirationDate] of the authorization code with the current UTC time - /// to determine if the code has expired. It returns true if the code has expired, and false if it is still valid. - /// - /// The comparison is done by calculating the difference in seconds between the expiration date and the current time. - /// If this difference is less than or equal to zero, the code is considered expired. - /// - /// Returns: - /// [bool]: true if the authorization code has expired, false otherwise. - /// - /// Note: This getter assumes that [expirationDate] is not null. If it is null, - /// this will result in a null pointer exception. - bool get isExpired { - return expirationDate!.difference(DateTime.now().toUtc()).inSeconds <= 0; - } -} - -/// Authorization information for a [Request] after it has passed through an [Authorizer]. -/// -/// This class encapsulates various pieces of authorization information, including: -/// - The client ID under which the permission was granted -/// - The identifier for the resource owner (if applicable) -/// - The [AuthValidator] that granted the permission -/// - Basic authorization credentials (if provided) -/// - A list of scopes that this authorization has access to -/// -/// It also provides a method to check if the authorization has access to a specific scope. -/// -/// This class is typically used in conjunction with [Authorizer] and [AuthValidator] -/// to manage and verify authorization in a request-response cycle. -/// After a request has passed through an [Authorizer], an instance of this type -/// is created and attached to the request (see [Request.authorization]). Instances of this type contain the information -/// that the [Authorizer] obtained from an [AuthValidator] (typically an [AuthServer]) -/// about the validity of the credentials in a request. -class Authorization { - /// Creates an instance of [Authorization]. - /// - /// This constructor initializes an [Authorization] object with the provided parameters: - /// - /// - [clientID]: The client ID under which the permission was granted. - /// - [ownerID]: The identifier for the owner of the resource, if provided. Can be null. - /// - [validator]: The [AuthValidator] that granted this permission. - /// - [credentials]: Optional. Basic authorization credentials, if provided. - /// - [scopes]: Optional. The list of scopes this authorization has access to. - /// - /// This class is typically used to represent the authorization information for a [Request] - /// after it has passed through an [Authorizer]. - Authorization( - this.clientID, - this.ownerID, - this.validator, { - this.credentials, - this.scopes, - }); - - /// The client ID associated with this authorization. - /// - /// This property represents the unique identifier of the OAuth 2.0 client - /// that was granted permission. It is used to link the authorization - /// back to the specific client application that requested it. - /// - /// The client ID is typically assigned by the authorization server when - /// the client application is registered, and it's used to identify the - /// client throughout the OAuth 2.0 flow. - final String clientID; - - /// The identifier for the owner of the resource, if provided. - /// - /// This property represents the unique identifier of the resource owner associated - /// with this authorization. In OAuth 2.0 terminology, the resource owner is typically - /// the end-user who grants permission to an application to access their data. - /// - /// If this authorization does not refer to a specific resource owner, this value will be null. - final int? ownerID; - - /// The [AuthValidator] that granted this permission. - /// - /// This property represents the [AuthValidator] instance that was responsible - /// for validating and granting the authorization. It can be used to trace - /// the origin of the authorization or to perform additional validation - /// if needed. - /// - /// The validator might be null in cases where the authorization was not - /// granted through a standard validation process or if the information - /// about the validator is not relevant or available. - final AuthValidator? validator; - - /// Basic authorization credentials, if provided. - /// - /// This property holds the parsed basic authorization credentials if they were - /// present in the authorization header of the request. If the request did not - /// use basic authorization, or if the credentials were not successfully parsed, - /// this property will be null. - /// - /// The [AuthBasicCredentials] object typically contains a username and password - /// pair extracted from the 'Authorization' header of an HTTP request using the - /// Basic authentication scheme. - /// - /// This can be useful for endpoints that support both OAuth 2.0 token-based - /// authentication and traditional username/password authentication via Basic Auth. - final AuthBasicCredentials? credentials; - - /// The list of scopes this authorization has access to. - /// - /// This property represents the set of permissions or access rights granted to this authorization. - /// Each [AuthScope] in the list defines a specific area of access or functionality - /// that the authorization is allowed to use. - /// - /// If the access token used to create this instance has scopes associated with it, - /// those scopes will be available in this list. If no scopes were associated with - /// the access token, or if scopes are not being used in the system, this property will be null. - /// - /// Scopes are crucial for implementing fine-grained access control in OAuth 2.0 systems, - /// allowing for precise definition of what each authorization is allowed to do. - /// - /// This list can be used in conjunction with the [isAuthorizedForScope] method to check - /// if the authorization has access to a specific scope. - List? scopes; - - /// Determines if this authorization has access to a specific scope. - /// - /// This method checks each element in [scopes] for any that gives privileges - /// to access [scope]. - bool isAuthorizedForScope(String scope) { - final asScope = AuthScope(scope); - return scopes?.any(asScope.isSubsetOrEqualTo) ?? false; - } -} - -/// Represents and manages OAuth 2.0 scopes. -/// -/// An OAuth 2.0 token may optionally have authorization scopes. An authorization scope provides more granular -/// authorization to protected resources. Without authorization scopes, any valid token can pass through an -/// [Authorizer.bearer]. Scopes allow [Authorizer]s to restrict access to routes that do not have the -/// appropriate scope values. -/// -/// An [AuthClient] has a list of valid scopes (see `conduit auth` tool). An access token issued for an [AuthClient] may ask for -/// any of the scopes the client provides. Scopes are then granted to the access token. An [Authorizer] may specify -/// a one or more required scopes that a token must have to pass to the next controller. -class AuthScope { - /// Creates an instance of [AuthScope] from a [scopeString]. - /// - /// A simple authorization scope string is a single keyword. Valid characters are - /// - /// A-Za-z0-9!#\$%&'`()*+,./:;<=>?@[]^_{|}-. - /// - /// For example, 'account' is a valid scope. An [Authorizer] can require an access token to have - /// the 'account' scope to pass through it. Access tokens without the 'account' scope are unauthorized. - /// - /// More advanced scopes may contain multiple segments and a modifier. For example, the following are valid scopes: - /// - /// user - /// user:settings - /// user:posts - /// user:posts.readonly - /// - /// Segments are delimited by the colon character (`:`). Segments allow more granular scoping options. Each segment adds a - /// restriction to the segment prior to it. For example, the scope `user` - /// would allow all user actions, whereas `user:settings` would only allow access to a user's settings. Routes that are secured - /// to either `user:settings` or `user:posts.readonly` are accessible by an access token with `user` scope. A token with `user:settings` - /// would not be able to access a route limited to `user:posts`. - /// - /// A modifier is an additional restrictive measure and follows scope segments and the dot character (`.`). A scope may only - /// have one modifier at the very end of the scope. A modifier can be any string, as long as its characters are in the above - /// list of valid characters. A modifier adds an additional restriction to a scope, without having to make up a new segment. - /// An example is the 'readonly' modifier above. A route that requires `user:posts.readonly` would allow passage when the token - /// has `user`, `user:posts` or `user:posts.readonly`. A route that required `user:posts` would not allow `user:posts.readonly`. - factory AuthScope(String scopeString) { - final cached = _cache[scopeString]; - if (cached != null) { - return cached; - } - - final scope = AuthScope._parse(scopeString); - _cache[scopeString] = scope; - return scope; - } - - /// Parses and creates an [AuthScope] instance from a given scope string. - /// - /// This factory method performs several validation checks on the input [scopeString]: - /// 1. Ensures the string is not empty. - /// 2. Validates that each character in the string is within the allowed set of characters. - /// 3. Parses the string into segments and extracts the modifier (if any). - /// - /// The allowed characters are: A-Za-z0-9!#$%&'`()*+,./:;<=>?@[]^_{|}- - /// - /// If any validation fails, a [FormatException] is thrown with a descriptive error message. - /// - /// After successful validation and parsing, it creates and returns a new [AuthScope] instance. - /// - /// Parameters: - /// [scopeString]: The string representation of the scope to parse. - /// - /// Returns: - /// A new [AuthScope] instance representing the parsed scope. - /// - /// Throws: - /// [FormatException] if the [scopeString] is empty or contains invalid characters. - factory AuthScope._parse(String scopeString) { - if (scopeString.isEmpty) { - throw FormatException( - "Invalid AuthScope. May not an empty string.", - scopeString, - ); - } - - for (final c in scopeString.codeUnits) { - if (!(c == 33 || (c >= 35 && c <= 91) || (c >= 93 && c <= 126))) { - throw FormatException( - "Invalid authorization scope. May only contain " - "the following characters: A-Za-z0-9!#\$%&'`()*+,./:;<=>?@[]^_{|}-", - scopeString, - scopeString.codeUnits.indexOf(c), - ); - } - } - - final segments = _parseSegments(scopeString); - final lastModifier = segments.last.modifier; - - return AuthScope._(scopeString, segments, lastModifier); - } - - /// Private constructor for creating an [AuthScope] instance. - /// - /// This constructor is used internally by the class to create instances - /// after parsing and validating the scope string. - /// - /// Parameters: - /// [_scopeString]: The original, unparsed scope string. - /// [_segments]: A list of parsed [_AuthScopeSegment] objects representing the scope's segments. - /// [_lastModifier]: The modifier of the last segment, if any. - /// - /// This constructor is marked as `const` to allow for compile-time constant instances, - /// which can improve performance and memory usage in certain scenarios. - const AuthScope._(this._scopeString, this._segments, this._lastModifier); - - /// Represents a special constant for indicating 'any' scope in [AuthServerDelegate.getAllowedScopes]. - /// - /// See [AuthServerDelegate.getAllowedScopes] for more details. - static const List any = [ - AuthScope._("_scope:_constant:_marker", [], null) - ]; - - /// Verifies if the provided scopes fulfill the required scopes. - /// - /// For all [requiredScopes], there must be a scope in [requiredScopes] that meets or exceeds - /// that scope for this method to return true. If [requiredScopes] is null, this method - /// return true regardless of [providedScopes]. - static bool verify( - List? requiredScopes, - List? providedScopes, - ) { - if (requiredScopes == null) { - return true; - } - - return requiredScopes.every((requiredScope) { - final tokenHasValidScope = providedScopes - ?.any((tokenScope) => requiredScope.isSubsetOrEqualTo(tokenScope)); - - return tokenHasValidScope ?? false; - }); - } - - /// A cache to store previously created AuthScope instances. - /// - /// This static map serves as a cache to store AuthScope instances that have been - /// previously created. The key is the string representation of the scope, and - /// the value is the corresponding AuthScope instance. - /// - /// Caching AuthScope instances can improve performance by avoiding repeated - /// parsing and object creation for frequently used scopes. When an AuthScope - /// is requested with a scope string that already exists in this cache, the - /// cached instance is returned instead of creating a new one. - static final Map _cache = {}; - - /// The original, unparsed scope string. - /// - /// This private field stores the complete scope string as it was originally provided - /// when creating the AuthScope instance. It represents the full, unmodified scope - /// including all segments and modifiers. - /// - /// This string is used for caching purposes and when converting the AuthScope - /// back to its string representation (e.g., in the toString() method). - final String _scopeString; - - /// Returns an iterable of individual segments of this AuthScope instance. - /// - /// Will always have a length of at least 1. - Iterable get segments => _segments.map((s) => s.name); - - /// Returns the modifier of this scope, if it exists. - /// - /// The modifier is an optional component of an AuthScope that provides additional - /// specification or restriction to the scope. It is typically the last part of a - /// scope string, following a dot (.) after the last segment. - /// - /// For example, in the scope "user:profile.readonly", "readonly" is the modifier. - /// - /// Returns: - /// A [String] representing the modifier if one exists, or null if this AuthScope - /// does not have a modifier. - /// - /// This getter provides access to the private [_lastModifier] field, allowing - /// external code to check for the presence and value of a modifier without - /// directly accessing the internal state of the AuthScope. - String? get modifier => _lastModifier; - - /// List of segments that make up this AuthScope. - /// - /// This private field stores the parsed segments of the scope string as a list of - /// [_AuthScopeSegment] objects. Each segment represents a part of the scope, - /// separated by colons in the original scope string. - /// - /// For example, for a scope string "user:profile:read", this list would contain - /// three _AuthScopeSegment objects representing "user", "profile", and "read" - /// respectively. - /// - /// This list is used internally for scope comparisons and validations. - final List<_AuthScopeSegment> _segments; - - /// The modifier of the last segment in this AuthScope. - /// - /// This private field stores the modifier of the last segment in the AuthScope, - /// if one exists. A modifier provides additional specification or restriction - /// to a scope and is typically the part following a dot (.) in the last segment - /// of a scope string. - /// - /// For example, in the scope "user:profile.readonly", "readonly" would be stored - /// in this field. - /// - /// The value is null if the AuthScope does not have a modifier in its last segment. - final String? _lastModifier; - - /// Parses the given scope string into a list of [_AuthScopeSegment] objects. - /// - /// This method performs the following steps: - /// 1. Checks if the input string is empty and throws a [FormatException] if it is. - /// 2. Splits the string by ':' and creates [_AuthScopeSegment] objects for each segment. - /// 3. Validates each segment, ensuring: - /// - Only the last segment can have a modifier. - /// - There are no empty segments. - /// - There are no leading or trailing colons. - /// - /// If any validation fails, a [FormatException] is thrown with a descriptive error message - /// and the position in the string where the error occurred. - /// - /// Parameters: - /// [scopeString]: The string representation of the scope to parse. - /// - /// Returns: - /// A list of [_AuthScopeSegment] objects representing the parsed segments of the scope. - /// - /// Throws: - /// [FormatException] if the [scopeString] is empty or contains invalid segments. - static List<_AuthScopeSegment> _parseSegments(String scopeString) { - if (scopeString.isEmpty) { - throw FormatException( - "Invalid AuthScope. May not be empty string.", - scopeString, - ); - } - - final elements = - scopeString.split(":").map((seg) => _AuthScopeSegment(seg)).toList(); - - var scannedOffset = 0; - for (var i = 0; i < elements.length - 1; i++) { - if (elements[i].modifier != null) { - throw FormatException( - "Invalid AuthScope. May only contain modifiers on the last segment.", - scopeString, - scannedOffset, - ); - } - - if (elements[i].name == "") { - throw FormatException( - "Invalid AuthScope. May not contain empty segments or, leading or trailing colons.", - scopeString, - scannedOffset, - ); - } - - scannedOffset += elements[i].toString().length + 1; - } - - if (elements.last.name == "") { - throw FormatException( - "Invalid AuthScope. May not contain empty segments.", - scopeString, - scannedOffset, - ); - } - - return elements; - } - - /// Determines if this [AuthScope] is a subset of or equal to the [incomingScope]. - /// - /// The scope `users:posts` is a subset of `users`. - /// - /// This check is used to determine if an [Authorizer] can allow a [Request] - /// to pass if the [Request]'s [Request.authorization] has a scope that has - /// the same or more scope than the required scope of an [Authorizer]. - bool isSubsetOrEqualTo(AuthScope incomingScope) { - if (incomingScope._lastModifier != null) { - // If the modifier of the incoming scope is restrictive, - // and this scope requires no restrictions, then it's not allowed. - if (_lastModifier == null) { - return false; - } - - // If the incoming scope's modifier doesn't match this one, - // then we also don't have access. - if (_lastModifier != incomingScope._lastModifier) { - return false; - } - } - - final thisIterator = _segments.iterator; - for (final incomingSegment in incomingScope._segments) { - // If the incoming scope is more restrictive than this scope, - // then it's not allowed. - if (!thisIterator.moveNext()) { - return false; - } - final current = thisIterator.current; - - // If we have a mismatch here, then we're going - // down the wrong path. - if (incomingSegment.name != current.name) { - return false; - } - } - - return true; - } - - /// Alias of [isSubsetOrEqualTo]. - /// - /// This method is deprecated and will be removed in a future version. - /// Use [isSubsetOrEqualTo] instead. - /// - /// Determines if this [AuthScope] allows the [incomingScope]. - /// It is equivalent to calling [isSubsetOrEqualTo] with the same argument. - /// - /// [incomingScope]: The AuthScope to compare against this instance. - /// - /// Returns true if this AuthScope is a subset of or equal to the [incomingScope], - /// false otherwise. - @Deprecated('Use AuthScope.isSubsetOrEqualTo() instead') - bool allowsScope(AuthScope incomingScope) => isSubsetOrEqualTo(incomingScope); - - /// Checks if this AuthScope is a subset of or equal to the given scope string. - /// - /// Parses an instance of this type from [scopeString] and invokes - /// [isSubsetOrEqualTo]. - bool allows(String scopeString) => isSubsetOrEqualTo(AuthScope(scopeString)); - - /// Determines if this [AuthScope] is exactly the same as the given [scope]. - /// - /// This method compares each segment and modifier of both scopes to ensure they are identical. - /// - /// Parameters: - /// [scope]: The [AuthScope] to compare against this instance. - /// - /// Returns: - /// [bool]: true if both scopes are exactly the same, false otherwise. - /// - /// The comparison is performed as follows: - /// 1. Iterates through each segment of both scopes simultaneously. - /// 2. If the given scope has fewer segments, returns false. - /// 3. Compares the name and modifier of each segment. - /// 4. If any segment's name or modifier doesn't match, returns false. - /// 5. If all segments match and both scopes have the same number of segments, returns true. - bool isExactlyScope(AuthScope scope) { - final incomingIterator = scope._segments.iterator; - for (final segment in _segments) { - /// the scope has less segments so no match. - if (!incomingIterator.moveNext()) { - return false; - } - - final incomingSegment = incomingIterator.current; - - if (incomingSegment.name != segment.name || - incomingSegment.modifier != segment.modifier) { - return false; - } - } - - return true; - } - - /// Checks if this AuthScope is exactly the same as the given scope string. - /// - /// Parses an instance of this type from [scopeString] and invokes [isExactlyScope]. - bool isExactly(String scopeString) { - return isExactlyScope(AuthScope(scopeString)); - } - - /// Returns a string representation of this AuthScope. - /// - /// This method overrides the default [Object.toString] method to provide - /// a string representation of the AuthScope instance. It returns the - /// original, unparsed scope string that was used to create this AuthScope. - /// - /// Returns: - /// A [String] representing the complete scope, including all segments - /// and modifiers, exactly as it was originally provided. - /// - /// Example: - /// final scope = AuthScope('user:profile.readonly'); - /// print(scope.toString()); // Outputs: 'user:profile.readonly' - @override - String toString() => _scopeString; -} - -/// Represents a segment of an AuthScope. -/// -/// An AuthScope can be composed of one or more segments, where each segment -/// may have a name and an optional modifier. This class parses and stores -/// the components of a single segment. -class _AuthScopeSegment { - /// Constructs an AuthScopeSegment from the given [segment] string. - /// - /// The [segment] string is expected to be in the format "name.modifier" or "name". - /// If a modifier is present, it is stored in the [modifier] field. If not, [modifier] - /// remains null. The [name] field always contains the name of the segment. - /// - /// Parameters: - /// [segment]: A [String] representing the segment, which may include a modifier. - _AuthScopeSegment(String segment) { - final split = segment.split("."); - if (split.length == 2) { - name = split.first; - modifier = split.last; - } else { - name = segment; - } - } - - /// The name of the segment. - /// - /// This property represents the main part of the segment before any modifier. - /// For example, in the segment "user.readonly", "user" would be the name. - /// - /// This value can be null if the segment is empty or malformed. - String? name; - - /// The modifier of the segment, if present. - /// - /// This property represents the optional part of the segment after the name, - /// if a modifier is specified. For example, in the segment "user.readonly", - /// "readonly" would be the modifier. - /// - /// If no modifier is present in the segment, this value is null. - String? modifier; - - /// Returns a string representation of this AuthScopeSegment. - /// - /// This method overrides the default [Object.toString] method to provide - /// a string representation of the AuthScopeSegment instance. - /// - /// If the segment has a modifier, it returns the name and modifier - /// separated by a dot (e.g., "name.modifier"). - /// If there's no modifier, it returns just the name. - /// - /// Returns: - /// A [String] representing the complete segment, including the - /// modifier if present. - /// - /// Example: - /// final segment = _AuthScopeSegment('user.readonly'); - /// print(segment.toString()); // Outputs: 'user.readonly' - /// - /// final segmentNoModifier = _AuthScopeSegment('user'); - /// print(segmentNoModifier.toString()); // Outputs: 'user' - @override - String toString() { - if (modifier == null) { - return name!; - } - return "$name.$modifier"; - } -} diff --git a/packages/auth/lib/src/protocols.dart b/packages/auth/lib/src/protocols.dart deleted file mode 100644 index 3a58a41..0000000 --- a/packages/auth/lib/src/protocols.dart +++ /dev/null @@ -1,217 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_auth/auth.dart'; - -/// Defines the interface for a Resource Owner in OAuth 2.0 authentication. -/// -/// Your application's 'user' type must implement the methods declared in this interface. [AuthServer] can -/// validate the credentials of a [ResourceOwner] to grant authorization codes and access tokens on behalf of that -/// owner. -abstract class ResourceOwner { - /// The username of the resource owner. - /// - /// This property represents the unique identifier for a resource owner, typically used for authentication purposes. - /// It must be unique among all resource owners in the system. Often, this value is an email address. - /// - /// The username is used by authenticating users to identify their account when logging in or performing - /// other authentication-related actions. - /// - /// This property is nullable, which means it can be null in some cases, such as when creating a new - /// resource owner instance before setting the username. - String? username; - - /// The hashed password of this instance. - /// - /// This property stores the password of the resource owner in a hashed format. - /// Hashing is a one-way process that converts the plain text password into a - /// fixed-length string of characters, which is more secure to store than the - /// original password. - /// - /// The hashed password is used for password verification during authentication - /// without storing the actual password. This enhances security by ensuring - /// that even if the database is compromised, the original passwords remain - /// unknown. - /// - /// This property is nullable, allowing for cases where a password might not - /// be set or required for certain types of resource owners. - String? hashedPassword; - - /// The salt used in the hashing process for [hashedPassword]. - /// - /// A salt is a random string that is added to the password before hashing, - /// which adds an extra layer of security to the hashed password. It helps - /// protect against rainbow table attacks and ensures that even if two users - /// have the same password, their hashed passwords will be different. - /// - /// This property is nullable to accommodate cases where a salt might not be - /// used or stored separately from the hashed password. - String? salt; - - /// A unique identifier of this resource owner. - /// - /// This property represents a unique identifier for the resource owner, typically - /// used in authentication and authorization processes. The [AuthServer] uses this - /// identifier to associate authorization codes and access tokens with the specific - /// resource owner. - /// - /// The identifier is of type [int] and is nullable, allowing for cases where an ID - /// might not be assigned yet (e.g., when creating a new resource owner instance). - /// - /// It's crucial to ensure that this ID remains unique across all resource owners - /// in the system to maintain the integrity of the authentication and authorization - /// processes. - /// - /// This getter method should be implemented to return the unique identifier of - /// the resource owner. - int? get id; -} - -/// The methods used by an [AuthServer] to store information and customize behavior related to authorization. -/// -/// An [AuthServer] requires an instance of this type to manage storage of [ResourceOwner]s, [AuthToken], [AuthCode], -/// and [AuthClient]s. You may also customize the token format or add more granular authorization scope rules. -/// -/// Prefer to use `ManagedAuthDelegate` from 'package:conduit_core/managed_auth.dart' instead of implementing this interface; -/// there are important details to consider and test when implementing this interface. -/// -/// This abstract class defines the contract for implementing an authentication and authorization system. -/// It provides methods for managing resource owners, clients, tokens, and authorization codes. -/// Implementations of this class are responsible for handling the storage, retrieval, and management -/// of these entities, as well as customizing certain behaviors of the authentication process. -/// -/// Key responsibilities include: -/// - Managing resource owners (users) -/// - Handling client applications -/// - Storing and retrieving access and refresh tokens -/// - Managing authorization codes -/// - Customizing token formats and allowed scopes -/// -/// Each method in this class corresponds to a specific operation in the OAuth 2.0 flow, -/// allowing for a flexible and extensible authentication system. -abstract class AuthServerDelegate { - /// Retrieves a [ResourceOwner] based on the provided [username]. - /// - /// This method must return an instance of [ResourceOwner] if one exists for [username]. Otherwise, it must return null. - /// - /// Every property declared by [ResourceOwner] must be non-null in the return value. - /// - /// [server] is the [AuthServer] invoking this method. - FutureOr getResourceOwner(AuthServer server, String username); - - /// Stores a new [AuthClient] in the system. - /// - /// [client] must be returned by [getClient] after this method has been invoked, and until (if ever) - /// [removeClient] is invoked. - FutureOr addClient(AuthServer server, AuthClient client); - - /// Retrieves an [AuthClient] based on the provided client ID. - /// - /// This method must return an instance of [AuthClient] if one exists for [clientID]. Otherwise, it must return null. - /// [server] is the [AuthServer] requesting the [AuthClient]. - FutureOr getClient(AuthServer server, String clientID); - - /// Removes an [AuthClient] for a given client ID. - /// - /// This method must delete the [AuthClient] for [clientID]. Subsequent requests to this - /// instance for [getClient] must return null after this method completes. If there is no - /// matching [clientID], this method may choose whether to throw an exception or fail silently. - /// - /// [server] is the [AuthServer] requesting the [AuthClient]. - FutureOr removeClient(AuthServer server, String clientID); - - /// Retrieves an [AuthToken] based on either its access token or refresh token. - /// - /// Exactly one of [byAccessToken] and [byRefreshToken] may be non-null, if not, this method must throw an error. - /// - /// If [byAccessToken] is not-null and there exists a matching [AuthToken.accessToken], return that token. - /// If [byRefreshToken] is not-null and there exists a matching [AuthToken.refreshToken], return that token. - /// - /// If no match is found, return null. - /// - /// [server] is the [AuthServer] requesting the [AuthToken]. - FutureOr getToken( - AuthServer server, { - String? byAccessToken, - String? byRefreshToken, - }); - - /// Deletes all [AuthToken]s and [AuthCode]s associated with a specific [ResourceOwner]. - /// - /// [server] is the requesting [AuthServer]. [resourceOwnerID] is the [ResourceOwner.id]. - FutureOr removeTokens(AuthServer server, int resourceOwnerID); - - /// Deletes an [AuthToken] that was granted by a specific [AuthCode]. - /// - /// If an [AuthToken] has been granted by exchanging [AuthCode], that token must be revoked - /// and can no longer be used to authorize access to a resource. [grantedByCode] should - /// also be removed. - /// - /// This method is invoked when attempting to exchange an authorization code that has already granted a token. - FutureOr removeToken(AuthServer server, AuthCode grantedByCode); - - /// Stores an [AuthToken] in the system. - /// - /// [token] must be stored such that it is accessible from [getToken], and until it is either - /// revoked via [removeToken] or [removeTokens], or until it has expired and can reasonably - /// be believed to no longer be in use. - /// - /// You may alter [token] prior to storing it. This may include replacing [AuthToken.accessToken] with another token - /// format. The default token format will be a random 32 character string. - /// - /// If this token was granted through an authorization code, [issuedFrom] is that code. Otherwise, [issuedFrom] - /// is null. - FutureOr addToken(AuthServer server, AuthToken token, {AuthCode? issuedFrom}); - - /// Updates an existing [AuthToken] with new values. - /// - /// This method must must update an existing [AuthToken], found by [oldAccessToken], - /// with the values [newAccessToken], [newIssueDate] and [newExpirationDate]. - /// - /// You may alter the token in addition to the provided values, and you may override the provided values. - /// [newAccessToken] defaults to a random 32 character string. - FutureOr updateToken( - AuthServer server, - String? oldAccessToken, - String? newAccessToken, - DateTime? newIssueDate, - DateTime? newExpirationDate, - ); - - /// Stores an [AuthCode] in the system. - /// - /// [code] must be accessible until its expiration date. - FutureOr addCode(AuthServer server, AuthCode code); - - /// Retrieves an [AuthCode] based on its identifying code. - /// - /// This must return an instance of [AuthCode] where [AuthCode.code] matches [code]. - /// Return null if no matching code. - FutureOr getCode(AuthServer server, String code); - - /// Removes an [AuthCode] from the system based on its identifying code. - /// - /// The [AuthCode.code] matching [code] must be deleted and no longer accessible. - FutureOr removeCode(AuthServer server, String? code); - - /// Returns a list of allowed scopes for a given [ResourceOwner]. - /// - /// Subclasses override this method to return a list of [AuthScope]s based on some attribute(s) of an [ResourceOwner]. - /// That [ResourceOwner] is then restricted to only those scopes, even if the authenticating client would allow other scopes - /// or scopes with higher privileges. - /// - /// By default, this method returns [AuthScope.any] - any [ResourceOwner] being authenticated has full access to the scopes - /// available to the authenticating client. - /// - /// When overriding this method, it is important to note that (by default) only the properties declared by [ResourceOwner] - /// will be valid for [owner]. If [owner] has properties that are application-specific (like a `role`), - /// [getResourceOwner] must also be overridden to ensure those values are fetched. - List? getAllowedScopes(ResourceOwner owner) => AuthScope.any; -} diff --git a/packages/auth/lib/src/validator.dart b/packages/auth/lib/src/validator.dart deleted file mode 100644 index 0582d4b..0000000 --- a/packages/auth/lib/src/validator.dart +++ /dev/null @@ -1,50 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// A mixin that defines the interface for validating authorization data. -/// -/// When an [Authorizer] processes a [Request], it invokes [validate], passing in the parsed Authorization -/// header of the [Request]. -/// -/// [AuthServer] implements this interface. -mixin AuthValidator { - /// Validates authorization data and returns an [Authorization] if valid. - /// - /// This method is invoked by [Authorizer] to validate the Authorization header of a request. [authorizationData] - /// is the parsed contents of the Authorization header, while [parser] is the object that parsed the header. - /// - /// If this method returns null, an [Authorizer] will send a 401 Unauthorized response. - /// If this method throws an [AuthorizationParserException], a 400 Bad Request response is sent. - /// If this method throws an [AuthServerException], an appropriate status code is sent for the details of the exception. - /// - /// If [requiredScope] is provided, a request's authorization must have at least that much scope to pass the [Authorizer]. - FutureOr validate( - AuthorizationParser parser, - T authorizationData, { - List? requiredScope, - }); - - /// Provides [APISecurityRequirement]s for the given [authorizer]. - /// - /// An [Authorizer] that adds security requirements to operations will invoke this method to allow this validator to define those requirements. - /// The [Authorizer] must provide the [context] it was given to document the operations, itself and optionally a list of [scopes] required to pass it. - List documentRequirementsForAuthorizer( - APIDocumentContext context, - Authorizer authorizer, { - List? scopes, - }) => - []; -} diff --git a/packages/auth/pubspec.yaml b/packages/auth/pubspec.yaml deleted file mode 100644 index e9066e4..0000000 --- a/packages/auth/pubspec.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: protevus_auth -description: The Authentication Package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.2 - -# Add regular dependencies here. -dependencies: - protevus_http: ^0.0.1 - protevus_openapi: ^0.0.1 - protevus_hashing: ^0.0.1 - crypto: ^3.0.3 - # path: ^1.8.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/auth/test/.gitkeep b/packages/auth/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/config/.gitignore b/packages/config/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/config/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/config/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/config/LICENSE.md b/packages/config/LICENSE.md deleted file mode 100644 index 0fd0d03..0000000 --- a/packages/config/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) - -The Laravel Framework is Copyright (c) Taylor Otwell -The Fabric Framework is Copyright (c) Vieo, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/config/README.md b/packages/config/README.md deleted file mode 100644 index 757f4c9..0000000 --- a/packages/config/README.md +++ /dev/null @@ -1 +0,0 @@ -

\ No newline at end of file diff --git a/packages/config/analysis_options.yaml b/packages/config/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/config/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/config/lib/config.dart b/packages/config/lib/config.dart deleted file mode 100644 index d1e6982..0000000 --- a/packages/config/lib/config.dart +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Configuration library for the Protevus Platform. -/// -/// This library exports various components related to configuration management, -/// including compiler, runtime, and default configurations. It also includes -/// utilities for handling intermediate exceptions and mirror properties. -/// -/// The exported modules are: -/// - compiler: Handles compilation of configuration files. -/// - configuration: Defines the core configuration structure. -/// - default_configurations: Provides pre-defined default configurations. -/// - intermediate_exception: Manages exceptions during configuration processing. -/// - mirror_property: Utilities for reflection-based property handling. -/// - runtime: Manages runtime configuration aspects. -library config; - -export 'package:protevus_config/src/compiler.dart'; -export 'package:protevus_config/src/configuration.dart'; -export 'package:protevus_config/src/default_configurations.dart'; -export 'package:protevus_config/src/intermediate_exception.dart'; -export 'package:protevus_config/src/mirror_property.dart'; -export 'package:protevus_config/src/runtime.dart'; diff --git a/packages/config/lib/src/compiler.dart b/packages/config/lib/src/compiler.dart deleted file mode 100644 index a594aaf..0000000 --- a/packages/config/lib/src/compiler.dart +++ /dev/null @@ -1,72 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'dart:mirrors'; - -import 'package:protevus_config/config.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// A compiler class for configurations in the Protevus Platform. -/// -/// This class extends the [Compiler] class and provides functionality to -/// compile configuration-related data and modify package files. -/// -/// The [compile] method creates a map of configuration names to their -/// corresponding [ConfigurationRuntimeImpl] instances by scanning for -/// subclasses of [Configuration] in the given [MirrorContext]. -/// -/// The [deflectPackage] method modifies the "conduit_config.dart" file in the -/// destination directory by removing a specific export statement. -class ConfigurationCompiler extends Compiler { - /// Compiles configuration data from the given [MirrorContext]. - /// - /// This method scans the [context] for all subclasses of [Configuration] - /// and creates a map where: - /// - The keys are the names of these subclasses (as strings) - /// - The values are instances of [ConfigurationRuntimeImpl] created from - /// the corresponding subclass - /// - /// Returns a [Map] where each entry represents a - /// configuration class and its runtime implementation. - @override - Map compile(MirrorContext context) { - return Map.fromEntries( - context.getSubclassesOf(Configuration).map((c) { - return MapEntry( - MirrorSystem.getName(c.simpleName), - ConfigurationRuntimeImpl(c), - ); - }), - ); - } - - /// Modifies the package file by removing a specific export statement. - /// - /// This method performs the following steps: - /// 1. Locates the "config.dart" file in the "lib/" directory of the [destinationDirectory]. - /// 2. Reads the contents of the file. - /// 3. Removes the line "export 'package:protevus_config/src/compiler.dart';" from the file contents. - /// 4. Writes the modified contents back to the file. - /// - /// This operation is typically used to adjust the exported modules in the compiled package. - /// - /// [destinationDirectory] is the directory where the package files are located. - @override - void deflectPackage(Directory destinationDirectory) { - final libFile = File.fromUri( - destinationDirectory.uri.resolve("lib/").resolve("config.dart"), - ); - final contents = libFile.readAsStringSync(); - libFile.writeAsStringSync( - contents.replaceFirst( - "export 'package:protevus_config/src/compiler.dart';", ""), - ); - } -} diff --git a/packages/config/lib/src/configuration.dart b/packages/config/lib/src/configuration.dart deleted file mode 100644 index 9ffcd6b..0000000 --- a/packages/config/lib/src/configuration.dart +++ /dev/null @@ -1,627 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; - -import 'package:protevus_config/config.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:meta/meta.dart'; -import 'package:yaml/yaml.dart'; - -/// A base class for configuration management in Dart applications. -/// -/// [Configuration] provides a framework for reading and parsing YAML-based -/// configuration files or strings. It offers various constructors to create -/// configuration objects from different sources (maps, strings, or files), -/// and includes methods for decoding and validating configuration data. -/// -/// Key features: -/// - Supports creating configurations from YAML strings, files, or maps -/// - Provides a runtime context for configuration-specific operations -/// - Includes a default decoding mechanism that can be overridden -/// - Offers a validation method to ensure all required fields are present -/// - Allows for environment variable substitution in configuration values -/// -/// Subclasses of [Configuration] should implement specific configuration -/// structures by defining properties that correspond to expected YAML keys. -/// The [decode] and [validate] methods can be overridden to provide custom -/// behavior for complex configuration scenarios. -/// -/// Example usage: -/// ```dart -/// class MyConfig extends Configuration { -/// late String apiKey; -/// int port = 8080; -/// -/// @override -/// void validate() { -/// super.validate(); -/// if (port < 1000 || port > 65535) { -/// throw ConfigurationException(this, "Invalid port number"); -/// } -/// } -/// } -/// -/// final config = MyConfig.fromFile(File('config.yaml')); -/// ``` -abstract class Configuration { - /// Default constructor for the Configuration class. - /// - /// This constructor creates a new instance of the Configuration class - /// without any initial configuration data. It can be used as a starting - /// point for creating custom configurations, which can then be populated - /// using other methods or by setting properties directly. - Configuration(); - - /// Creates a [Configuration] instance from a given map. - /// - /// This constructor takes a [Map] with dynamic keys and values, converts - /// all keys to strings, and then decodes the resulting map into the - /// configuration properties. This is useful when you have configuration - /// data already in a map format, possibly from a non-YAML source. - /// - /// [map] The input map containing configuration data. Keys will be - /// converted to strings, while values remain as their original types. - /// - /// Example: - /// ```dart - /// final configMap = {'key1': 'value1', 'key2': 42}; - /// final config = MyConfiguration.fromMap(configMap); - /// ``` - Configuration.fromMap(Map map) { - decode(map.map((k, v) => MapEntry(k.toString(), v))); - } - - /// Creates a [Configuration] instance from a YAML string. - /// - /// This constructor takes a [String] containing YAML content, parses it into - /// a map, and then decodes the resulting map into the configuration properties. - /// It's useful when you have configuration data as a YAML string, perhaps - /// loaded from a file or received from an API. - /// - /// [contents] A string containing valid YAML data. This will be parsed and - /// used to populate the configuration properties. - /// - /// Throws a [YamlException] if the YAML parsing fails. - /// - /// Example: - /// ```dart - /// final yamlString = ''' - /// api_key: abc123 - /// port: 8080 - /// '''; - /// final config = MyConfiguration.fromString(yamlString); - /// ``` - Configuration.fromString(String contents) { - final yamlMap = loadYaml(contents) as Map?; - final map = - yamlMap?.map((k, v) => MapEntry(k.toString(), v)); - decode(map); - } - - /// Creates a [Configuration] instance from a YAML file. - /// - /// [file] must contain valid YAML data. - Configuration.fromFile(File file) : this.fromString(file.readAsStringSync()); - - /// Returns the [ConfigurationRuntime] associated with the current instance's runtime type. - /// - /// This getter retrieves the [ConfigurationRuntime] from the [RuntimeContext.current] map, - /// using the runtime type of the current instance as the key. The retrieved value - /// is then cast to [ConfigurationRuntime]. - /// - /// This is typically used internally to access runtime-specific configuration - /// operations and validations. - /// - /// Returns: - /// The [ConfigurationRuntime] associated with this configuration's type. - /// - /// Throws: - /// A runtime exception if the retrieved value cannot be cast to [ConfigurationRuntime]. - ConfigurationRuntime get _runtime => - RuntimeContext.current[runtimeType] as ConfigurationRuntime; - - /// Decodes the given [value] and populates the properties of this configuration instance. - /// - /// Override this method to provide decoding behavior other than the default behavior. - void decode(dynamic value) { - if (value is! Map) { - throw ConfigurationException( - this, - "input is not an object (is a '${value.runtimeType}')", - ); - } - - _runtime.decode(this, value); - - validate(); - } - - /// Validates this configuration. - /// - /// This method is called automatically after the configuration is decoded. It performs - /// validation checks on the configuration data to ensure its integrity and correctness. - /// - /// Override this method to perform validations on input data. Throw [ConfigurationException] - /// for invalid data. - @mustCallSuper - void validate() { - _runtime.validate(this); - } - - /// Retrieves an environment variable value or returns the original value. - /// - /// This method checks if the given [value] is a string that starts with '$'. - /// If so, it interprets the rest of the string as an environment variable name - /// and attempts to retrieve its value from the system environment. - /// - /// If the environment variable exists, its value is returned. - /// If the environment variable does not exist, null is returned. - /// If the [value] is not a string starting with '$', the original [value] is returned unchanged. - /// - /// Parameters: - /// [value]: The value to check. Can be of any type. - /// - /// Returns: - /// - The value of the environment variable if [value] is a string starting with '$' - /// and the corresponding environment variable exists. - /// - null if [value] is a string starting with '$' but the environment variable doesn't exist. - /// - The original [value] if it's not a string starting with '$'. - static dynamic getEnvironmentOrValue(dynamic value) { - if (value is String && value.startsWith(r"$")) { - final envKey = value.substring(1); - if (!Platform.environment.containsKey(envKey)) { - return null; - } - - return Platform.environment[envKey]; - } - return value; - } -} - -/// An abstract class representing the runtime behavior for configuration objects. -/// -/// This class provides methods for decoding and validating configuration objects, -/// as well as a utility method for handling exceptions during the decoding process. -/// -/// Implementations of this class should provide concrete logic for decoding -/// configuration data from input maps and validating the resulting configuration objects. -/// -/// The [tryDecode] method offers a standardized way to handle exceptions that may occur -/// during the decoding process, wrapping them in appropriate [ConfigurationException]s -/// with detailed key paths for easier debugging. -abstract class ConfigurationRuntime { - /// Decodes the input map and populates the given configuration object. - /// - /// This method is responsible for parsing the input map and setting the - /// corresponding values in the configuration object. It should handle - /// type conversions, nested structures, and any specific logic required - /// for populating the configuration. - /// - /// Parameters: - /// [configuration]: The Configuration object to be populated with decoded values. - /// [input]: A Map containing the raw configuration data to be decoded. - /// - /// Implementations of this method should handle potential errors gracefully, - /// possibly by throwing ConfigurationException for invalid or missing data. - void decode(Configuration configuration, Map input); - - /// Validates the given configuration object. - /// - /// This method is responsible for performing validation checks on the - /// provided configuration object. It should ensure that all required - /// fields are present and that the values meet any specific criteria - /// or constraints defined for the configuration. - /// - /// Parameters: - /// [configuration]: The Configuration object to be validated. - /// - /// Implementations of this method should throw a [ConfigurationException] - /// if any validation errors are encountered, providing clear and specific - /// error messages to aid in debugging and resolution of configuration issues. - void validate(Configuration configuration); - - /// Attempts to decode a configuration property and handles exceptions. - /// - /// This method provides a standardized way to handle exceptions that may occur - /// during the decoding process of a configuration property. It wraps the decoding - /// logic in a try-catch block and transforms various exceptions into appropriate - /// [ConfigurationException]s with detailed key paths for easier debugging. - /// - /// Parameters: - /// [configuration]: The Configuration object being decoded. - /// [name]: The name of the property being decoded. - /// [decode]: A function that performs the actual decoding logic. - /// - /// Returns: - /// The result of the [decode] function if successful. - /// - /// Throws: - /// [ConfigurationException]: - /// - If a [ConfigurationException] is caught, it's re-thrown with an updated key path. - /// - If an [IntermediateException] is caught, it's transformed into a [ConfigurationException] - /// with appropriate error details. - /// - For any other exception, a new [ConfigurationException] is thrown with the exception message. - /// - /// This method is particularly useful for maintaining a consistent error handling - /// approach across different configuration properties and types. - dynamic tryDecode( - Configuration configuration, - String name, - dynamic Function() decode, - ) { - try { - return decode(); - } on ConfigurationException catch (e) { - throw ConfigurationException( - configuration, - e.message, - keyPath: [name, ...e.keyPath], - ); - } on IntermediateException catch (e) { - final underlying = e.underlying; - if (underlying is ConfigurationException) { - final keyPaths = [ - [name], - e.keyPath, - underlying.keyPath, - ].expand((i) => i).toList(); - - throw ConfigurationException( - configuration, - underlying.message, - keyPath: keyPaths, - ); - } else if (underlying is TypeError) { - throw ConfigurationException( - configuration, - "input is wrong type", - keyPath: [name, ...e.keyPath], - ); - } - - throw ConfigurationException( - configuration, - underlying.toString(), - keyPath: [name, ...e.keyPath], - ); - } catch (e) { - throw ConfigurationException( - configuration, - e.toString(), - keyPath: [name], - ); - } - } -} - -/// Enumerates the possible options for a configuration item property's optionality. -/// -/// This enum is used to specify whether a configuration property is required or optional -/// when parsing configuration data. It helps in determining how to handle missing keys -/// in the source YAML configuration. -enum ConfigurationItemAttributeType { - /// Indicates that a configuration property is required. - /// - /// When a configuration property is marked as [required], it means that - /// the corresponding key must be present in the source YAML configuration. - /// If the key is missing, an exception will be thrown during the parsing - /// or validation process. - /// - /// This helps ensure that all necessary configuration values are provided - /// and reduces the risk of runtime errors due to missing configuration data. - required, - - /// Indicates that a configuration property is optional. - /// - /// When a configuration property is marked as [optional], it means that - /// the corresponding key can be omitted from the source YAML configuration - /// without causing an error. If the key is missing, the property will be - /// silently ignored during the parsing process. - /// - /// This allows for more flexible configuration structures where some - /// properties are not mandatory and can be omitted without affecting - /// the overall functionality of the configuration. - /// - /// [Configuration] properties marked as [optional] will be silently ignored - /// if their source YAML doesn't contain a matching key. - optional -} - -/// Represents an attribute for configuration item properties. -/// -/// **NOTICE**: This will be removed in version 2.0.0. -/// To signify required or optional config you could do: -/// Example: -/// ```dart -/// class MyConfig extends Config { -/// late String required; -/// String? optional; -/// String optionalWithDefult = 'default'; -/// late String optionalWithComputedDefault = _default(); -/// -/// String _default() => 'computed'; -/// } -/// ``` -class ConfigurationItemAttribute { - const ConfigurationItemAttribute._(this.type); - - final ConfigurationItemAttributeType type; -} - -/// A [ConfigurationItemAttribute] for required properties. -/// -/// **NOTICE**: This will be removed in version 2.0.0. -/// To signify required or optional config you could do: -/// Example: -/// ```dart -/// class MyConfig extends Config { -/// late String required; -/// String? optional; -/// String optionalWithDefult = 'default'; -/// late String optionalWithComputedDefault = _default(); -/// -/// String _default() => 'computed'; -/// } -/// ``` -@Deprecated("Use `late` property") -const ConfigurationItemAttribute requiredConfiguration = - ConfigurationItemAttribute._(ConfigurationItemAttributeType.required); - -/// A [ConfigurationItemAttribute] for optional properties. -/// -/// **NOTICE**: This will be removed in version 2.0.0. -/// To signify required or optional config you could do: -/// Example: -/// ```dart -/// class MyConfig extends Config { -/// late String required; -/// String? optional; -/// String optionalWithDefult = 'default'; -/// late String optionalWithComputedDefault = _default(); -/// -/// String _default() => 'computed'; -/// } -/// ``` -@Deprecated("Use `nullable` property") -const ConfigurationItemAttribute optionalConfiguration = - ConfigurationItemAttribute._(ConfigurationItemAttributeType.optional); - -/// Represents an exception thrown when reading data into a [Configuration] fails. -/// -/// This exception provides detailed information about the configuration error, -/// including the configuration object where the error occurred, the error message, -/// and optionally, the key path to the problematic configuration item. -/// -/// The class offers two constructors: -/// 1. A general constructor for creating exceptions with custom messages. -/// 2. A specialized constructor [ConfigurationException.missingKeys] for creating -/// exceptions specifically related to missing required keys. -/// -/// The [toString] method provides a formatted error message that includes the -/// configuration type, the key path (if available), and the error message. -/// -/// Usage: -/// ```dart -/// throw ConfigurationException( -/// myConfig, -/// "Invalid value", -/// keyPath: ['server', 'port'], -/// ); -/// ``` -/// -/// Or for missing keys: -/// ```dart -/// throw ConfigurationException.missingKeys( -/// myConfig, -/// ['apiKey', 'secret'], -/// ); -/// ``` -class ConfigurationException { - /// Creates a new [ConfigurationException] instance. - /// - /// This constructor is used to create an exception that provides information - /// about a configuration error. - /// - /// Parameters: - /// - [configuration]: The [Configuration] object where the error occurred. - /// - [message]: A string describing the error. - /// - [keyPath]: An optional list of keys or indices that specify the path to - /// the problematic configuration item. Defaults to an empty list. - /// - /// Example: - /// ```dart - /// throw ConfigurationException( - /// myConfig, - /// "Invalid port number", - /// keyPath: ['server', 'port'], - /// ); - /// ``` - ConfigurationException( - this.configuration, - this.message, { - this.keyPath = const [], - }); - - /// Creates a [ConfigurationException] for missing required keys. - /// - /// This constructor is specifically used to create an exception when one or more - /// required keys are missing from the configuration. - /// - /// Parameters: - /// - [configuration]: The [Configuration] object where the missing keys were detected. - /// - [missingKeys]: A list of strings representing the names of the missing required keys. - /// - [keyPath]: An optional list of keys or indices that specify the path to the - /// configuration item where the missing keys were expected. Defaults to an empty list. - /// - /// The [message] is automatically generated to list all the missing keys. - /// - /// Example: - /// ```dart - /// throw ConfigurationException.missingKeys( - /// myConfig, - /// ['apiKey', 'secret'], - /// keyPath: ['server', 'authentication'], - /// ); - /// ``` - ConfigurationException.missingKeys( - this.configuration, - List missingKeys, { - this.keyPath = const [], - }) : message = - "missing required key(s): ${missingKeys.map((s) => "'$s'").join(", ")}"; - - /// The [Configuration] instance in which this exception occurred. - /// - /// This field stores a reference to the [Configuration] object that was being - /// processed when the exception was thrown. It provides context about which - /// specific configuration was involved in the error, allowing for more - /// detailed error reporting and easier debugging. - /// - /// The stored configuration can be used to access additional information - /// about the configuration state at the time of the error, which can be - /// helpful in diagnosing and resolving configuration-related issues. - final Configuration configuration; - - /// The reason for the exception. - /// - /// This field contains a string describing the specific error or reason - /// why the [ConfigurationException] was thrown. It provides detailed - /// information about what went wrong during the configuration process. - /// - /// The message can be used for logging, debugging, or displaying error - /// information to users or developers to help diagnose and fix - /// configuration-related issues. - final String message; - - /// The key path of the object being evaluated. - /// - /// Either a string (adds '.name') or an int (adds '\[value\]'). - final List keyPath; - - /// Provides a string representation of the [ConfigurationException]. - /// - /// This method generates a formatted error message that includes: - /// - The type of the configuration where the error occurred - /// - The key path to the problematic configuration item (if available) - /// - The specific error message - /// - /// The key path is constructed by joining the elements in [keyPath]: - /// - String elements are joined with dots (e.g., 'server.port') - /// - Integer elements are enclosed in square brackets (e.g., '[0]') - /// - /// If [keyPath] is empty, a general error message for the configuration is returned. - /// - /// Returns: - /// A string containing the formatted error message. - /// - /// Throws: - /// [StateError] if an element in [keyPath] is neither a String nor an int. - @override - String toString() { - if (keyPath.isEmpty) { - return "Failed to read '${configuration.runtimeType}'\n\t-> $message"; - } - final joinedKeyPath = StringBuffer(); - for (var i = 0; i < keyPath.length; i++) { - final thisKey = keyPath[i]; - if (thisKey is String) { - if (i != 0) { - joinedKeyPath.write("."); - } - joinedKeyPath.write(thisKey); - } else if (thisKey is int) { - joinedKeyPath.write("[$thisKey]"); - } else { - throw StateError("not an int or String"); - } - } - - return "Failed to read key '$joinedKeyPath' for '${configuration.runtimeType}'\n\t-> $message"; - } -} - -/// Represents an error that occurs when a [Configuration] subclass is invalid and requires a change in code. -/// -/// This exception is thrown when there's a structural or logical issue with a [Configuration] subclass -/// that cannot be resolved at runtime and requires modifications to the code itself. -/// -/// The [ConfigurationError] provides information about the specific [Configuration] type that caused the error -/// and a descriptive message explaining the nature of the invalidity. -/// -/// Properties: -/// - [type]: The Type of the [Configuration] subclass where the error occurred. -/// - [message]: A String describing the specific error or invalidity. -/// -/// Usage: -/// ```dart -/// throw ConfigurationError(MyConfig, "Missing required property 'apiKey'"); -/// ``` -/// -/// The [toString] method provides a formatted error message combining the invalid type and the error description. -class ConfigurationError { - /// Creates a new [ConfigurationError] instance. - /// - /// This constructor is used to create an error that indicates an invalid [Configuration] subclass - /// which requires changes to the code itself to resolve. - /// - /// Parameters: - /// - [type]: The [Type] of the [Configuration] subclass where the error occurred. - /// - [message]: A string describing the specific error or invalidity. - /// - /// This error is typically thrown when there's a structural or logical issue with a [Configuration] - /// subclass that cannot be resolved at runtime and requires modifications to the code. - /// - /// Example: - /// ```dart - /// throw ConfigurationError(MyConfig, "Missing required property 'apiKey'"); - /// ``` - ConfigurationError(this.type, this.message); - - /// The type of [Configuration] in which this error appears. - /// - /// This property stores the [Type] of the [Configuration] subclass that is - /// considered invalid or problematic. It provides context about which specific - /// configuration class triggered the error, allowing for more precise error - /// reporting and easier debugging. - /// - /// The stored type can be used to identify the exact [Configuration] subclass - /// that needs to be modified or corrected to resolve the error. - final Type type; - - /// The reason for the error. - /// - /// This field contains a string describing the specific error or reason - /// why the [ConfigurationError] was thrown. It provides detailed - /// information about what makes the [Configuration] subclass invalid - /// or problematic. - /// - /// The message can be used for logging, debugging, or displaying error - /// information to developers to help diagnose and fix issues related - /// to the structure or implementation of the [Configuration] subclass. - String message; - - /// Returns a string representation of the [ConfigurationError]. - /// - /// This method generates a formatted error message that includes: - /// - The type of the invalid [Configuration] subclass - /// - The specific error message describing the invalidity - /// - /// The resulting string is useful for logging, debugging, or displaying - /// error information to developers to help identify and fix issues with - /// the [Configuration] subclass implementation. - /// - /// Returns: - /// A string containing the formatted error message. - @override - String toString() { - return "Invalid configuration type '$type'. $message"; - } -} diff --git a/packages/config/lib/src/default_configurations.dart b/packages/config/lib/src/default_configurations.dart deleted file mode 100644 index f46b9b5..0000000 --- a/packages/config/lib/src/default_configurations.dart +++ /dev/null @@ -1,303 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_config/config.dart'; - -/// A [Configuration] to represent a database connection configuration. -/// -/// This class extends [Configuration] and provides properties and methods -/// for managing database connection settings. It includes properties for -/// host, port, database name, username, password, and a flag for temporary -/// databases. The class supports initialization from various sources -/// (file, string, map) and provides a custom decoder for parsing connection -/// strings. -/// -/// Properties: -/// - [host]: The host of the database to connect to (required). -/// - [port]: The port of the database to connect to (required). -/// - [databaseName]: The name of the database to connect to (required). -/// - [username]: A username for authenticating to the database (optional). -/// - [password]: A password for authenticating to the database (optional). -/// - [isTemporary]: A flag to represent permanence, used for test suites (optional). -/// -/// The [decode] method allows parsing of connection strings or maps to -/// populate the configuration properties. -class DatabaseConfiguration extends Configuration { - /// Default constructor for DatabaseConfiguration. - /// - /// Creates a new instance of DatabaseConfiguration without initializing any properties. - /// Properties can be set manually or through the decode method after instantiation. - DatabaseConfiguration(); - - /// Creates a [DatabaseConfiguration] instance from a file. - /// - /// This named constructor initializes the configuration by reading from a file. - /// The file path is passed to the superclass constructor [Configuration.fromFile]. - /// - /// Parameters: - /// [file]: The path to the configuration file. - DatabaseConfiguration.fromFile(super.file) : super.fromFile(); - - /// Creates a [DatabaseConfiguration] instance from a YAML string. - /// - /// This named constructor initializes the configuration by parsing a YAML string. - /// The YAML string is passed to the superclass constructor [Configuration.fromString]. - /// - /// Parameters: - /// [yaml]: A string containing YAML-formatted configuration data. - DatabaseConfiguration.fromString(super.yaml) : super.fromString(); - - /// Creates a [DatabaseConfiguration] instance from a Map. - /// - /// This named constructor initializes the configuration using a Map of key-value pairs. - /// The Map is passed to the superclass constructor [Configuration.fromMap]. - /// - /// Parameters: - /// [yaml]: A Map containing configuration data. - DatabaseConfiguration.fromMap(super.yaml) : super.fromMap(); - - /// Creates a [DatabaseConfiguration] instance with all connection information provided. - /// - /// This named constructor allows for the direct initialization of all database connection - /// properties in a single call. It sets both required and optional properties. - /// - /// Parameters: - /// [username]: The username for database authentication (optional). - /// [password]: The password for database authentication (optional). - /// [host]: The host address of the database server (required). - /// [port]: The port number on which the database server is listening (required). - /// [databaseName]: The name of the specific database to connect to (required). - /// [isTemporary]: A flag indicating if this is a temporary database connection (optional, defaults to false). - /// - /// This constructor provides a convenient way to create a fully configured - /// [DatabaseConfiguration] object when all connection details are known in advance. - DatabaseConfiguration.withConnectionInfo( - this.username, - this.password, - this.host, - this.port, - this.databaseName, { - this.isTemporary = false, - }); - - /// The host of the database to connect to. - /// - /// This property represents the hostname or IP address of the database server - /// that this configuration will connect to. It is a required field and must be - /// set before attempting to establish a database connection. - /// - /// The value should be a valid hostname (e.g., 'localhost', 'db.example.com') - /// or an IP address (e.g., '192.168.1.100'). - /// - /// This property is marked as 'late', which means it must be initialized - /// before it's first used, but not necessarily in the constructor. - late String host; - - /// The port of the database to connect to. - /// - /// This property represents the network port number on which the database server - /// is listening for connections. It is a required field and must be set before - /// attempting to establish a database connection. - /// - /// The value should be a valid port number, typically an integer between 0 and 65535. - /// Common database port numbers include 5432 for PostgreSQL, 3306 for MySQL, - /// and 1433 for SQL Server, but the actual port may vary depending on the specific - /// database configuration. - /// - /// This property is marked as 'late', which means it must be initialized - /// before it's first used, but not necessarily in the constructor. - late int port; - - /// The name of the database to connect to. - /// - /// This property represents the specific database name within the database server - /// that this configuration will target. It is a required field and must be set - /// before attempting to establish a database connection. - /// - /// The value should be a valid database name as defined in your database server. - /// For example, it could be 'myapp_database', 'users_db', or 'production_data'. - /// - /// This property is marked as 'late', which means it must be initialized - /// before it's first used, but not necessarily in the constructor. - late String databaseName; - - /// A username for authenticating to the database. - /// - /// This property represents the username used for authentication when connecting - /// to the database. It is an optional field, meaning it can be null if authentication - /// is not required or if other authentication methods are used. - /// - /// The value should be a string containing the username as configured in the - /// database server for this particular connection. For example, it could be - /// 'db_user', 'admin', or 'app_service_account'. - /// - /// If this property is set, it is typically used in conjunction with the [password] - /// property to form a complete set of credentials for database authentication. - String? username; - - /// A password for authenticating to the database. - /// - /// This property represents the password used for authentication when connecting - /// to the database. It is an optional field, meaning it can be null if authentication - /// is not required or if other authentication methods are used. - /// - /// The value should be a string containing the password that corresponds to the - /// [username] for this database connection. For security reasons, it's important - /// to handle this value carefully and avoid exposing it in logs or user interfaces. - /// - /// If this property is set, it is typically used in conjunction with the [username] - /// property to form a complete set of credentials for database authentication. - /// - /// Note: In production environments, it's recommended to use secure methods of - /// storing and retrieving passwords, such as environment variables or secure - /// secret management systems, rather than hardcoding them in the configuration. - String? password; - - /// A flag to represent permanence of the database. - /// - /// This flag is used for test suites that use a temporary database to run tests against, - /// dropping it after the tests are complete. - /// This property is optional. - bool isTemporary = false; - - /// Decodes and populates the configuration from a given value. - /// - /// This method can handle two types of input: - /// 1. A Map: In this case, it delegates to the superclass's decode method. - /// 2. A String: It parses the string as a URI to extract database connection details. - /// - /// For string input, it extracts: - /// - Host and port from the URI - /// - Database name from the path (if present) - /// - Username and password from the userInfo part of the URI (if present) - /// - /// After parsing, it calls the validate method to ensure all required fields are set. - /// - /// Parameters: - /// [value]: The input to decode. Can be a Map or a String. - /// - /// Throws: - /// [ConfigurationException]: If the input is neither a Map nor a String. - @override - void decode(dynamic value) { - if (value is Map) { - super.decode(value); - return; - } - - if (value is! String) { - throw ConfigurationException( - this, - "'${value.runtimeType}' is not assignable; must be a object or string", - ); - } - - final uri = Uri.parse(value); - host = uri.host; - port = uri.port; - if (uri.pathSegments.length == 1) { - databaseName = uri.pathSegments.first; - } - - if (uri.userInfo == '') { - validate(); - return; - } - - final authority = uri.userInfo.split(":"); - if (authority.isNotEmpty) { - username = Uri.decodeComponent(authority.first); - } - if (authority.length > 1) { - password = Uri.decodeComponent(authority.last); - } - - validate(); - } -} - -/// A [Configuration] to represent an external HTTP API. -/// -/// This class extends [Configuration] and provides properties for managing -/// external API connection settings. It includes properties for the base URL, -/// client ID, and client secret. -/// -/// The class supports initialization from various sources (file, string, map) -/// through its constructors. -/// -/// Properties: -/// - [baseURL]: The base URL of the described API (required). -/// - [clientID]: The client ID for API authentication (optional). -/// - [clientSecret]: The client secret for API authentication (optional). -/// -/// Constructors: -/// - Default constructor: Creates an empty instance. -/// - [fromFile]: Initializes from a configuration file. -/// - [fromString]: Initializes from a YAML string. -/// - [fromMap]: Initializes from a Map. -class APIConfiguration extends Configuration { - /// Default constructor for APIConfiguration. - /// - /// Creates a new instance of APIConfiguration without initializing any properties. - /// Properties can be set manually or through the decode method after instantiation. - APIConfiguration(); - - /// Creates an [APIConfiguration] instance from a file. - /// - /// This named constructor initializes the configuration by reading from a file. - /// The file path is passed to the superclass constructor [Configuration.fromFile]. - /// - /// Parameters: - /// [file]: The path to the configuration file. - APIConfiguration.fromFile(super.file) : super.fromFile(); - - /// Creates an [APIConfiguration] instance from a YAML string. - /// - /// This named constructor initializes the configuration by parsing a YAML string. - /// The YAML string is passed to the superclass constructor [Configuration.fromString]. - /// - /// Parameters: - /// [yaml]: A string containing YAML-formatted configuration data. - APIConfiguration.fromString(super.yaml) : super.fromString(); - - /// Creates an [APIConfiguration] instance from a Map. - /// - /// This named constructor initializes the configuration using a Map of key-value pairs. - /// The Map is passed to the superclass constructor [Configuration.fromMap]. - /// - /// Parameters: - /// [yaml]: A Map containing configuration data. - APIConfiguration.fromMap(super.yaml) : super.fromMap(); - - /// The base URL of the described API. - /// - /// This property represents the root URL for the external API that this configuration - /// is describing. It is a required field and must be set before using the API configuration. - /// - /// The value should be a complete URL, including the protocol (http or https), - /// domain name, and optionally the port and base path. It serves as the foundation - /// for constructing full URLs to specific API endpoints. - /// - /// This property is marked as 'late', which means it must be initialized - /// before it's first used, but not necessarily in the constructor. - /// - /// This property is required. - /// Example: https://external.api.com:80/resources - late String baseURL; - - /// The client ID for API authentication. - /// - /// This property is optional. - String? clientID; - - /// The client secret for API authentication. - /// - /// This property is optional. - String? clientSecret; -} diff --git a/packages/config/lib/src/intermediate_exception.dart b/packages/config/lib/src/intermediate_exception.dart deleted file mode 100644 index 193ede1..0000000 --- a/packages/config/lib/src/intermediate_exception.dart +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// An exception class used for intermediate error handling. -/// -/// This class encapsulates an underlying exception and a key path, -/// allowing for more detailed error reporting in nested structures. -/// -/// [underlying] is the original exception that was caught. -/// [keyPath] is a list representing the path to the error in a nested structure. -class IntermediateException implements Exception { - /// Creates an [IntermediateException] with the given [underlying] exception and [keyPath]. - /// - /// [underlying] is the original exception that was caught. - /// [keyPath] is a list representing the path to the error in a nested structure. - IntermediateException(this.underlying, this.keyPath); - - /// The original exception that was caught. - /// - /// This field stores the underlying exception that triggered the creation - /// of this [IntermediateException]. It can be of any type, hence the - /// [dynamic] type annotation. - final dynamic underlying; - - /// A list representing the path to the error in a nested structure. - /// - /// This field stores the key path as a list of dynamic elements. Each element - /// in the list represents a key or index in the nested structure, helping to - /// pinpoint the exact location of the error. - final List keyPath; -} diff --git a/packages/config/lib/src/mirror_property.dart b/packages/config/lib/src/mirror_property.dart deleted file mode 100644 index 3230821..0000000 --- a/packages/config/lib/src/mirror_property.dart +++ /dev/null @@ -1,504 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:mirrors'; -import 'package:protevus_config/config.dart'; - -/// A codec for decoding and encoding values based on their type using reflection. -/// -/// This class uses the dart:mirrors library to introspect types and provide -/// appropriate decoding and encoding logic for various data types including -/// int, bool, Configuration subclasses, List, and Map. -/// -/// The class supports: -/// - Decoding values from various input formats to their corresponding Dart types. -/// - Generating source code strings for decoding operations. -/// - Validating Configuration subclasses to ensure they have a default constructor. -/// -/// Usage: -/// ```dart -/// final codec = MirrorTypeCodec(reflectType(SomeType)); -/// final decodedValue = codec._decodeValue(inputValue); -/// final sourceCode = codec.source; -/// ``` -/// -/// Note: This class relies heavily on reflection, which may have performance -/// implications and is not supported in all Dart runtime environments. -class MirrorTypeCodec { - /// Constructor for MirrorTypeCodec. - /// - /// This constructor takes a [TypeMirror] as its parameter and initializes the codec. - /// It performs a validation check for Configuration subclasses to ensure they have - /// a default (unnamed) constructor with all optional parameters. - /// - /// Parameters: - /// [type]: The TypeMirror representing the type for which this codec is being created. - /// - /// Throws: - /// [StateError]: If the type is a subclass of Configuration and doesn't have - /// an unnamed constructor with all optional parameters. - /// - /// The constructor specifically: - /// 1. Checks if the type is a subclass of Configuration. - /// 2. If so, it verifies the presence of a default constructor. - /// 3. Throws a StateError if the required constructor is missing, providing - /// a detailed error message to guide the developer. - MirrorTypeCodec(this.type) { - if (type.isSubtypeOf(reflectType(Configuration))) { - final klass = type as ClassMirror; - final classHasDefaultConstructor = klass.declarations.values.any((dm) { - return dm is MethodMirror && - dm.isConstructor && - dm.constructorName == Symbol.empty && - dm.parameters.every((p) => p.isOptional == true); - }); - - if (!classHasDefaultConstructor) { - throw StateError( - "Failed to compile '${type.reflectedType}'\n\t-> " - "'Configuration' subclasses MUST declare an unnammed constructor " - "(i.e. '${type.reflectedType}();') if they are nested.", - ); - } - } - } - - /// The [TypeMirror] representing the type for which this codec is created. - /// - /// This field stores the reflection information about the type that this - /// [MirrorTypeCodec] instance is designed to handle. It is used throughout - /// the class to determine how to decode and encode values of this type. - final TypeMirror type; - - /// Decodes a value based on its type using reflection. - /// - /// This method takes a [dynamic] input value and decodes it according to the - /// type specified by this codec's [type] property. It supports decoding for: - /// - Integers - /// - Booleans - /// - Configuration subclasses - /// - Lists - /// - Maps - /// - /// If the input type doesn't match any of these, the original value is returned. - /// - /// Parameters: - /// [value]: The input value to be decoded. - /// - /// Returns: - /// The decoded value, with its type corresponding to the codec's [type]. - /// - /// Throws: - /// May throw exceptions if decoding fails, particularly for nested structures - /// like Lists and Maps. - dynamic _decodeValue(dynamic value) { - if (type.isSubtypeOf(reflectType(int))) { - return _decodeInt(value); - } else if (type.isSubtypeOf(reflectType(bool))) { - return _decodeBool(value); - } else if (type.isSubtypeOf(reflectType(Configuration))) { - return _decodeConfig(value); - } else if (type.isSubtypeOf(reflectType(List))) { - return _decodeList(value as List); - } else if (type.isSubtypeOf(reflectType(Map))) { - return _decodeMap(value as Map); - } - - return value; - } - - /// Decodes a boolean value from various input types. - /// - /// This method handles the conversion of input values to boolean: - /// - If the input is a String, it returns true if the string is "true" (case-sensitive), - /// and false otherwise. - /// - For non-String inputs, it attempts to cast the value directly to a bool. - /// - /// Parameters: - /// [value]: The input value to be decoded into a boolean. - /// - /// Returns: - /// A boolean representation of the input value. - /// - /// Throws: - /// TypeError: If the input cannot be cast to a bool (for non-String inputs). - dynamic _decodeBool(dynamic value) { - if (value is String) { - return value == "true"; - } - - return value as bool; - } - - /// Decodes an integer value from various input types. - /// - /// This method handles the conversion of input values to integers: - /// - If the input is a String, it attempts to parse it as an integer. - /// - For non-String inputs, it attempts to cast the value directly to an int. - /// - /// Parameters: - /// [value]: The input value to be decoded into an integer. - /// - /// Returns: - /// An integer representation of the input value. - /// - /// Throws: - /// FormatException: If the input String cannot be parsed as an integer. - /// TypeError: If the input cannot be cast to an int (for non-String inputs). - dynamic _decodeInt(dynamic value) { - if (value is String) { - return int.parse(value); - } - - return value as int; - } - - /// Decodes a Configuration object from the given input. - /// - /// This method creates a new instance of the Configuration subclass - /// represented by this codec's type, and then decodes the input object - /// into it. - /// - /// Parameters: - /// [object]: The input object to be decoded into a Configuration instance. - /// - /// Returns: - /// A new instance of the Configuration subclass, populated with the decoded data. - /// - /// Throws: - /// May throw exceptions if the instantiation fails or if the decode - /// method of the Configuration subclass throws an exception. - Configuration _decodeConfig(dynamic object) { - final item = (type as ClassMirror).newInstance(Symbol.empty, []).reflectee - as Configuration; - - item.decode(object); - - return item; - } - - /// Decodes a List value based on the codec's type parameters. - /// - /// This method creates a new List instance and populates it with decoded elements - /// from the input List. It uses an inner decoder to process each element according - /// to the type specified in the codec's type arguments. - /// - /// Parameters: - /// [value]: The input List to be decoded. - /// - /// Returns: - /// A new List containing the decoded elements. - /// - /// Throws: - /// IntermediateException: If an error occurs during the decoding of any element. - /// The exception includes the index of the problematic element in its keyPath. - /// - /// Note: - /// - The method creates a growable List. - /// - It uses reflection to create the new List instance. - /// - Each element is decoded using an inner decoder based on the first type argument. - List _decodeList(List value) { - final out = (type as ClassMirror).newInstance(const Symbol('empty'), [], { - const Symbol('growable'): true, - }).reflectee as List; - final innerDecoder = MirrorTypeCodec(type.typeArguments.first); - for (var i = 0; i < value.length; i++) { - try { - final v = innerDecoder._decodeValue(value[i]); - out.add(v); - } on IntermediateException catch (e) { - e.keyPath.add(i); - rethrow; - } catch (e) { - throw IntermediateException(e, [i]); - } - } - return out; - } - - /// Decodes a Map value based on the codec's type parameters. - /// - /// This method creates a new Map instance and populates it with decoded key-value pairs - /// from the input Map. It uses an inner decoder to process each value according - /// to the type specified in the codec's type arguments. - /// - /// Parameters: - /// [value]: The input Map to be decoded. - /// - /// Returns: - /// A new Map containing the decoded key-value pairs. - /// - /// Throws: - /// StateError: If any key in the input Map is not a String. - /// IntermediateException: If an error occurs during the decoding of any value. - /// The exception includes the key of the problematic value in its keyPath. - /// - /// Note: - /// - The method creates a new Map instance using reflection. - /// - It enforces that all keys must be Strings. - /// - Each value is decoded using an inner decoder based on the last type argument. - Map _decodeMap(Map value) { - final map = - (type as ClassMirror).newInstance(Symbol.empty, []).reflectee as Map; - - final innerDecoder = MirrorTypeCodec(type.typeArguments.last); - value.forEach((key, val) { - if (key is! String) { - throw StateError('cannot have non-String key'); - } - - try { - map[key] = innerDecoder._decodeValue(val); - } on IntermediateException catch (e) { - e.keyPath.add(key); - rethrow; - } catch (e) { - throw IntermediateException(e, [key]); - } - }); - - return map; - } - - /// Returns a string representation of the expected type for this codec. - /// - /// This getter uses the [reflectedType] property of the [type] field - /// to obtain a string representation of the type that this codec is - /// expecting to handle. This is useful for generating type-specific - /// decoding logic or for debugging purposes. - /// - /// Returns: - /// A [String] representing the name of the expected type. - String get expectedType { - return type.reflectedType.toString(); - } - - /// Returns the source code for decoding a value based on its type. - /// - /// This getter generates and returns a string containing Dart code that can be used - /// to decode a value of the type represented by this codec. The returned code varies - /// depending on the type: - /// - /// - For [int], it returns code to parse integers from strings or cast to int. - /// - For [bool], it returns code to convert strings to booleans or cast to bool. - /// - For [Configuration] subclasses, it returns code to create and decode a new instance. - /// - For [List], it returns code to decode each element of the list. - /// - For [Map], it returns code to decode each value in the map. - /// - For any other type, it returns code that simply returns the input value unchanged. - /// - /// The generated code assumes the input value is named 'v'. - /// - /// Returns: - /// A [String] containing Dart code for decoding the value. - String get source { - if (type.isSubtypeOf(reflectType(int))) { - return _decodeIntSource; - } else if (type.isSubtypeOf(reflectType(bool))) { - return _decodeBoolSource; - } else if (type.isSubtypeOf(reflectType(Configuration))) { - return _decodeConfigSource; - } else if (type.isSubtypeOf(reflectType(List))) { - return _decodeListSource; - } else if (type.isSubtypeOf(reflectType(Map))) { - return _decodeMapSource; - } - - return "return v;"; - } - - /// Generates source code for decoding a List value. - /// - /// This getter creates a string containing Dart code that decodes a List - /// based on the codec's type parameters. The generated code: - /// - Creates a new List to store decoded elements. - /// - Defines an inner decoder function for processing each element. - /// - Iterates through the input List, decoding each element. - /// - Handles exceptions, wrapping them in IntermediateException with the index. - /// - /// The decoder function uses the source code from the inner codec, - /// which is based on the first type argument of the List. - /// - /// Returns: - /// A String containing the Dart code for List decoding. - String get _decodeListSource { - final typeParam = MirrorTypeCodec(type.typeArguments.first); - return """ -final out = <${typeParam.expectedType}>[]; -final decoder = (v) { - ${typeParam.source} -}; -for (var i = 0; i < (v as List).length; i++) { - try { - final innerValue = decoder(v[i]); - out.add(innerValue); - } on IntermediateException catch (e) { - e.keyPath.add(i); - rethrow; - } catch (e) { - throw IntermediateException(e, [i]); - } -} -return out; - """; - } - - /// Generates source code for decoding a Map value. - /// - /// This getter creates a string containing Dart code that decodes a Map - /// based on the codec's type parameters. The generated code: - /// - Creates a new Map to store decoded key-value pairs. - /// - Defines an inner decoder function for processing each value. - /// - Iterates through the input Map, ensuring all keys are Strings. - /// - Decodes each value using the inner decoder function. - /// - Handles exceptions, wrapping them in IntermediateException with the key. - /// - /// The decoder function uses the source code from the inner codec, - /// which is based on the last type argument of the Map. - /// - /// Returns: - /// A String containing the Dart code for Map decoding. - String get _decodeMapSource { - final typeParam = MirrorTypeCodec(type.typeArguments.last); - return """ -final map = {}; -final decoder = (v) { - ${typeParam.source} -}; -v.forEach((key, val) { - if (key is! String) { - throw StateError('cannot have non-String key'); - } - - try { - map[key] = decoder(val); - } on IntermediateException catch (e) { - e.keyPath.add(key); - rethrow; - } catch (e) { - throw IntermediateException(e, [key]); - } -}); - -return map; - """; - } - - /// Generates source code for decoding a Configuration object. - /// - /// This getter returns a string containing Dart code that: - /// 1. Creates a new instance of the Configuration subclass represented by [expectedType]. - /// 2. Calls the `decode` method on this new instance, passing in the input value 'v'. - /// 3. Returns the decoded Configuration object. - /// - /// The generated code assumes the input value is named 'v'. - /// - /// Returns: - /// A [String] containing Dart code for decoding a Configuration object. - String get _decodeConfigSource { - return """ - final item = $expectedType(); - - item.decode(v); - - return item; - """; - } - - /// Generates source code for decoding an integer value. - /// - /// This getter returns a string containing Dart code that: - /// 1. Checks if the input value 'v' is a String. - /// 2. If it is a String, parses it to an integer using `int.parse()`. - /// 3. If it's not a String, casts the value directly to an int. - /// - /// The generated code assumes the input value is named 'v'. - /// - /// Returns: - /// A [String] containing Dart code for decoding an integer value. - String get _decodeIntSource { - return """ - if (v is String) { - return int.parse(v); - } - - return v as int; -"""; - } - - /// Generates source code for decoding a boolean value. - /// - /// This getter returns a string containing Dart code that: - /// 1. Checks if the input value 'v' is a String. - /// 2. If it is a String, returns true if it equals "true", false otherwise. - /// 3. If it's not a String, casts the value directly to a bool. - /// - /// The generated code assumes the input value is named 'v'. - /// - /// Returns: - /// A [String] containing Dart code for decoding a boolean value. - String get _decodeBoolSource { - return """ - if (v is String) { - return v == "true"; - } - - return v as bool; - """; - } -} - -/// Represents a property of a Configuration class, providing metadata and decoding capabilities. -/// -/// This class encapsulates information about a single property within a Configuration -/// subclass, including its name, whether it's required, and how to decode its value. -/// -/// It uses the [MirrorTypeCodec] to handle the decoding of values based on the property's type. -/// -/// Key features: -/// - Extracts the property name from the [VariableMirror]. -/// - Determines if the property is required based on its metadata. -/// - Provides access to the decoding logic through the [codec] field. -/// - Offers a method to decode input values, taking into account environment variables. -/// -/// Usage: -/// ```dart -/// final property = MirrorConfigurationProperty(someVariableMirror); -/// final decodedValue = property.decode(inputValue); -/// ``` -class MirrorConfigurationProperty { - MirrorConfigurationProperty(this.property) - : codec = MirrorTypeCodec(property.type); - - final VariableMirror property; - final MirrorTypeCodec codec; - - String get key => MirrorSystem.getName(property.simpleName); - bool get isRequired => _isVariableRequired(property); - - String get source => codec.source; - - static bool _isVariableRequired(VariableMirror m) { - try { - final attribute = m.metadata - .firstWhere( - (im) => - im.type.isSubtypeOf(reflectType(ConfigurationItemAttribute)), - ) - .reflectee as ConfigurationItemAttribute; - - return attribute.type == ConfigurationItemAttributeType.required; - } catch (_) { - return false; - } - } - - dynamic decode(dynamic input) { - return codec._decodeValue(Configuration.getEnvironmentOrValue(input)); - } -} diff --git a/packages/config/lib/src/runtime.dart b/packages/config/lib/src/runtime.dart deleted file mode 100644 index deda901..0000000 --- a/packages/config/lib/src/runtime.dart +++ /dev/null @@ -1,332 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:mirrors'; -import 'package:protevus_config/config.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// ConfigurationRuntimeImpl is a class that extends ConfigurationRuntime and implements SourceCompiler. -/// -/// This class is responsible for handling the runtime configuration of the application. It uses -/// Dart's mirror system to introspect and manipulate configuration objects at runtime. -/// -/// Key features: -/// - Decodes configuration input from a Map into a strongly-typed Configuration object -/// - Validates the configuration to ensure all required fields are present -/// - Generates implementation code for decoding and validating configurations -/// - Collects and manages configuration properties -/// -/// The class provides methods for decoding input, validating configurations, and compiling -/// source code for runtime configuration handling. It also includes utility methods for -/// collecting properties and generating implementation strings for decode and validate operations. -class ConfigurationRuntimeImpl extends ConfigurationRuntime - implements SourceCompiler { - /// Constructs a ConfigurationRuntimeImpl instance for the given type. - /// - /// The constructor initializes the type and properties of the configuration runtime. - /// It collects properties using the `_collectProperties` method. - /// - /// Parameters: - /// - type: The ClassMirror representing the type of the configuration object. - ConfigurationRuntimeImpl(this.type) { - // Should be done in the constructor so a type check could be run. - properties = _collectProperties(); - } - - /// The ClassMirror representing the type of the configuration object. - /// - /// This field stores the reflection information for the configuration class, - /// allowing for runtime introspection and manipulation of the configuration object. - final ClassMirror type; - - /// A map of property names to MirrorConfigurationProperty objects. - /// - /// This late-initialized field stores the configuration properties of the class. - /// Each key is a string representing the property name, and the corresponding value - /// is a MirrorConfigurationProperty object containing metadata about that property. - /// - /// The properties are collected during the initialization of the ConfigurationRuntimeImpl - /// instance and are used for decoding, validating, and generating implementation code - /// for the configuration. - late final Map properties; - - /// Decodes the input map into the given configuration object. - /// - /// This method takes a [Configuration] object and a [Map] input, and populates - /// the configuration object with the decoded values from the input map. - /// - /// The method performs the following steps: - /// 1. Creates a copy of the input map. - /// 2. Iterates through each property in the configuration. - /// 3. For each property, it attempts to decode the corresponding value from the input. - /// 4. If the decoded value is not null and of the correct type, it sets the value on the configuration object. - /// 5. After processing all properties, it checks if there are any unexpected keys left in the input map. - /// - /// Throws a [ConfigurationException] if: - /// - A decoded value is of the wrong type. - /// - There are unexpected keys in the input map after processing all known properties. - /// - /// Parameters: - /// - [configuration]: The Configuration object to be populated with decoded values. - /// - [input]: A Map containing the input values to be decoded. - @override - void decode(Configuration configuration, Map input) { - final values = Map.from(input); - properties.forEach((name, property) { - final takingValue = values.remove(name); - if (takingValue == null) { - return; - } - - final decodedValue = tryDecode( - configuration, - name, - () => property.decode(takingValue), - ); - if (decodedValue == null) { - return; - } - - if (!reflect(decodedValue).type.isAssignableTo(property.property.type)) { - throw ConfigurationException( - configuration, - "input is wrong type", - keyPath: [name], - ); - } - - final mirror = reflect(configuration); - mirror.setField(property.property.simpleName, decodedValue); - }); - - if (values.isNotEmpty) { - throw ConfigurationException( - configuration, - "unexpected keys found: ${values.keys.map((s) => "'$s'").join(", ")}.", - ); - } - } - - /// Generates the implementation string for the decode method. - /// - /// This getter creates a String representation of the decode method implementation. - /// The generated code does the following: - /// 1. Creates a copy of the input map. - /// 2. Iterates through each property in the configuration. - /// 3. For each property: - /// - Retrieves the value from the input, considering environment variables. - /// - If a value exists, it attempts to decode it. - /// - Checks if the decoded value is of the expected type. - /// - If valid, assigns the decoded value to the configuration object. - /// 4. After processing all properties, it checks for any unexpected keys in the input. - /// - /// The generated code includes proper error handling, throwing ConfigurationExceptions - /// for type mismatches or unexpected input keys. - /// - /// Returns: - /// A String containing the implementation code for the decode method. - String get decodeImpl { - final buf = StringBuffer(); - - buf.writeln("final valuesCopy = Map.from(input);"); - properties.forEach((k, v) { - buf.writeln("{"); - buf.writeln( - "final v = Configuration.getEnvironmentOrValue(valuesCopy.remove('$k'));", - ); - buf.writeln("if (v != null) {"); - buf.writeln( - " final decodedValue = tryDecode(configuration, '$k', () { ${v.source} });", - ); - buf.writeln(" if (decodedValue is! ${v.codec.expectedType}) {"); - buf.writeln( - " throw ConfigurationException(configuration, 'input is wrong type', keyPath: ['$k']);", - ); - buf.writeln(" }"); - buf.writeln( - " (configuration as ${type.reflectedType}).$k = decodedValue as ${v.codec.expectedType};", - ); - buf.writeln("}"); - buf.writeln("}"); - }); - - buf.writeln( - """ - if (valuesCopy.isNotEmpty) { - throw ConfigurationException(configuration, - "unexpected keys found: \${valuesCopy.keys.map((s) => "'\$s'").join(", ")}."); - } - """, - ); - - return buf.toString(); - } - - /// Validates the given configuration object to ensure all required properties are present. - /// - /// This method performs the following steps: - /// 1. Creates a mirror of the configuration object for reflection. - /// 2. Iterates through all properties of the configuration. - /// 3. For each property, it checks if: - /// - The property is required. - /// - The property value is null or cannot be accessed. - /// 4. Collects a list of all required properties that are missing or null. - /// 5. If any required properties are missing, it throws a ConfigurationException. - /// - /// Parameters: - /// - configuration: The Configuration object to be validated. - /// - /// Throws: - /// - ConfigurationException: If any required properties are missing or null. - @override - void validate(Configuration configuration) { - final configMirror = reflect(configuration); - final requiredValuesThatAreMissing = properties.values - .where((v) { - try { - final value = configMirror.getField(Symbol(v.key)).reflectee; - return v.isRequired && value == null; - } catch (e) { - return true; - } - }) - .map((v) => v.key) - .toList(); - - if (requiredValuesThatAreMissing.isNotEmpty) { - throw ConfigurationException.missingKeys( - configuration, - requiredValuesThatAreMissing, - ); - } - } - - /// Collects and returns a map of configuration properties for the current type. - /// - /// This method traverses the class hierarchy, starting from the current type - /// up to (but not including) the Configuration class, collecting all non-static - /// and non-private variable declarations. It then creates a map where: - /// - /// - Keys are the string names of the properties - /// - Values are MirrorConfigurationProperty objects created from the VariableMirrors - /// - /// The method performs the following steps: - /// 1. Initializes an empty list to store VariableMirror objects. - /// 2. Traverses the class hierarchy, collecting relevant VariableMirrors. - /// 3. Creates a map from the collected VariableMirrors. - /// 4. Returns the resulting map of property names to MirrorConfigurationProperty objects. - /// - /// Returns: - /// A Map representing the configuration properties. - Map _collectProperties() { - final declarations = []; - - var ptr = type; - while (ptr.isSubclassOf(reflectClass(Configuration))) { - declarations.addAll( - ptr.declarations.values - .whereType() - .where((vm) => !vm.isStatic && !vm.isPrivate), - ); - ptr = ptr.superclass!; - } - - final m = {}; - for (final vm in declarations) { - final name = MirrorSystem.getName(vm.simpleName); - m[name] = MirrorConfigurationProperty(vm); - } - return m; - } - - /// Generates the implementation string for the validate method. - /// - /// This getter creates a String representation of the validate method implementation. - /// The generated code does the following: - /// 1. Initializes a list to store missing keys. - /// 2. Iterates through each property in the configuration. - /// 3. For each property: - /// - Attempts to retrieve the property value from the configuration object. - /// - Checks if the property is required and its value is null. - /// - If required and null, or if an error occurs during retrieval, adds the property name to the missing keys list. - /// 4. After checking all properties, throws a ConfigurationException if any keys are missing. - /// - /// The generated code includes error handling to catch any issues during property access. - /// - /// Returns: - /// A String containing the implementation code for the validate method. - String get validateImpl { - final buf = StringBuffer(); - - const startValidation = """ - final missingKeys = []; -"""; - buf.writeln(startValidation); - properties.forEach((name, property) { - final propCheck = """ - try { - final $name = (configuration as ${type.reflectedType}).$name; - if (${property.isRequired} && $name == null) { - missingKeys.add('$name'); - } - } on Error catch (e) { - missingKeys.add('$name'); - }"""; - buf.writeln(propCheck); - }); - const throwIfErrors = """ - if (missingKeys.isNotEmpty) { - throw ConfigurationException.missingKeys(configuration, missingKeys); - }"""; - buf.writeln(throwIfErrors); - - return buf.toString(); - } - - /// Compiles the configuration runtime implementation into a string representation. - /// - /// This method generates the source code for a ConfigurationRuntimeImpl class - /// that extends ConfigurationRuntime. The generated class includes implementations - /// for the 'decode' and 'validate' methods. - /// - /// The method performs the following steps: - /// 1. Retrieves import directives for the current type and adds them to the generated code. - /// 2. Adds an import for the intermediate_exception.dart file. - /// 3. Creates an instance of ConfigurationRuntimeImpl. - /// 4. Generates the class definition with implementations of decode and validate methods. - /// - /// Parameters: - /// - ctx: A BuildContext object used to retrieve import directives. - /// - /// Returns: - /// A Future containing the generated source code for the ConfigurationRuntimeImpl class. - @override - Future compile(BuildContext ctx) async { - final directives = await ctx.getImportDirectives( - uri: type.originalDeclaration.location!.sourceUri, - alsoImportOriginalFile: true, - ) - ..add("import 'package:conduit_config/src/intermediate_exception.dart';"); - return """ - ${directives.join("\n")} - final instance = ConfigurationRuntimeImpl(); - class ConfigurationRuntimeImpl extends ConfigurationRuntime { - @override - void decode(Configuration configuration, Map input) { - $decodeImpl - } - - @override - void validate(Configuration configuration) { - $validateImpl - } - } - """; - } -} diff --git a/packages/config/pubspec.yaml b/packages/config/pubspec.yaml deleted file mode 100644 index c2953d9..0000000 --- a/packages/config/pubspec.yaml +++ /dev/null @@ -1,19 +0,0 @@ -name: protevus_config -description: The Configuration Package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.2 - -# Add regular dependencies here. -dependencies: - protevus_runtime: ^0.0.1 - meta: ^1.3.0 - yaml: ^3.1.2 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/config/test/.gitkeep b/packages/config/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/database/.gitignore b/packages/database/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/database/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/database/CHANGELOG.md b/packages/database/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/database/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/database/LICENSE.md b/packages/database/LICENSE.md deleted file mode 100644 index 0fd0d03..0000000 --- a/packages/database/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) - -The Laravel Framework is Copyright (c) Taylor Otwell -The Fabric Framework is Copyright (c) Vieo, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/database/README.md b/packages/database/README.md deleted file mode 100644 index 757f4c9..0000000 --- a/packages/database/README.md +++ /dev/null @@ -1 +0,0 @@ -

\ No newline at end of file diff --git a/packages/database/analysis_options.yaml b/packages/database/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/database/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/database/lib/db.dart b/packages/database/lib/db.dart deleted file mode 100644 index ac784ce..0000000 --- a/packages/database/lib/db.dart +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library provides core functionality for data management and persistence. -/// -/// It exports several modules: -/// - `managed`: Handles managed objects and their lifecycle. -/// - `persistent_store`: Provides interfaces for data persistence. -/// - `query`: Offers query building and execution capabilities. -/// - `schema`: Defines schema-related structures and operations. -/// -/// These modules collectively form a framework for efficient data handling, -/// storage, and retrieval within the Protevus Platform. -library; - -export 'src/managed/managed.dart'; -export 'src/persistent_store/persistent_store.dart'; -export 'src/query/query.dart'; -export 'src/schema/schema.dart'; diff --git a/packages/database/lib/src/managed/attributes.dart b/packages/database/lib/src/managed/attributes.dart deleted file mode 100644 index ba974da..0000000 --- a/packages/database/lib/src/managed/attributes.dart +++ /dev/null @@ -1,319 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:meta/meta_meta.dart'; - -/// Annotation to configure the table definition of a [ManagedObject]. -/// -/// Adding this metadata to a table definition (`T` in `ManagedObject`) configures the behavior of the underlying table. -/// For example: -/// -/// class User extends ManagedObject<_User> implements _User {} -/// -/// @Table(name: "_Account"); -/// class _User { -/// @primaryKey -/// int id; -/// -/// String name; -/// String email; -/// } -class Table { - /// Default constructor. - /// - /// If [name] is provided, the name of the underlying table will be its value. Otherwise, - /// the name of the underlying table matches the name of the table definition class. - /// - /// See also [Table.unique] for the behavior of [uniquePropertySet]. - const Table({ - this.useSnakeCaseName = false, - this.name, - this.uniquePropertySet, - this.useSnakeCaseColumnName = false, - }); - - /// Configures each instance of a table definition to be unique for the combination of [properties]. - /// - /// Adding this metadata to a table definition requires that all instances of this type - /// must be unique for the combined properties in [properties]. [properties] must contain symbolic names of - /// properties declared in the table definition, and those properties must be either attributes - /// or belongs-to relationship properties. See [Table] for example. - const Table.unique(List properties) - : this(uniquePropertySet: properties); - - /// Each instance of the associated table definition is unique for these properties. - /// - /// null if not set. - final List? uniquePropertySet; - - /// Useful to indicate using new snake_case naming convention if [name] is not set - /// This property defaults to false to avoid breaking change ensuring backward compatibility - final bool useSnakeCaseName; - - /// The name of the underlying database table. - /// - /// If this value is not set, the name defaults to the name of the table definition class using snake_case naming convention without the prefix '_' underscore. - final String? name; - - /// Useful to indicate using new snake_case naming convention for columns. - /// This property defaults to false to avoid breaking change ensuring backward compatibility - /// - /// If a column is annotated with `@Column()` with a non-`null` value for - /// `name` or `useSnakeCaseName`, that value takes precedent. - final bool useSnakeCaseColumnName; -} - -/// Possible values for a delete rule in a [Relate]. -enum DeleteRule { - /// Prevents a delete operation if the would-be deleted [ManagedObject] still has references to this relationship. - restrict, - - /// All objects with a foreign key reference to the deleted object will also be deleted. - cascade, - - /// All objects with a foreign key reference to the deleted object will have that reference nullified. - nullify, - - /// All objects with a foreign key reference to the deleted object will have that reference set to the column's default value. - setDefault -} - -/// Metadata to configure property of [ManagedObject] as a foreign key column. -/// -/// A property in a [ManagedObject]'s table definition with this metadata will map to a database column -/// that has a foreign key reference to the related [ManagedObject]. Relationships are made up of two [ManagedObject]s, where each -/// has a property that refers to the other. Only one of those properties may have this metadata. The property with this metadata -/// resolves to a column in the database. The relationship property without this metadata resolves to a row or rows in the database. -class Relate { - /// Creates an instance of this type. - const Relate( - this.inversePropertyName, { - this.onDelete = DeleteRule.nullify, - this.isRequired = false, - }); - - const Relate.deferred(DeleteRule onDelete, {bool isRequired = false}) - : this(_deferredSymbol, onDelete: onDelete, isRequired: isRequired); - - /// The symbol for the property in the related [ManagedObject]. - /// - /// This value must be the symbol for the property in the related [ManagedObject]. This creates the link between - /// two sides of a relationship between a [ManagedObject]. - final Symbol inversePropertyName; - - /// The delete rule to use when a related instance is deleted. - /// - /// This rule dictates how the database should handle deleting objects that have relationships. See [DeleteRule] for possible options. - /// - /// If [isRequired] is true, this value may not be [DeleteRule.nullify]. This value defaults to [DeleteRule.nullify]. - final DeleteRule onDelete; - - /// Whether or not this relationship is required. - /// - /// By default, [Relate] properties are not required to support the default value of [onDelete]. - /// By setting this value to true, an instance of this entity cannot be created without a valid value for the relationship property. - final bool isRequired; - - bool get isDeferred => inversePropertyName == _deferredSymbol; - - static const Symbol _deferredSymbol = #mdrDeferred; -} - -/// Metadata to describe the behavior of the underlying database column of a persistent property in [ManagedObject] subclasses. -/// -/// By default, declaring a property in a table definition will make it a database column -/// and its database column will be derived from the property's type. -/// If the property needs additional directives - like indexing or uniqueness - it should be annotated with an instance of this class. -/// -/// class User extends ManagedObject<_User> implements _User {} -/// class _User { -/// @primaryKey -/// int id; -/// -/// @Column(indexed: true, unique: true) -/// String email; -/// } -class Column { - /// Creates an instance of this type. - /// - /// [defaultValue] is sent as-is to the database, therefore, if the default value is the integer value 2, - /// pass the string "2". If the default value is a string, it must also be wrapped in single quotes: "'defaultValue'". - const Column({ - this.databaseType, - bool primaryKey = false, - bool nullable = false, - this.defaultValue, - bool unique = false, - bool indexed = false, - bool omitByDefault = false, - this.autoincrement = false, - this.validators = const [], - this.useSnakeCaseName, - this.name, - }) : isPrimaryKey = primaryKey, - isNullable = nullable, - isUnique = unique, - isIndexed = indexed, - shouldOmitByDefault = omitByDefault; - - /// When true, indicates that this property is the primary key. - /// - /// Only one property of a class may have primaryKey equal to true. - final bool isPrimaryKey; - - /// The type of the field in the database. - /// - /// By default, the database column type is inferred from the Dart type of the property, e.g. a Dart [String] is a PostgreSQL text type. - /// This allows you to override the default type mapping for the annotated property. - final ManagedPropertyType? databaseType; - - /// Indicates whether or not the property can be null or not. - /// - /// By default, properties are not nullable. - final bool isNullable; - - /// The default value of the property. - /// - /// By default, a property does not have a default property. This is a String to be interpreted by the database driver. For example, - /// a PostgreSQL datetime column that defaults to the current time: - /// - /// class User extends ManagedObject<_User> implements _User {} - /// class _User { - /// @Column(defaultValue: "now()") - /// DateTime createdDate; - /// - /// ... - /// } - final String? defaultValue; - - /// Whether or not the property is unique among all instances. - /// - /// By default, properties are not unique. - final bool isUnique; - - /// Whether or not the backing database should generate an index for this property. - /// - /// By default, properties are not indexed. Properties that are used often in database queries should be indexed. - final bool isIndexed; - - /// Whether or not fetching an instance of this type should include this property. - /// - /// By default, all properties on a [ManagedObject] are returned if not specified (unless they are has-one or has-many relationship properties). - /// This flag will remove the associated property from the result set unless it is explicitly specified by [Query.returningProperties]. - final bool shouldOmitByDefault; - - /// A sequence generator will be used to generate the next value for this column when a row is inserted. - /// - /// When this flag is true, the database will generate a value for this column on insert. - final bool autoincrement; - - /// A list of validators to apply to the annotated property. - /// - /// Validators in this list will be applied to the annotated property. - /// - /// When the data model is compiled, this list is combined with any `Validate` annotations on the annotated property. - /// - final List validators; - - /// Useful to indicate using new snake_case naming convention if [name] is not set - /// - /// This property defaults to null to delegate to [Table.useSnakeCaseColumnName] - /// The default value, `null`, indicates that the behavior should be - /// acquired from the [Table.useSnakeCaseColumnName] annotation on the - /// enclosing class. - final bool? useSnakeCaseName; - - /// The name of the underlying column in table. - /// - /// If this value is not set, the name defaults to the name of the model attribute using snake_case naming convention. - final String? name; -} - -/// An annotation used to specify how a Model is serialized in API responses. -@Target({TargetKind.classType}) -class ResponseModel { - const ResponseModel({this.includeIfNullField = true}); - - /// Whether the serializer should include fields with `null` values in the - /// serialized Model output. - /// - /// If `true` (the default), all fields in the Model are written to JSON, even if they are - /// `null`. - /// - /// If a field is annotated with `@ResponseKey()` with a non-`null` value for - /// `includeIfNull`, that value takes precedent. - final bool includeIfNullField; -} - -/// An annotation used to specify how a field is serialized in API responses. -@Target({TargetKind.field, TargetKind.getter, TargetKind.setter}) -class ResponseKey { - const ResponseKey({this.name, this.includeIfNull}); - - /// The name to be used when serializing this field. - /// - /// If this value is not set, the name defaults to [Column.name]. - final String? name; - - /// Whether the serializer should include the field with `null` value in the - /// serialized output. - /// - /// If `true`, the serializer should include the field in the serialized - /// output, even if the value is `null`. - /// - /// The default value, `null`, indicates that the behavior should be - /// acquired from the [ResponseModel.includeIfNullField] annotation on the - /// enclosing class. - final bool? includeIfNull; -} - -/// Annotation for [ManagedObject] properties that allows them to participate in [ManagedObject.asMap] and/or [ManagedObject.readFromMap]. -/// -/// See constructor. -class Serialize { - /// Annotates a [ManagedObject] property so it can be serialized. - /// - /// A [ManagedObject] property declaration with this metadata will have its value encoded/decoded when - /// converting the managed object to and from a [Map]. - /// - /// If [input] is true, this property's value is set when converting from a map. - /// - /// If [output] is true, this property is in the map created by [ManagedObject.asMap]. - /// This key is only included if the value is non-null. - /// - /// Both [input] and [output] default to true. - const Serialize({bool input = true, bool output = true}) - : isAvailableAsInput = input, - isAvailableAsOutput = output; - - /// See constructor. - final bool isAvailableAsInput; - - /// See constructor. - final bool isAvailableAsOutput; -} - -/// Primary key annotation for a ManagedObject table definition property. -/// -/// This annotation is a convenience for the following annotation: -/// -/// @Column(primaryKey: true, databaseType: ManagedPropertyType.bigInteger, autoincrement: true) -/// int id; -/// -/// The annotated property type must be [int]. -/// -/// The validator [Validate.constant] is automatically applied to a property with this annotation. -const Column primaryKey = Column( - primaryKey: true, - databaseType: ManagedPropertyType.bigInteger, - autoincrement: true, - validators: [Validate.constant()], -); diff --git a/packages/database/lib/src/managed/backing.dart b/packages/database/lib/src/managed/backing.dart deleted file mode 100644 index 4475bfd..0000000 --- a/packages/database/lib/src/managed/backing.dart +++ /dev/null @@ -1,279 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/managed/relationship_type.dart'; - -/// An [ArgumentError] thrown when attempting to access an invalid property while building a `Query.values`. -/// -/// This error is thrown when attempting to access a property that is not backed by a column in the database table being inserted into. -/// This prohibits accessing `ManagedObject` and `ManagedSet` properties, except for `ManagedObject` properties with a `Relate` annotation. -/// For `Relate` properties, you may only set their primary key property. -final ArgumentError _invalidValueConstruction = ArgumentError( - "Invalid property access when building 'Query.values'. " - "May only assign values to properties backed by a column of the table being inserted into. " - "This prohibits 'ManagedObject' and 'ManagedSet' properties, except for 'ManagedObject' " - "properties with a 'Relate' annotation. For 'Relate' properties, you may only set their " - "primary key property."); - -/// A concrete implementation of [ManagedBacking] that stores the values of a [ManagedObject]. -/// -/// This class is responsible for managing the actual values of a [ManagedObject]. It provides methods to get and set the -/// values of the object's properties, and ensures that the values are valid according to the property's type. -/// -/// When setting a value for a property, this class checks if the value is assignable to the property's type. If the value -/// is not assignable, a [ValidationException] is thrown. -class ManagedValueBacking extends ManagedBacking { - @override - Map contents = {}; - - @override - dynamic valueForProperty(ManagedPropertyDescription property) { - return contents[property.name]; - } - - @override - void setValueForProperty(ManagedPropertyDescription property, dynamic value) { - if (value != null) { - if (!property.isAssignableWith(value)) { - throw ValidationException( - ["invalid input value for '${property.name}'"], - ); - } - } - - contents[property.name] = value; - } -} - -/// A concrete implementation of [ManagedBacking] that is designed to work with foreign key properties of a [ManagedObject]. -/// -/// This class is used when you need to create a new [ManagedObject] instance and only set its primary key property, which is -/// typically the foreign key property in a relationship. It allows you to set the primary key property without having to create -/// a full [ManagedObject] instance. -/// -/// The `ManagedForeignKeyBuilderBacking` class is useful when you are building a [Query] and need to set the foreign key property -/// of a related object, without creating the full related object. It ensures that only the primary key property can be set, and -/// throws an [ArgumentError] if you try to set any other properties. -class ManagedForeignKeyBuilderBacking extends ManagedBacking { - ManagedForeignKeyBuilderBacking(); - ManagedForeignKeyBuilderBacking.from( - ManagedEntity entity, - ManagedBacking backing, - ) { - if (backing.contents.containsKey(entity.primaryKey)) { - contents[entity.primaryKey] = backing.contents[entity.primaryKey]; - } - } - - @override - Map contents = {}; - - @override - dynamic valueForProperty(ManagedPropertyDescription property) { - if (property is ManagedAttributeDescription && property.isPrimaryKey) { - return contents[property.name]; - } - - throw _invalidValueConstruction; - } - - @override - void setValueForProperty(ManagedPropertyDescription property, dynamic value) { - if (property is ManagedAttributeDescription && property.isPrimaryKey) { - contents[property.name] = value; - return; - } - - throw _invalidValueConstruction; - } -} - -/// A concrete implementation of [ManagedBacking] that is designed to work with [ManagedObject] instances being used in a [Query.values]. -/// -/// This class is responsible for managing the values of a [ManagedObject] instance when it is being used to build a `Query.values` object. -/// It allows you to set the values of the object's properties, including its relationship properties, in a way that is compatible with the -/// constraints of the `Query.values` object. -/// -/// When setting a value for a property, this class checks the type of the property and ensures that the value being set is compatible with it. -/// For example, if the property is a [ManagedRelationshipDescription] with a `ManagedRelationshipType.belongsTo` relationship type, this class will -/// allow you to set the property to a [ManagedObject] instance or `null`, but not to a [ManagedSet] or other [ManagedObject] type. -/// -/// If you attempt to set an invalid value for a property, this class will throw an [ArgumentError] with a helpful error message. -class ManagedBuilderBacking extends ManagedBacking { - ManagedBuilderBacking(); - ManagedBuilderBacking.from(ManagedEntity entity, ManagedBacking original) { - if (original is! ManagedValueBacking) { - throw ArgumentError( - "Invalid 'ManagedObject' assignment to 'Query.values'. Object must be created through default constructor.", - ); - } - - original.contents.forEach((key, value) { - final prop = entity.properties[key]; - if (prop == null) { - throw ArgumentError( - "Invalid 'ManagedObject' assignment to 'Query.values'. Property '$key' does not exist for '${entity.name}'.", - ); - } - - if (prop is ManagedRelationshipDescription) { - if (!prop.isBelongsTo) { - return; - } - } - - setValueForProperty(prop, value); - }); - } - - /// The contents of the `ManagedValueBacking` class, which is a map that stores the values of a `ManagedObject`. - @override - Map contents = {}; - - /// Retrieves the value for the given property in the `ManagedBacking` instance. - /// - /// If the property is a [ManagedRelationshipDescription] and not a `belongsTo` relationship, - /// an [ArgumentError] is thrown with the `_invalidValueConstruction` message. - /// - /// If the property is a [ManagedRelationshipDescription] and the key is not present in the - /// `contents` map, a new [ManagedObject] instance is created using the `ManagedForeignKeyBuilderBacking` - /// and stored in the `contents` map under the property name. - /// - /// The value for the property is then returned from the `contents` map. - @override - dynamic valueForProperty(ManagedPropertyDescription property) { - if (property is ManagedRelationshipDescription) { - if (!property.isBelongsTo) { - throw _invalidValueConstruction; - } - - if (!contents.containsKey(property.name)) { - contents[property.name] = property.inverse!.entity - .instanceOf(backing: ManagedForeignKeyBuilderBacking()); - } - } - - return contents[property.name]; - } - - /// Sets the value for the specified property in the `ManagedBacking` instance. - /// - /// If the property is a [ManagedRelationshipDescription] and not a `belongsTo` relationship, - /// an [ArgumentError] is thrown with the `_invalidValueConstruction` message. - /// - /// If the property is a [ManagedRelationshipDescription] and the value is `null`, the - /// value in the `contents` map is set to `null`. - /// - /// If the property is a [ManagedRelationshipDescription] and the value is not `null`, - /// a new [ManagedObject] instance is created using the `ManagedForeignKeyBuilderBacking` - /// and stored in the `contents` map under the property name. - /// - /// For all other property types, the value is simply stored in the `contents` map. - @override - void setValueForProperty(ManagedPropertyDescription property, dynamic value) { - if (property is ManagedRelationshipDescription) { - if (!property.isBelongsTo) { - throw _invalidValueConstruction; - } - - if (value == null) { - contents[property.name] = null; - } else { - final original = value as ManagedObject; - final replacementBacking = ManagedForeignKeyBuilderBacking.from( - original.entity, - original.backing, - ); - final replacement = - original.entity.instanceOf(backing: replacementBacking); - contents[property.name] = replacement; - } - } else { - contents[property.name] = value; - } - } -} - -/// A concrete implementation of [ManagedBacking] that tracks the access of properties in a [ManagedObject]. -/// -/// This class is designed to monitor the access of properties in a [ManagedObject] instance. It keeps track of the -/// [KeyPath]s that are accessed, and when a property is accessed, it creates a new object or set based on the -/// type of the property. -/// -/// For [ManagedRelationshipDescription] properties, it creates a new instance of the destination entity with a -/// `ManagedAccessTrackingBacking` backing, or a [ManagedSet] for `hasMany` relationships. For [ManagedAttributeDescription] -/// properties with a document type, it creates a [DocumentAccessTracker] object. -/// -/// The `keyPaths` list keeps track of all the [KeyPath]s that have been accessed, and the `workingKeyPath` property -/// keeps track of the current [KeyPath] being built. -class ManagedAccessTrackingBacking extends ManagedBacking { - List keyPaths = []; - KeyPath? workingKeyPath; - - @override - Map get contents => {}; - - @override - dynamic valueForProperty(ManagedPropertyDescription property) { - if (workingKeyPath != null) { - workingKeyPath!.add(property); - - return forward(property, workingKeyPath); - } - - final keyPath = KeyPath(property); - keyPaths.add(keyPath); - - return forward(property, keyPath); - } - - @override - void setValueForProperty(ManagedPropertyDescription property, dynamic value) { - // no-op - } - - dynamic forward(ManagedPropertyDescription property, KeyPath? keyPath) { - if (property is ManagedRelationshipDescription) { - final tracker = ManagedAccessTrackingBacking()..workingKeyPath = keyPath; - if (property.relationshipType == ManagedRelationshipType.hasMany) { - return property.inverse!.entity.setOf([]); - } else { - return property.destinationEntity.instanceOf(backing: tracker); - } - } else if (property is ManagedAttributeDescription && - property.type!.kind == ManagedPropertyType.document) { - return DocumentAccessTracker(keyPath); - } - - return null; - } -} - -/// A class that tracks access to a document property in a [ManagedObject]. -/// -/// This class is used in conjunction with the [ManagedAccessTrackingBacking] class to monitor -/// the access of document properties in a [ManagedObject] instance. When a document property -/// is accessed, a new instance of this class is created, and the [KeyPath] that represents -/// the access to the document property is updated. -/// -/// The `owner` property of this class holds the [KeyPath] that represents the access to the -/// document property. When the overridden `operator []` is called, it adds the key or index -/// used to access the document property to the `owner` [KeyPath]. -class DocumentAccessTracker extends Document { - DocumentAccessTracker(this.owner); - - final KeyPath? owner; - - @override - dynamic operator [](dynamic keyOrIndex) { - owner!.addDynamicElement(keyOrIndex); - return this; - } -} diff --git a/packages/database/lib/src/managed/context.dart b/packages/database/lib/src/managed/context.dart deleted file mode 100644 index 3a9667d..0000000 --- a/packages/database/lib/src/managed/context.dart +++ /dev/null @@ -1,263 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/src/managed/data_model_manager.dart' as mm; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/persistent_store/persistent_store.dart'; -import 'package:protevus_database/src/query/query.dart'; - -/// A service object that handles connecting to and sending queries to a database. -/// -/// You create objects of this type to use the Conduit ORM. Create instances in [ApplicationChannel.prepare] -/// and inject them into controllers that execute database queries. -/// -/// A context contains two types of objects: -/// -/// - [PersistentStore] : Maintains a connection to a specific database. Transfers data between your application and the database. -/// - [ManagedDataModel] : Contains information about the [ManagedObject] subclasses in your application. -/// -/// Example usage: -/// -/// class Channel extends ApplicationChannel { -/// ManagedContext context; -/// -/// @override -/// Future prepare() async { -/// var store = new PostgreSQLPersistentStore(...); -/// var dataModel = new ManagedDataModel.fromCurrentMirrorSystem(); -/// context = new ManagedContext(dataModel, store); -/// } -/// -/// @override -/// Controller get entryPoint { -/// final router = new Router(); -/// router.route("/path").link(() => new DBController(context)); -/// return router; -/// } -/// } -class ManagedContext implements APIComponentDocumenter { - /// Creates a new instance of [ManagedContext] with the provided [dataModel] and [persistentStore]. - /// - /// This is the default constructor. - /// - /// A [Query] is sent to the database described by [persistentStore]. A [Query] may only be executed - /// on this context if its type is in [dataModel]. - ManagedContext(this.dataModel, this.persistentStore) { - mm.add(dataModel!); - _finalizer.attach(this, persistentStore, detach: this); - } - - /// Creates a child [ManagedContext] from the provided [parentContext]. - /// - /// The created child context will share the same [persistentStore] and [dataModel] - /// as the [parentContext]. This allows you to perform database operations within - /// a transaction by creating a child context and executing queries on it. - /// - /// Example usage: - /// - /// await context.transaction((transaction) async { - /// final childContext = ManagedContext.childOf(transaction); - /// final query = Query(childContext)..values.name = 'John'; - /// await query.insert(); - /// }); - ManagedContext.childOf(ManagedContext parentContext) - : persistentStore = parentContext.persistentStore, - dataModel = parentContext.dataModel; - - /// A [Finalizer] that is used to automatically close the [PersistentStore] when the [ManagedContext] is destroyed. - /// - /// This [Finalizer] is attached to the [ManagedContext] instance in the constructor, and will call the `close()` method - /// of the [PersistentStore] when the [ManagedContext] is garbage collected or explicitly closed. This ensures that the - /// resources associated with the [PersistentStore] are properly cleaned up when the [ManagedContext] is no longer needed. - static final Finalizer _finalizer = - Finalizer((store) async => store.close()); - - /// The persistent store that [Query]s on this context are executed through. - /// - /// The [PersistentStore] is responsible for maintaining the connection to the database and - /// executing queries on behalf of the [ManagedContext]. This property holds the instance - /// of the persistent store that this [ManagedContext] will use to interact with the database. - PersistentStore persistentStore; - - /// The data model containing the [ManagedEntity]s that describe the [ManagedObject]s this instance works with. - final ManagedDataModel? dataModel; - - /// Runs all [Query]s in [transactionBlock] within a database transaction. - /// - /// Queries executed within [transactionBlock] will be executed as a database transaction. - /// A [transactionBlock] is passed a [ManagedContext] that must be the target of all queries - /// within the block. The context passed to the [transactionBlock] is *not* the same as - /// the context the transaction was created from. - /// - /// *You must not use the context this method was invoked on inside the transactionBlock. - /// Doing so will deadlock your application.* - /// - /// If an exception is encountered in [transactionBlock], any query that has already been - /// executed will be rolled back and this method will rethrow the exception. - /// - /// You may manually rollback a query by throwing a [Rollback] object. This will exit the - /// [transactionBlock], roll back any changes made in the transaction, but this method will not - /// throw. - /// - /// Rollback takes a string but the transaction - /// returns `Future`. It would seem to be a better idea to still throw the manual Rollback - /// so the user has a consistent method of handling the rollback. We could add a property - /// to the Rollback class 'manual' which would be used to indicate a manual rollback. - /// For the moment I've changed the return type to Future as - /// The parameter passed to [Rollback]'s constructor will be returned from this method - /// so that the caller can determine why the transaction was rolled back. - /// - /// Example usage: - /// - /// await context.transaction((transaction) async { - /// final q = new Query(transaction) - /// ..values = someObject; - /// await q.insert(); - /// ... - /// }); - Future transaction( - Future Function(ManagedContext transaction) transactionBlock, - ) { - return persistentStore.transaction( - ManagedContext.childOf(this), - transactionBlock, - ); - } - - /// Closes this [ManagedContext] and releases its underlying resources. - /// - /// This method closes the connection to [persistentStore] and releases [dataModel]. - /// A context may not be reused once it has been closed. - Future close() async { - await persistentStore.close(); - _finalizer.detach(this); - mm.remove(dataModel!); - } - - /// Returns the [ManagedEntity] for the given [type] from the [dataModel]. - /// - /// See [ManagedDataModel.entityForType]. - ManagedEntity entityForType(Type type) { - return dataModel!.entityForType(type); - } - - /// Inserts a single [object] into this context. - /// - /// This method is a shorthand for creating a [Query] with the provided [object] and - /// calling [Query.insert] to insert the object into the database. - /// - /// This method is useful when you need to insert a single object into the database. - /// If you need to insert multiple objects, consider using the [insertObjects] method - /// instead. - /// - /// Example usage: - /// - /// final user = User()..name = 'John Doe'; - /// await context.insertObject(user); - /// - /// @param object The [ManagedObject] instance to be inserted. - /// @return A [Future] that completes with the inserted [object] when the insert operation is complete. - Future insertObject(T object) { - final query = Query(this)..values = object; - return query.insert(); - } - - /// Inserts each object in [objects] into this context. - /// - /// This method takes a list of [ManagedObject] instances and inserts them into the - /// database in a single operation. If any of the insertions fail, no objects will - /// be inserted and an exception will be thrown. - /// - /// Example usage: - /// - /// final users = [ - /// User()..name = 'John Doe', - /// User()..name = 'Jane Doe', - /// ]; - /// await context.insertObjects(users); - /// - /// @param objects A list of [ManagedObject] instances to be inserted. - /// @return A [Future] that completes with a list of the inserted objects when the - /// insert operation is complete. - Future> insertObjects( - List objects, - ) async { - return Query(this).insertMany(objects); - } - - /// Returns an object of type [T] from this context if it exists, otherwise returns null. - /// - /// This method retrieves a single [ManagedObject] of type [T] from the database based on the provided [identifier]. - /// If the object of type [T] is found in the database, it is returned. If the object is not found, `null` is returned. - /// - /// If the type [T] cannot be inferred, an `ArgumentError` is thrown. Similarly, if the provided [identifier] is not - /// of the same type as the primary key of the [ManagedEntity] for type [T], `null` is returned. - /// - /// Example usage: - /// - /// final user = await context.fetchObjectWithID(1); - /// if (user != null) { - /// print('Found user: ${user.name}'); - /// } else { - /// print('User not found'); - /// } - /// - /// @param identifier The value of the primary key for the object of type [T] to fetch. - /// @return A [Future] that completes with the fetched object of type [T] if it exists, or `null` if it does not. - Future fetchObjectWithID( - dynamic identifier, - ) async { - final entity = dataModel!.tryEntityForType(T); - if (entity == null) { - throw ArgumentError("Unknown entity '$T' in fetchObjectWithID. " - "Provide a type to this method and ensure it is in this context's data model."); - } - - final primaryKey = entity.primaryKeyAttribute!; - if (!primaryKey.type!.isAssignableWith(identifier)) { - return null; - } - - final query = Query(this) - ..where((o) => o[primaryKey.name]).equalTo(identifier); - return query.fetchOne(); - } - - /// Documents the components of the [ManagedContext] by delegating to the - /// [dataModel]'s [documentComponents] method. - /// - /// This method is part of the [APIComponentDocumenter] interface, which is - /// implemented by [ManagedContext]. It is responsible for generating - /// documentation for the components (such as [ManagedEntity] and - /// [ManagedAttribute]) that are part of the data model managed by this - /// [ManagedContext]. - /// - /// The documentation is generated and added to the provided [APIDocumentContext]. - @override - void documentComponents(APIDocumentContext context) => - dataModel!.documentComponents(context); -} - -/// An exception that can be thrown to rollback a transaction in [ManagedContext.transaction]. -/// -/// When thrown in a transaction, it will cancel an in-progress transaction and rollback -/// any changes it has made. -class Rollback { - /// Default constructor, takes a [reason] object that can be anything. - /// - /// The parameter [reason] will be returned by [ManagedContext.transaction]. - Rollback(this.reason); - - /// The reason this rollback occurred. - /// - /// This value is returned from [ManagedContext.transaction] when this instance is thrown. - final String reason; -} diff --git a/packages/database/lib/src/managed/data_model.dart b/packages/database/lib/src/managed/data_model.dart deleted file mode 100644 index 0831667..0000000 --- a/packages/database/lib/src/managed/data_model.dart +++ /dev/null @@ -1,163 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:collection/collection.dart' show IterableExtension; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// Instances of this class contain descriptions and metadata for mapping [ManagedObject]s to database rows. -/// -/// An instance of this type must be used to initialize a [ManagedContext], and so are required to use [Query]s. -/// -/// The [ManagedDataModel.fromCurrentMirrorSystem] constructor will reflect on an application's code and find -/// all subclasses of [ManagedObject], building a [ManagedEntity] for each. -/// -/// Most applications do not need to access instances of this type. -class ManagedDataModel extends Object implements APIComponentDocumenter { - /// Creates an instance of [ManagedDataModel] from a list of types that extend [ManagedObject]. It is preferable - /// to use [ManagedDataModel.fromCurrentMirrorSystem] over this method. - /// - /// To register a class as a managed object within this data model, you must include its type in the list. Example: - /// - /// new DataModel([User, Token, Post]); - ManagedDataModel(List instanceTypes) { - final runtimes = RuntimeContext.current.runtimes.iterable - .whereType() - .toList(); - final expectedRuntimes = instanceTypes - .map( - (t) => runtimes.firstWhereOrNull((e) => e.entity.instanceType == t), - ) - .toList(); - - if (expectedRuntimes.any((e) => e == null)) { - throw ManagedDataModelError( - "Data model types were not found!", - ); - } - - for (final runtime in expectedRuntimes) { - _entities[runtime!.entity.instanceType] = runtime.entity; - _tableDefinitionToEntityMap[runtime.entity.tableDefinition] = - runtime.entity; - } - for (final runtime in expectedRuntimes) { - runtime!.finalize(this); - } - } - - /// Creates an instance of a [ManagedDataModel] from all subclasses of [ManagedObject] in all libraries visible to the calling library. - /// - /// This constructor will search every available package and file library that is visible to the library - /// that runs this constructor for subclasses of [ManagedObject]. A [ManagedEntity] will be created - /// and stored in this instance for every such class found. - /// - /// Standard Dart libraries (prefixed with 'dart:') and URL-encoded libraries (prefixed with 'data:') are not searched. - /// - /// This is the preferred method of instantiating this type. - ManagedDataModel.fromCurrentMirrorSystem() { - final runtimes = RuntimeContext.current.runtimes.iterable - .whereType(); - - for (final runtime in runtimes) { - _entities[runtime.entity.instanceType] = runtime.entity; - _tableDefinitionToEntityMap[runtime.entity.tableDefinition] = - runtime.entity; - } - for (final runtime in runtimes) { - runtime.finalize(this); - } - } - - /// Returns an [Iterable] of all [ManagedEntity] instances registered in this [ManagedDataModel]. - /// - /// This property provides access to the collection of all [ManagedEntity] instances that - /// were discovered and registered during the construction of this [ManagedDataModel]. - Iterable get entities => _entities.values; - - /// Returns a [ManagedEntity] for a [Type]. - /// - /// [type] may be either a sub - /// [type] may be either a subclass of [ManagedObject] or a [ManagedObject]'s table definition. For example, the following - /// definition - final Map _entities = {}; - - /// A map that associates table definitions to their corresponding [ManagedEntity] instances. - /// - /// This map is used to retrieve a [ManagedEntity] instance given a table definition type, - /// which can be useful when the type of the managed object is not known. - final Map _tableDefinitionToEntityMap = {}; - - /// Returns a [ManagedEntity] for a [Type]. - /// - /// [type] may be either a subclass of [ManagedObject] or a [ManagedObject]'s table definition. For example, the following - /// definition, you could retrieve its entity by passing MyModel or _MyModel as an argument to this method: - /// - /// class MyModel extends ManagedObject<_MyModel> implements _MyModel {} - /// class _MyModel { - /// @primaryKey - /// int id; - /// } - /// If the [type] has no known [ManagedEntity] then a [StateError] is thrown. - /// Use [tryEntityForType] to test if an entity exists. - ManagedEntity entityForType(Type type) { - final entity = tryEntityForType(type); - - if (entity == null) { - throw StateError( - "No entity found for '$type. Did you forget to create a 'ManagedContext'?", - ); - } - - return entity; - } - - /// Attempts to retrieve a [ManagedEntity] for the given [Type]. - /// - /// This method first checks the [_entities] map for a direct match on the [Type]. If no match is found, - /// it then checks the [_tableDefinitionToEntityMap] for a match on the string representation of the [Type]. - /// - /// If a [ManagedEntity] is found, it is returned. Otherwise, `null` is returned. - ManagedEntity? tryEntityForType(Type type) => - _entities[type] ?? _tableDefinitionToEntityMap[type.toString()]; - - /// Documents the components of the managed data model. - /// - /// This method iterates over all the [ManagedEntity] instances registered in this - /// [ManagedDataModel] and calls the `documentComponents` method on each one, passing - /// the provided [APIDocumentContext] instance. - /// - /// This allows each [ManagedEntity] to describe its own components, such as the - /// database table definition and the properties of the corresponding [ManagedObject] - /// subclass, in the context of the API documentation. - @override - void documentComponents(APIDocumentContext context) { - for (final e in entities) { - e.documentComponents(context); - } - } -} - -/// An error that is thrown when a [ManagedDataModel] encounters an issue. -/// -/// This error is used to indicate that there was a problem during the -/// construction or usage of a [ManagedDataModel] instance. The error -/// message provides information about the specific issue that occurred. -class ManagedDataModelError extends Error { - ManagedDataModelError(this.message); - - final String message; - - @override - String toString() { - return "Data Model Error: $message"; - } -} diff --git a/packages/database/lib/src/managed/data_model_manager.dart b/packages/database/lib/src/managed/data_model_manager.dart deleted file mode 100644 index c77f498..0000000 --- a/packages/database/lib/src/managed/data_model_manager.dart +++ /dev/null @@ -1,77 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/data_model.dart'; -import 'package:protevus_database/src/managed/entity.dart'; - -/// A map that keeps track of the number of [ManagedDataModel] instances in the system. -Map _dataModels = {}; - -/// Finds a [ManagedEntity] for the specified [Type]. -/// -/// Searches through the [_dataModels] map to find the first [ManagedEntity] that -/// matches the given [Type]. If no matching [ManagedEntity] is found and [orElse] -/// is provided, the [orElse] function is called to provide a fallback -/// [ManagedEntity]. If no [ManagedEntity] is found and [orElse] is not provided, -/// a [StateError] is thrown. -/// -/// Parameters: -/// - `type`: The [Type] of the [ManagedEntity] to find. -/// - `orElse`: An optional function that returns a fallback [ManagedEntity] if -/// no match is found. -/// -/// Returns: -/// The found [ManagedEntity], or the result of calling [orElse] if provided and -/// no match is found. -/// -/// Throws: -/// A [StateError] if no [ManagedEntity] is found and [orElse] is not provided. -ManagedEntity findEntity( - Type type, { - ManagedEntity Function()? orElse, -}) { - for (final d in _dataModels.keys) { - final entity = d.tryEntityForType(type); - if (entity != null) { - return entity; - } - } - - if (orElse == null) { - throw StateError( - "No entity found for '$type. Did you forget to create a 'ManagedContext'?", - ); - } - - return orElse(); -} - -/// Adds a [ManagedDataModel] to the [_dataModels] map, incrementing the count if it already exists -/// or setting the count to 1 if it's a new entry. -/// -/// Parameters: -/// - `dataModel`: The [ManagedDataModel] to be added to the map. -void add(ManagedDataModel dataModel) { - _dataModels.update(dataModel, (count) => count + 1, ifAbsent: () => 1); -} - -/// Removes a [ManagedDataModel] from the [_dataModels] map, decrementing the count if it already exists. -/// -/// If the count becomes less than 1, the [ManagedDataModel] is removed from the map completely. -/// -/// Parameters: -/// - `dataModel`: The [ManagedDataModel] to be removed from the map. -void remove(ManagedDataModel dataModel) { - if (_dataModels[dataModel] != null) { - _dataModels.update(dataModel, (count) => count - 1); - if (_dataModels[dataModel]! < 1) { - _dataModels.remove(dataModel); - } - } -} diff --git a/packages/database/lib/src/managed/document.dart b/packages/database/lib/src/managed/document.dart deleted file mode 100644 index bad4122..0000000 --- a/packages/database/lib/src/managed/document.dart +++ /dev/null @@ -1,66 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; - -/// Allows storage of unstructured data in a [ManagedObject] property. -/// -/// [Document]s may be properties of [ManagedObject] table definition. They are a container -/// for [data] that is a JSON-encodable [Map] or [List]. When storing a [Document] in a database column, -/// [data] is JSON-encoded. -/// -/// Use this type to store unstructured or 'schema-less' data. Example: -/// -/// class Event extends ManagedObject<_Event> implements _Event {} -/// class _Event { -/// @primaryKey -/// int id; -/// -/// String type; -/// -/// Document details; -/// } -class Document { - /// Creates an instance with an optional initial [data]. - /// - /// If no argument is passed, [data] is null. Otherwise, it is the first argument. - Document([this.data]); - - /// The JSON-encodable data contained by this instance. - /// - /// This value must be JSON-encodable. - dynamic data; - - /// Returns an element of [data] by index or key. - /// - /// [keyOrIndex] may be a [String] or [int]. - /// - /// When [data] is a [Map], [keyOrIndex] must be a [String] and will return the object for the key - /// in that map. - /// - /// When [data] is a [List], [keyOrIndex] must be a [int] and will return the object at the index - /// in that list. - dynamic operator [](Object keyOrIndex) { - return data[keyOrIndex]; - } - - /// Sets an element of [data] by index or key. - /// - /// [keyOrIndex] may be a [String] or [int]. [value] must be a JSON-encodable value. - /// - /// When [data] is a [Map], [keyOrIndex] must be a [String] and will set [value] for the key - /// [keyOrIndex]. - /// - /// When [data] is a [List], [keyOrIndex] must be a [int] and will set [value] for the index - /// [keyOrIndex]. This index must be within the length of [data]. For all other [List] operations, - /// you may cast [data] to [List]. - void operator []=(Object keyOrIndex, dynamic value) { - data[keyOrIndex] = value; - } -} diff --git a/packages/database/lib/src/managed/entity.dart b/packages/database/lib/src/managed/entity.dart deleted file mode 100644 index 93dd0f2..0000000 --- a/packages/database/lib/src/managed/entity.dart +++ /dev/null @@ -1,580 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/src/managed/backing.dart'; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/managed/relationship_type.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// Mapping information between a table in a database and a [ManagedObject] object. -/// -/// An entity defines the mapping between a database table and [ManagedObject] subclass. Entities -/// are created by declaring [ManagedObject] subclasses and instantiating a [ManagedDataModel]. -/// In general, you do not need to use or create instances of this class. -/// -/// An entity describes the properties that a subclass of [ManagedObject] will have and their representation in the underlying database. -/// Each of these properties are represented by an instance of a [ManagedPropertyDescription] subclass. A property is either an attribute or a relationship. -/// -/// Attribute values are scalar (see [ManagedPropertyType]) - [int], [String], [DateTime], [double] and [bool]. -/// Attributes are typically backed by a column in the underlying database for a [ManagedObject], but may also represent transient values -/// defined by the [instanceType]. -/// Attributes are represented by [ManagedAttributeDescription]. -/// -/// The value of a relationship property is a reference to another [ManagedObject]. If a relationship property has [Relate] metadata, -/// the property is backed be a foreign key column in the underlying database. Relationships are represented by [ManagedRelationshipDescription]. -class ManagedEntity implements APIComponentDocumenter { - /// Creates an instance of this type.. - /// - /// You should never call this method directly, it will be called by [ManagedDataModel]. - ManagedEntity(this._tableName, this.instanceType, this.tableDefinition); - - /// The name of this entity. - /// - /// This name will match the name of [instanceType]. - String get name => instanceType.toString(); - - /// The type of instances represented by this entity. - /// - /// Managed objects are made up of two components, a table definition and an instance type. Applications - /// use instances of the instance type to work with queries and data from the database table this entity represents. - final Type instanceType; - - /// Set of callbacks that are implemented differently depending on compilation target. - /// - /// If running in default mode (mirrors enabled), is a set of mirror operations. Otherwise, - /// code generated. - ManagedEntityRuntime get runtime => - RuntimeContext.current[instanceType] as ManagedEntityRuntime; - - /// The name of type of persistent instances represented by this entity. - /// - /// Managed objects are made up of two components, a table definition and an instance type. - /// The system uses this type to define the mapping to the underlying database table. - final String tableDefinition; - - /// All attribute values of this entity. - /// - /// An attribute maps to a single column or field in a database that is a scalar value, such as a string, integer, etc. or a - /// transient property declared in the instance type. - /// The keys are the case-sensitive name of the attribute. Values that represent a relationship to another object - /// are not stored in [attributes]. - late Map attributes; - - /// All relationship values of this entity. - /// - /// A relationship represents a value that is another [ManagedObject] or [ManagedSet] of [ManagedObject]s. Not all relationships - /// correspond to a column or field in a database, only those with [Relate] metadata (see also [ManagedRelationshipType.belongsTo]). In - /// this case, the underlying database column is a foreign key reference. The underlying database does not have storage - /// for [ManagedRelationshipType.hasMany] or [ManagedRelationshipType.hasOne] properties, as those values are derived by the foreign key reference - /// on the inverse relationship property. - /// Keys are the case-sensitive name of the relationship. - late Map relationships; - - /// All properties (relationships and attributes) of this entity. - /// - /// The string key is the name of the property, case-sensitive. Values will be instances of either [ManagedAttributeDescription] - /// or [ManagedRelationshipDescription]. This is the concatenation of [attributes] and [relationships]. - Map get properties { - final all = Map.from(attributes); - all.addAll(relationships); - return all; - } - - /// Set of properties that, together, are unique for each instance of this entity. - /// - /// If non-null, each instance of this entity is unique for the combination of values - /// for these properties. Instances may have the same values for each property in [uniquePropertySet], - /// but cannot have the same value for all properties in [uniquePropertySet]. This differs from setting - /// a single property as unique with [Column], where each instance has - /// a unique value for that property. - /// - /// This value is set by adding [Table] to the table definition of a [ManagedObject]. - List? uniquePropertySet; - - /// List of [ManagedValidator]s for attributes of this entity. - /// - /// All validators for all [attributes] in one, flat list. Order is undefined. - late List validators; - - /// The list of default property names of this object. - /// - /// By default, a [Query] will fetch the properties in this list. You may specify - /// a different set of properties by setting the [Query.returningProperties] value. The default - /// set of properties is a list of all attributes that do not have the [Column.shouldOmitByDefault] flag - /// set in their [Column] and all [ManagedRelationshipType.belongsTo] relationships. - /// - /// This list cannot be modified. - List? get defaultProperties { - if (_defaultProperties == null) { - final elements = []; - elements.addAll( - attributes.values - .where((prop) => prop!.isIncludedInDefaultResultSet) - .where((prop) => !prop!.isTransient) - .map((prop) => prop!.name), - ); - - elements.addAll( - relationships.values - .where( - (prop) => - prop!.isIncludedInDefaultResultSet && - prop.relationshipType == ManagedRelationshipType.belongsTo, - ) - .map((prop) => prop!.name), - ); - _defaultProperties = List.unmodifiable(elements); - } - return _defaultProperties; - } - - /// Name of primary key property. - /// - /// This is determined by the attribute with the [primaryKey] annotation. - late String primaryKey; - - /// Returns the primary key attribute of this entity. - /// - /// The primary key attribute is the [ManagedAttributeDescription] instance that represents the primary key - /// column of the database table associated with this entity. This property retrieves that attribute - /// by looking up the [primaryKey] property of this entity. - ManagedAttributeDescription? get primaryKeyAttribute { - return attributes[primaryKey]; - } - - /// A map from accessor symbol name to property name. - /// - /// This map should not be modified. - late Map symbolMap; - - /// Name of table in database this entity maps to. - /// - /// By default, the table will be named by the table definition, e.g., a managed object declared as so will have a [tableName] of '_User'. - /// - /// class User extends ManagedObject<_User> implements _User {} - /// class _User { ... } - /// - /// You may implement the static method [tableName] on the table definition of a [ManagedObject] to return a [String] table - /// name override this default. - String get tableName { - return _tableName; - } - - /// The name of the table in the database that this entity maps to. - /// - /// By default, the table will be named by the table definition, e.g., a managed object declared as so will have a [tableName] of '_User'. - /// - /// class User extends ManagedObject<_User> implements _User {} - /// class _User { ... } - /// - /// You may implement the static method [tableName] on the table definition of a [ManagedObject] to return a [String] table - /// name override this default. - final String _tableName; - - /// The list of default property names of this object. - /// - /// By default, a [Query] will fetch the properties in this list. You may specify - /// a different set of properties by setting the [Query.returningProperties] value. The default - /// set of properties is a list of all attributes that do not have the [Column.shouldOmitByDefault] flag - /// set in their [Column] and all [ManagedRelationshipType.belongsTo] relationships. - /// - /// This list cannot be modified. - List? _defaultProperties; - - /// Derived from this' [tableName]. - /// - /// This overrides the default [hashCode] implementation for the [ManagedEntity] class. - /// The hash code is calculated based solely on the [tableName] property of the - /// [ManagedEntity] instance. This means that two [ManagedEntity] instances will be - /// considered equal (i.e., have the same hash code) if they have the same [tableName]. - @override - int get hashCode { - return tableName.hashCode; - } - - /// Creates a new instance of the [ManagedObject] subclass associated with this [ManagedEntity]. - /// - /// By default, the returned object will use a normal value backing map. - /// If [backing] is non-null, it will be the backing map of the returned object. - T instanceOf({ManagedBacking? backing}) { - if (backing != null) { - return (runtime.instanceOfImplementation(backing: backing)..entity = this) - as T; - } - return (runtime.instanceOfImplementation()..entity = this) as T; - } - - /// Creates a new [ManagedSet] of type [T] from the provided [objects]. - /// - /// The [objects] parameter should be an [Iterable] of dynamic values that can be - /// converted to instances of [T]. This method will use the [ManagedEntityRuntime] - /// implementation to create the appropriate [ManagedSet] instance. - /// - /// If the [objects] cannot be converted to instances of [T], this method will - /// return `null`. - ManagedSet? setOf(Iterable objects) { - return runtime.setOfImplementation(objects) as ManagedSet?; - } - - /// Returns an attribute in this entity for a property selector. - /// - /// Invokes [identifyProperties] with [propertyIdentifier], and ensures that a single attribute - /// on this entity was selected. Returns that attribute. - ManagedAttributeDescription identifyAttribute( - T Function(U x) propertyIdentifier, - ) { - final keyPaths = identifyProperties(propertyIdentifier); - if (keyPaths.length != 1) { - throw ArgumentError( - "Invalid property selector. Cannot access more than one property for this operation.", - ); - } - - final firstKeyPath = keyPaths.first; - if (firstKeyPath.dynamicElements != null) { - throw ArgumentError( - "Invalid property selector. Cannot access subdocuments for this operation.", - ); - } - - final elements = firstKeyPath.path; - if (elements.length > 1) { - throw ArgumentError( - "Invalid property selector. Cannot use relationships for this operation.", - ); - } - - final propertyName = elements.first!.name; - final attribute = attributes[propertyName]; - if (attribute == null) { - if (relationships.containsKey(propertyName)) { - throw ArgumentError( - "Invalid property selection. Property '$propertyName' on " - "'$name' " - "is a relationship and cannot be selected for this operation."); - } else { - throw ArgumentError( - "Invalid property selection. Column '$propertyName' does not " - "exist on table '$tableName'."); - } - } - - return attribute; - } - - /// Returns a relationship in this entity for a property selector. - /// - /// Invokes [identifyProperties] with [propertyIdentifier], and ensures that a single relationship - /// on this entity was selected. Returns that relationship. - ManagedRelationshipDescription - identifyRelationship( - T Function(U x) propertyIdentifier, - ) { - final keyPaths = identifyProperties(propertyIdentifier); - if (keyPaths.length != 1) { - throw ArgumentError( - "Invalid property selector. Cannot access more than one property for this operation.", - ); - } - - final firstKeyPath = keyPaths.first; - if (firstKeyPath.dynamicElements != null) { - throw ArgumentError( - "Invalid property selector. Cannot access subdocuments for this operation.", - ); - } - - final elements = firstKeyPath.path; - if (elements.length > 1) { - throw ArgumentError( - "Invalid property selector. Cannot identify a nested relationship for this operation.", - ); - } - - final propertyName = elements.first!.name; - final desc = relationships[propertyName]; - if (desc == null) { - throw ArgumentError( - "Invalid property selection. Relationship named '$propertyName' on table '$tableName' is not a relationship.", - ); - } - - return desc; - } - - /// Returns a property selected by [propertyIdentifier]. - /// - /// Invokes [identifyProperties] with [propertyIdentifier], and ensures that a single property - /// on this entity was selected. Returns that property. - KeyPath identifyProperty( - T Function(U x) propertyIdentifier, - ) { - final properties = identifyProperties(propertyIdentifier); - if (properties.length != 1) { - throw ArgumentError( - "Invalid property selector. Must reference a single property only.", - ); - } - - return properties.first; - } - - /// Returns a list of properties selected by [propertiesIdentifier]. - /// - /// Each selected property in [propertiesIdentifier] is returned in a [KeyPath] object that fully identifies the - /// property relative to this entity. - List identifyProperties( - T Function(U x) propertiesIdentifier, - ) { - final tracker = ManagedAccessTrackingBacking(); - final obj = instanceOf(backing: tracker); - propertiesIdentifier(obj); - - return tracker.keyPaths; - } - - /// Generates an API schema object for this managed entity. - /// - /// This method creates an [APISchemaObject] that represents the database table - /// associated with this managed entity. The schema object includes properties - /// for each attribute and relationship defined in the entity, excluding any - /// transient properties or properties that are not included in the default - /// result set. - /// - /// The schema object's title is set to the name of the entity, and the description - /// is set to a message indicating that no two objects may have the same value for - /// all of the unique properties defined for this entity (if any). - /// - /// The [APIDocumentContext] parameter is used to register the schema object - /// with the API document context. - APISchemaObject document(APIDocumentContext context) { - final schemaProperties = {}; - final obj = APISchemaObject.object(schemaProperties)..title = name; - - final buffer = StringBuffer(); - if (uniquePropertySet != null) { - final propString = - uniquePropertySet!.map((s) => "'${s.name}'").join(", "); - buffer.writeln( - "No two objects may have the same value for all of: $propString.", - ); - } - - obj.description = buffer.toString(); - - properties.forEach((name, def) { - if (def is ManagedAttributeDescription && - !def.isIncludedInDefaultResultSet && - !def.isTransient) { - return; - } - - final schemaProperty = def!.documentSchemaObject(context); - schemaProperties[name] = schemaProperty; - }); - - return obj; - } - - /// Compares two [ManagedEntity] instances for equality based on their [tableName]. - /// - /// Two [ManagedEntity] instances are considered equal if they have the same [tableName]. - @override - bool operator ==(Object other) => - other is ManagedEntity && tableName == other.tableName; - - /// Provides a string representation of the [ManagedEntity] instance. - /// - /// The string representation includes the following information: - /// - /// - The name of the database table associated with the entity. - /// - A list of all attribute properties defined in the entity, with their string representations. - /// - A list of all relationship properties defined in the entity, with their string representations. - /// - /// This method is primarily intended for debugging and logging purposes. - @override - String toString() { - final buf = StringBuffer(); - buf.writeln("Entity: $tableName"); - - buf.writeln("Attributes:"); - attributes.forEach((name, attr) { - buf.writeln("\t$attr"); - }); - - buf.writeln("Relationships:"); - relationships.forEach((name, rel) { - buf.writeln("\t$rel"); - }); - - return buf.toString(); - } - - /// Generates an API schema object for this managed entity and registers it with the provided API document context. - /// - /// This method creates an [APISchemaObject] that represents the database table - /// associated with this managed entity. The schema object includes properties - /// for each attribute and relationship defined in the entity, excluding any - /// transient properties or properties that are not included in the default - /// result set. - /// - /// The schema object's title is set to the name of the entity, and the description - /// is set to a message indicating that no two objects may have the same value for - /// all of the unique properties defined for this entity (if any). - /// - /// The [APIDocumentContext] parameter is used to register the schema object - /// with the API document context. - @override - void documentComponents(APIDocumentContext context) { - final obj = document(context); - context.schema.register(name, obj, representation: instanceType); - } -} - -/// Defines the runtime implementation for a [ManagedEntity]. -/// -/// The `ManagedEntityRuntime` interface provides a set of methods that are used to implement the -/// runtime behavior of a [ManagedEntity]. This interface is used by the `ManagedEntity` class to -/// interact with the underlying runtime implementation, which may vary depending on the compilation -/// target (e.g., using mirrors or code generation). -/// -/// Implementers of this interface must provide the following functionality: -/// -/// - `finalize(ManagedDataModel dataModel)`: Perform any necessary finalization steps for the -/// managed entity, such as setting up caches or performing other initialization tasks. -/// - `instanceOfImplementation({ManagedBacking? backing})`: Create a new instance of the -/// [ManagedObject] associated with the managed entity, optionally using the provided backing -/// object. -/// - `setOfImplementation(Iterable objects)`: Create a new instance of [ManagedSet] for the -/// managed entity, using the provided objects. -/// - `setTransientValueForKey(ManagedObject object, String key, dynamic value)`: Set a transient -/// value for the specified key on the given [ManagedObject] instance. -/// - `getTransientValueForKey(ManagedObject object, String? key)`: Retrieve the transient value -/// for the specified key on the given [ManagedObject] instance. -/// - `isValueInstanceOf(dynamic value)`: Check if the provided value is an instance of the -/// [ManagedObject] associated with the managed entity. -/// - `isValueListOf(dynamic value)`: Check if the provided value is a list of instances of the -/// [ManagedObject] associated with the managed entity. -/// - `getPropertyName(Invocation invocation, ManagedEntity entity)`: Retrieve the property name -/// associated with the provided method invocation, given the managed entity. -/// - `dynamicConvertFromPrimitiveValue(ManagedPropertyDescription property, dynamic value)`: -/// Convert the provided primitive value to the appropriate type for the specified managed -/// property description. -abstract class ManagedEntityRuntime { - /// Performs any necessary finalization steps for the managed entity, such as setting up caches or performing other initialization tasks. - /// - /// This method is called by the [ManagedDataModel] to finalize the managed entity after it has been created. Implementers of this interface - /// should use this method to perform any necessary setup or initialization tasks for the managed entity, such as building caches or - /// preparing other data structures. - /// - /// The [dataModel] parameter provides access to the overall [ManagedDataModel] that contains this managed entity, which may be useful for - /// performing finalization tasks that require information about the broader data model. - void finalize(ManagedDataModel dataModel) {} - - /// The entity associated with this managed object. - /// - /// This property provides access to the [ManagedEntity] instance that represents the database table - /// associated with this [ManagedObject]. The [ManagedEntity] contains metadata about the structure of - /// the database table, such as the names and types of its columns, and the relationships between - /// this table and other tables. - ManagedEntity get entity; - - /// Creates a new instance of this entity's instance type. - /// - /// By default, the returned object will use a normal value backing map. - /// If [backing] is non-null, it will be the backing map of the returned object. - ManagedObject instanceOfImplementation({ManagedBacking? backing}); - - /// Creates a new [ManagedSet] of the type associated with this managed entity from the provided [objects]. - /// - /// The [objects] parameter should be an [Iterable] of dynamic values that can be - /// converted to instances of the [ManagedObject] type associated with this managed entity. - /// This method will use the [ManagedEntityRuntime] implementation to create the appropriate - /// [ManagedSet] instance. - /// - /// If the [objects] cannot be converted to instances of the [ManagedObject] type, this - /// method will return `null`. - ManagedSet setOfImplementation(Iterable objects); - - /// Sets a transient value for the specified key on the given [ManagedObject] instance. - /// - /// The [object] parameter is the [ManagedObject] instance on which the transient value should be set. - /// The [key] parameter is the string identifier for the transient value that should be set. - /// The [value] parameter is the dynamic value that should be assigned to the transient property identified by the [key]. - void setTransientValueForKey(ManagedObject object, String key, dynamic value); - - /// Retrieves the transient value for the specified key on the given [ManagedObject] instance. - /// - /// The [object] parameter is the [ManagedObject] instance from which the transient value should be retrieved. - /// The [key] parameter is the string identifier for the transient value that should be retrieved. - /// This method returns the dynamic value associated with the transient property identified by the [key]. - /// If the [key] does not exist or is `null`, this method will return `null`. - dynamic getTransientValueForKey(ManagedObject object, String? key); - - /// Checks if the provided [value] is an instance of the [ManagedObject] associated with this [ManagedEntity]. - /// - /// This method is used to determine if a given value is an instance of the [ManagedObject] type that corresponds - /// to the current [ManagedEntity]. This is useful for validating the type of values that are being used with - /// this managed entity. - /// - /// The [value] parameter is the dynamic value to be checked. - /// - /// Returns `true` if the [value] is an instance of the [ManagedObject] associated with this [ManagedEntity], - /// and `false` otherwise. - bool isValueInstanceOf(dynamic value); - - /// Checks if the provided [value] is a list of instances of the [ManagedObject] associated with this [ManagedEntity]. - /// - /// This method is used to determine if a given value is a list of instances of the [ManagedObject] type that corresponds - /// to the current [ManagedEntity]. This is useful for validating the type of values that are being used with - /// this managed entity. - /// - /// The [value] parameter is the dynamic value to be checked. - /// - /// Returns `true` if the [value] is a list of instances of the [ManagedObject] associated with this [ManagedEntity], - /// and `false` otherwise. - bool isValueListOf(dynamic value); - - /// Retrieves the property name associated with the provided method invocation, given the managed entity. - /// - /// This method is used to determine the name of the property that a method invocation is accessing on a - /// [ManagedObject] instance. This information is often needed to properly handle the invocation and - /// interact with the managed entity. - /// - /// The [invocation] parameter is the [Invocation] object that represents the method invocation. - /// The [entity] parameter is the [ManagedEntity] instance that the method invocation is being performed on. - /// - /// Returns the property name associated with the provided method invocation, or `null` if the property - /// name cannot be determined. - String? getPropertyName(Invocation invocation, ManagedEntity entity); - - /// Converts the provided primitive [value] to the appropriate type for the specified [property]. - /// - /// This method is used to convert a dynamic value, such as one retrieved from a database or API, - /// into the correct type for a [ManagedPropertyDescription]. The [property] parameter specifies - /// the type of the property that the value should be converted to. - /// - /// The [value] parameter is the dynamic value to be converted. This method will attempt to - /// convert the [value] to the appropriate type for the [property], based on the property's - /// [ManagedPropertyType]. If the conversion is not possible, the method may return a value - /// that is not strictly type-compatible with the property, but is the closest possible - /// representation. - /// - /// The returned value will be of a type that is compatible with the [property]'s - /// [ManagedPropertyType]. If the conversion is not possible, the method may return a value - /// that is not strictly type-compatible with the property, but is the closest possible - /// representation. - dynamic dynamicConvertFromPrimitiveValue( - ManagedPropertyDescription property, - dynamic value, - ); -} diff --git a/packages/database/lib/src/managed/exception.dart b/packages/database/lib/src/managed/exception.dart deleted file mode 100644 index a1d3ce7..0000000 --- a/packages/database/lib/src/managed/exception.dart +++ /dev/null @@ -1,19 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// An exception thrown when an ORM property validator is violated. -/// -/// This exception behaves the same as [SerializableException]. It is used to -/// indicate that a validation error has occurred, such as when a property -/// value does not meet the expected criteria. -class ValidationException extends SerializableException { - ValidationException(super.errors); -} diff --git a/packages/database/lib/src/managed/key_path.dart b/packages/database/lib/src/managed/key_path.dart deleted file mode 100644 index b6a297d..0000000 --- a/packages/database/lib/src/managed/key_path.dart +++ /dev/null @@ -1,151 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; - -/// A class that represents a path to a property in a managed object. -/// -/// The `KeyPath` class is used to represent a path to a property within a managed object. -/// It provides methods to create new `KeyPath` instances by removing or adding keys to an -/// existing `KeyPath`. -/// -/// The `path` field is a list of `ManagedPropertyDescription` objects, which represent -/// the individual properties that make up the path. The `dynamicElements` field is used -/// to store any dynamic elements that are part of the path. -/// -/// Example usage: -/// ```dart -/// final keyPath = KeyPath(managedObject.property); -/// final newKeyPath = KeyPath.byAddingKey(keyPath, managedObject.anotherProperty); -/// ``` -class KeyPath { - /// Constructs a new `KeyPath` instance with the given root property. - /// - /// The `path` field of the `KeyPath` instance will be initialized with a single - /// `ManagedPropertyDescription` object, which represents the root property. - /// - /// This constructor is typically used as the starting point for building a `KeyPath` - /// instance, which can then be further modified using the other constructors and - /// methods provided by the `KeyPath` class. - /// - /// Example: - /// ```dart - /// final keyPath = KeyPath(managedObject.property); - /// ``` - KeyPath(ManagedPropertyDescription? root) : path = [root]; - - /// Creates a new `KeyPath` instance by removing the first `offset` keys from the original `KeyPath`. - /// - /// This constructor is useful when you want to create a new `KeyPath` that represents a sub-path of an existing `KeyPath`. - /// - /// The `original` parameter is the `KeyPath` instance from which the new `KeyPath` will be derived. - /// The `offset` parameter specifies the number of keys to remove from the beginning of the `original` `KeyPath`. - /// - /// The resulting `KeyPath` instance will have a `path` list that contains the remaining keys, starting from the `offset`-th key. - /// - /// Example: - /// ```dart - /// final originalKeyPath = KeyPath(managedObject.property1).byAddingKey(managedObject.property2); - /// final subKeyPath = KeyPath.byRemovingFirstNKeys(originalKeyPath, 1); - /// // The `subKeyPath` will have a `path` list containing only `managedObject.property2` - /// ``` - KeyPath.byRemovingFirstNKeys(KeyPath original, int offset) - : path = original.path.sublist(offset); - - /// Constructs a new `KeyPath` instance by adding a new key to the end of an existing `KeyPath`. - /// - /// This constructor is useful when you want to create a new `KeyPath` that represents a longer path - /// by adding a new property to the end of an existing `KeyPath`. - /// - /// The `original` parameter is the `KeyPath` instance to which the new key will be added. - /// The `key` parameter is the `ManagedPropertyDescription` of the new property to be added to the `KeyPath`. - /// - /// The resulting `KeyPath` instance will have a `path` list that contains all the keys from the `original` - /// `KeyPath`, plus the new `key` added to the end. - /// - /// Example: - /// ```dart - /// final originalKeyPath = KeyPath(managedObject.property1); - /// final newKeyPath = KeyPath.byAddingKey(originalKeyPath, managedObject.property2); - /// // The `newKeyPath` will have a `path` list containing both `managedObject.property1` and `managedObject.property2` - /// ``` - KeyPath.byAddingKey(KeyPath original, ManagedPropertyDescription key) - : path = List.from(original.path)..add(key); - - /// A list of `ManagedPropertyDescription` objects that represent the individual properties - /// that make up the path of the `KeyPath` instance. The order of the properties in the - /// list corresponds to the order of the path. - /// - /// This field is used to store the individual properties that make up the path of the `KeyPath`. - /// Each `ManagedPropertyDescription` object in the list represents a single property in the path. - /// The order of the properties in the list corresponds to the order of the path, with the first - /// property in the path being the first element in the list, and so on. - final List path; - - /// A list of dynamic elements that are part of the key path. - /// - /// The `dynamicElements` field is used to store any dynamic elements that are part of the `KeyPath`. This allows the `KeyPath` to represent paths that include dynamic or variable elements, in addition to the static property descriptions stored in the `path` field. - List? dynamicElements; - - /// Returns the `ManagedPropertyDescription` at the specified `index` in the `path` list. - /// - /// This operator allows you to access the individual `ManagedPropertyDescription` objects that make up the `KeyPath` instance, using an index. - /// - /// Example: - /// ```dart - /// final keyPath = KeyPath(managedObject.property1).byAddingKey(managedObject.property2); - /// final secondProperty = keyPath[1]; // Returns the `ManagedPropertyDescription` for `managedObject.property2` - /// ``` - ManagedPropertyDescription? operator [](int index) => path[index]; - - /// Returns the number of properties in the key path. - /// - /// This getter returns the length of the `path` list, which represents the number of - /// properties that make up the key path. This can be useful when you need to know - /// how many properties are in the key path, for example, when iterating over them - /// or performing other operations that require the length of the key path. - int get length => path.length; - - /// Adds a new `ManagedPropertyDescription` to the end of the `path` list. - /// - /// This method is used to add a new property description to the `KeyPath` instance. - /// The new property description will be appended to the end of the `path` list, effectively - /// extending the key path. - /// - /// This can be useful when you need to create a new `KeyPath` by adding additional properties - /// to an existing `KeyPath` instance. - /// - /// Example: - /// ```dart - /// final keyPath = KeyPath(managedObject.property1); - /// keyPath.add(managedObject.property2); - /// // The `keyPath` now represents the path "property1.property2" - /// ``` - void add(ManagedPropertyDescription element) { - path.add(element); - } - - /// Adds a dynamic element to the `dynamicElements` list. - /// - /// This method is used to add a new dynamic element to the `dynamicElements` list of the `KeyPath` instance. - /// The `dynamicElements` list is used to store any dynamic or variable elements that are part of the key path, in - /// addition to the static property descriptions stored in the `path` list. - /// - /// If the `dynamicElements` list is `null`, it will be initialized before adding the new element. - /// - /// Example: - /// ```dart - /// final keyPath = KeyPath(managedObject.property1); - /// keyPath.addDynamicElement(someVariable); - /// ``` - void addDynamicElement(dynamic element) { - dynamicElements ??= []; - dynamicElements!.add(element); - } -} diff --git a/packages/database/lib/src/managed/managed.dart b/packages/database/lib/src/managed/managed.dart deleted file mode 100644 index f472767..0000000 --- a/packages/database/lib/src/managed/managed.dart +++ /dev/null @@ -1,45 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library file serves as a central export point for various components -/// of the Protevus Platform's data model and validation system. -/// -/// It exports the following modules: -/// - attributes: Likely contains attribute-related functionality -/// - context: Probably defines context-related classes or functions -/// - data_model: Likely contains core data model structures -/// - document: Possibly related to document handling or representation -/// - entity: Likely defines entity-related classes or functions -/// - exception: Probably contains custom exception classes -/// - object: Likely contains object-related utilities or base classes -/// - property_description: Possibly related to describing object properties -/// - set: Likely contains set-related functionality -/// - type: Probably includes type-related utilities or definitions -/// - validation/managed: Likely contains managed validation functionality -/// - validation/metadata: Probably includes metadata-based validation -/// - key_path: Likely related to handling key paths in data structures -/// -/// This library file allows users to import all these components with a single -/// import statement, simplifying the use of the Protevus Platform's core -/// functionalities in other parts of the application. -library; - -export 'attributes.dart'; -export 'context.dart'; -export 'data_model.dart'; -export 'document.dart'; -export 'entity.dart'; -export 'exception.dart'; -export 'object.dart'; -export 'property_description.dart'; -export 'set.dart'; -export 'type.dart'; -export 'validation/managed.dart'; -export 'validation/metadata.dart'; -export 'key_path.dart'; diff --git a/packages/database/lib/src/managed/object.dart b/packages/database/lib/src/managed/object.dart deleted file mode 100644 index 5752e9e..0000000 --- a/packages/database/lib/src/managed/object.dart +++ /dev/null @@ -1,469 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/src/managed/backing.dart'; -import 'package:protevus_database/src/managed/data_model_manager.dart' as mm; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:meta/meta.dart'; - -/// An abstract class that provides storage for [ManagedObject] instances. -/// -/// This class is primarily used internally. -/// -/// A [ManagedObject] stores properties declared by its type argument in instances of this type. -/// Values are validated against the [ManagedObject.entity]. -/// -/// Instances of this type only store properties for which a value has been explicitly set. This allows -/// serialization classes to omit unset values from the serialized values. Therefore, instances of this class -/// provide behavior that can differentiate between a property being the null value and a property simply not being -/// set. (Therefore, you must use [removeProperty] instead of setting a value to null to really remove it from instances -/// of this type.) -/// -/// Conduit implements concrete subclasses of this class to provide behavior for property storage -/// and query-building. -abstract class ManagedBacking { - /// Retrieves the value of the specified [ManagedPropertyDescription] property. - /// - /// This method is used to get the value of a property from the [ManagedBacking] instance. - /// - /// Parameters: - /// - [property]: The [ManagedPropertyDescription] for the property to retrieve. - /// - /// Returns: - /// The value of the specified property. - dynamic valueForProperty(ManagedPropertyDescription property); - - /// Sets the value of the specified [ManagedPropertyDescription] property to the provided [value]. - /// - /// Parameters: - /// - [property]: The [ManagedPropertyDescription] of the property to be set. - /// - [value]: The value to be set for the specified property. - void setValueForProperty(ManagedPropertyDescription property, dynamic value); - - /// Removes a property from the backing map of this [ManagedBacking] instance. - /// - /// Use this method to use any reference of a property from this instance. - void removeProperty(String propertyName) { - contents.remove(propertyName); - } - - /// A map of all set values of this instance. - /// - /// This property returns a map that contains all the properties that have been set - /// on this instance of `ManagedBacking`. The keys in the map are the property names, - /// and the values are the corresponding property values. - Map get contents; -} - -/// An abstract class that provides storage for [ManagedObject] instances. -/// -/// This class must be subclassed. A subclass is declared for each table in a database. These subclasses -/// create the data model of an application. -/// -/// A managed object is declared in two parts, the subclass and its table definition. -/// -/// class User extends ManagedObject<_User> implements _User { -/// String name; -/// } -/// class _User { -/// @primaryKey -/// int id; -/// -/// @Column(indexed: true) -/// String email; -/// } -/// -/// Table definitions are plain Dart objects that represent a database table. Each property is a column in the database. -/// -/// A subclass of this type must implement its table definition and use it as the type argument of [ManagedObject]. Properties and methods -/// declared in the subclass (also called the 'instance type') are not stored in the database. -/// -/// See more documentation on defining a data model at http://conduit.io/docs/db/modeling_data/ -abstract class ManagedObject extends Serializable { - /// IMPROVEMENT: Cache of entity.properties to reduce property loading time - /// - /// This code caches the entity's properties in a `Map` to - /// improve the performance of accessing these properties. By caching the properties, the code - /// avoids having to load them from the `entity` object every time they are needed, which can - /// improve the overall performance of the application. - late Map properties = entity.properties; - - /// A cache of the `entity.properties` map, using the response key name as the key. - /// - /// If a property does not have a response key set, the default property name is used as the key instead. - /// This cache is used to improve the performance of accessing the property information, as it avoids having to - /// look up the properties in the `entity.properties` map every time they are needed. - late Map responseKeyProperties = { - for (final key in properties.keys) mapKeyName(key): properties[key] - }; - - /// A flag that determines whether to include a property with a null value in the output map. - /// - /// When the `ManagedObject` has no properties or the first property's response model has `includeIfNullField` set to `true`, - /// this flag is set to `true`, indicating that null values should be included in the output map. - /// Otherwise, it is set to `false`, and null values will be omitted from the output map. - late final bool modelFieldIncludeIfNull = properties.isEmpty || - (properties.values.first?.responseModel?.includeIfNullField ?? true); - - /// Determines the key name to use for a property when serializing the model to a map. - /// - /// This method first checks if the property has a response key set, and if so, uses that as the key name. - /// If the property does not have a response key, it uses the property name. - /// If the property name is null, it falls back to using the original property name. - /// - /// This allows the model to control the key names used in the serialized output, which can be useful for - /// maintaining consistent naming conventions or working with external APIs that have specific key naming requirements. - /// - /// Parameters: - /// - `propertyName`: The name of the property to get the key name for. - /// - /// Returns: - /// The key name to use for the property when serializing the model to a map. - String mapKeyName(String propertyName) { - final property = properties[propertyName]; - return property?.responseKey?.name ?? property?.name ?? propertyName; - } - - /// A flag that determines whether this class should be automatically documented. - /// - /// If `true`, the class will be automatically documented, typically as part of an API documentation generation process. - /// If `false`, the class will not be automatically documented, and any documentation for it must be added manually. - static bool get shouldAutomaticallyDocument => false; - - /// The [ManagedEntity] this instance is described by. - /// - /// This property holds the [ManagedEntity] that describes the table definition for the managed object - /// of type `T`. The [ManagedEntity] is used to provide metadata about the object, such as its - /// properties, relationships, and validation rules. - ManagedEntity entity = mm.findEntity(T); - - /// The persistent values of this object. - /// - /// This property represents the persistent values of the current `ManagedObject` instance. The values are stored in a - /// [ManagedBacking] object, which is a `Map` where the keys are property names and the values are the corresponding - /// property values. - /// - /// You rarely need to use [backing] directly. There are many implementations of [ManagedBacking] - /// for fulfilling the behavior of the ORM, so you cannot rely on its behavior. - ManagedBacking backing = ManagedValueBacking(); - - /// Retrieves a value by property name from [backing]. - /// - /// This operator overload allows you to access the value of a property on the `ManagedObject` instance - /// using the bracket notation (`instance[propertyName]`). - /// - /// Parameters: - /// - `propertyName`: The name of the property to retrieve the value for. - /// - /// Returns: - /// The value of the specified property, or throws an `ArgumentError` if the property does not exist on the entity. - dynamic operator [](String propertyName) { - final prop = properties[propertyName]; - if (prop == null) { - throw ArgumentError("Invalid property access for '${entity.name}'. " - "Property '$propertyName' does not exist on '${entity.name}'."); - } - - return backing.valueForProperty(prop); - } - - /// Sets a value by property name in [backing]. - /// - /// This operator overload allows you to set the value of a property on the `ManagedObject` instance - /// using the bracket notation (`instance[propertyName] = value`). - /// - /// Parameters: - /// - `propertyName`: The name of the property to set the value for. - /// - `value`: The value to set for the specified property. - /// - /// Throws: - /// - `ArgumentError` if the specified `propertyName` does not exist on the entity. - void operator []=(String? propertyName, dynamic value) { - final prop = properties[propertyName]; - if (prop == null) { - throw ArgumentError("Invalid property access for '${entity.name}'. " - "Property '$propertyName' does not exist on '${entity.name}'."); - } - - backing.setValueForProperty(prop, value); - } - - /// Removes a property from [backing]. - /// - /// This method removes the specified property from the backing map of the `ManagedBacking` instance. - /// - /// Parameters: - /// - `propertyName`: The name of the property to remove from the backing map. - void removePropertyFromBackingMap(String propertyName) { - backing.removeProperty(propertyName); - } - - /// Removes multiple properties from [backing]. - /// - /// This method removes the specified properties from the backing map of the `ManagedBacking` instance. - /// - /// Parameters: - /// - `propertyNames`: A list of property names to remove from the backing map. - void removePropertiesFromBackingMap(List propertyNames) { - for (final propertyName in propertyNames) { - backing.removeProperty(propertyName); - } - } - - /// Checks whether or not a property has been set in this instances' [backing]. - /// - /// This method checks if the specified property name exists as a key in the [contents] map of the [backing] object. - /// It returns `true` if the property has been set, and `false` otherwise. - /// - /// Parameters: - /// - `propertyName`: The name of the property to check for. - /// - /// Returns: - /// `true` if the property has been set in the [backing] object, `false` otherwise. - bool hasValueForProperty(String propertyName) { - return backing.contents.containsKey(propertyName); - } - - /// Callback to modify an object prior to updating it with a [Query]. - /// - /// Subclasses of this type may override this method to set or modify values prior to being updated - /// via [Query.update] or [Query.updateOne]. It is automatically invoked by [Query.update] and [Query.updateOne]. - /// - /// This method is invoked prior to validation and therefore any values modified in this method - /// are subject to the validation behavior of this instance. - /// - /// An example implementation would set the 'updatedDate' of an object each time it was updated: - /// - /// @override - /// void willUpdate() { - /// updatedDate = new DateTime.now().toUtc(); - /// } - /// - /// This method is only invoked when a query is configured by its [Query.values]. This method is not invoked - /// if [Query.valueMap] is used to configure a query. - void willUpdate() {} - - /// Callback to modify an object prior to inserting it with a [Query]. - /// - /// Subclasses of this type may override this method to set or modify values prior to being inserted - /// via [Query.insert]. It is automatically invoked by [Query.insert]. - /// - /// This method is invoked prior to validation and therefore any values modified in this method - /// are subject to the validation behavior of this instance. - /// - /// An example implementation would set the 'createdDate' of an object when it is first created: - /// @override - /// void willInsert() { - /// createdDate = new DateTime.now().toUtc(); - /// } - /// - /// This method is only invoked when a query is configured by its [Query.values]. This method is not invoked - /// if [Query.valueMap] is used to configure a query. - void willInsert() {} - - /// Validates an object according to its property [Validate] metadata. - /// - /// This method is invoked by [Query] when inserting or updating an instance of this type. By default, - /// this method runs all of the [Validate] metadata for each property of this instance's persistent type. See [Validate] - /// for more information. If validations succeed, the returned context [ValidationContext.isValid] will be true. Otherwise, - /// it is false and all errors are available in [ValidationContext.errors]. - /// - /// This method returns the result of [ManagedValidator.run]. You may override this method to provide additional validation - /// prior to insertion or deletion. If you override this method, you *must* invoke the super implementation to - /// allow [Validate] annotations to run, e.g.: - /// - /// ValidationContext validate({Validating forEvent: Validating.insert}) { - /// var context = super(forEvent: forEvent); - /// - /// if (a + b > 10) { - /// context.addError("a + b > 10"); - /// } - /// - /// return context; - /// } - @mustCallSuper - ValidationContext validate({Validating forEvent = Validating.insert}) { - return ManagedValidator.run(this, event: forEvent); - } - - /// Provides dynamic handling of property access and updates. - /// - /// This `noSuchMethod` implementation allows for dynamic access and updates to properties of the `ManagedObject`. - /// - /// When an unknown method is called on the `ManagedObject`, this implementation will check if the method name - /// corresponds to a property on the entity. If it does, it will return the value of the property if the method - /// is a getter, or set the value of the property if the method is a setter. - /// - /// If the method name does not correspond to a property, the default `NoSuchMethodError` is thrown. - /// - /// This implementation provides a more convenient way to access and update properties compared to using the - /// square bracket notation (`[]` and `[]=`). - @override - dynamic noSuchMethod(Invocation invocation) { - final propertyName = entity.runtime.getPropertyName(invocation, entity); - if (propertyName != null) { - if (invocation.isGetter) { - return this[propertyName]; - } else if (invocation.isSetter) { - this[propertyName] = invocation.positionalArguments.first; - - return null; - } - } - - throw NoSuchMethodError.withInvocation(this, invocation); - } - - /// Reads the values from the provided [object] map and sets them on the [ManagedObject] instance. - /// - /// This method iterates over the key-value pairs in the [object] map and sets the corresponding - /// properties on the [ManagedObject] instance. It checks the following: - /// - /// - If the key in the [object] map does not correspond to a property in the [responseKeyProperties] - /// map, it throws a [ValidationException] with the error message "invalid input key 'key'". - /// - If the property is marked as private (its name starts with an underscore), it throws a - /// [ValidationException] with the error message "invalid input key 'key'". - /// - If the property is a [ManagedAttributeDescription]: - /// - If the property is not transient, it sets the value on the [backing] object using the - /// [convertFromPrimitiveValue] method of the property. - /// - If the property is transient, it checks if the property is available as input. If not, it - /// throws a [ValidationException] with the error message "invalid input key 'key'". Otherwise, - /// it sets the transient value on the [ManagedObject] instance using the - /// [setTransientValueForKey] method of the [entity.runtime]. - /// - For all other properties, it sets the value on the [backing] object using the - /// [convertFromPrimitiveValue] method of the property. - /// - /// Parameters: - /// - [object]: A map of the values to be set on the [ManagedObject] instance. - /// - /// Throws: - /// - [ValidationException] if any of the input keys are invalid or the values cannot be converted - /// to the appropriate type. - @override - void readFromMap(Map object) { - object.forEach((key, v) { - final property = responseKeyProperties[key]; - if (property == null) { - throw ValidationException(["invalid input key '$key'"]); - } - if (property.isPrivate) { - throw ValidationException(["invalid input key '$key'"]); - } - - if (property is ManagedAttributeDescription) { - if (!property.isTransient) { - backing.setValueForProperty( - property, - property.convertFromPrimitiveValue(v), - ); - } else { - if (!property.transientStatus!.isAvailableAsInput) { - throw ValidationException(["invalid input key '$key'"]); - } - - final decodedValue = property.convertFromPrimitiveValue(v); - - if (!property.isAssignableWith(decodedValue)) { - throw ValidationException(["invalid input type for key '$key'"]); - } - - entity.runtime - .setTransientValueForKey(this, property.name, decodedValue); - } - } else { - backing.setValueForProperty( - property, - property.convertFromPrimitiveValue(v), - ); - } - }); - } - - /// Converts this instance into a serializable map. - /// - /// This method returns a map of the key-values pairs in this instance. This value is typically converted into a transmission format like JSON. - /// - /// Only properties present in [backing] are serialized, otherwise, they are omitted from the map. If a property is present in [backing] and the value is null, - /// the value null will be serialized for that property key. - /// - /// Usage: - /// var json = json.encode(model.asMap()); - @override - Map asMap() { - final outputMap = {}; - - backing.contents.forEach((k, v) { - if (!_isPropertyPrivate(k)) { - final property = properties[k]; - final value = property!.convertToPrimitiveValue(v); - if (value == null && !_includeIfNull(property)) { - return; - } - outputMap[mapKeyName(k)] = value; - } - }); - - entity.attributes.values - .where((attr) => attr!.transientStatus?.isAvailableAsOutput ?? false) - .forEach((attr) { - final value = entity.runtime.getTransientValueForKey(this, attr!.name); - if (value != null) { - outputMap[mapKeyName(attr.responseKey?.name ?? attr.name)] = value; - } - }); - - return outputMap; - } - - /// Generates an [APISchemaObject] that describes the schema of the managed object. - /// - /// This method is used to generate an [APISchemaObject] that describes the schema of the managed object. The resulting - /// schema object can be used in OpenAPI/Swagger documentation or other API documentation tools. - /// - /// The [APIDocumentContext] parameter is used to provide contextual information about the API documentation being generated. - /// This context is passed to the [ManagedEntity.document] method, which is responsible for generating the schema object. - /// - /// Returns: - /// The [APISchemaObject] that describes the schema of the managed object. - @override - APISchemaObject documentSchema(APIDocumentContext context) => - entity.document(context); - - /// Checks if a property is private. - /// - /// This method checks whether the given property name starts with an underscore, - /// which is a common convention in Dart to indicate a private property. - /// - /// Parameters: - /// - `propertyName`: The name of the property to check. - /// - /// Returns: - /// `true` if the property name starts with an underscore, indicating that the - /// property is private, and `false` otherwise. - static bool _isPropertyPrivate(String propertyName) => - propertyName.startsWith("_"); - - /// Determines whether to include a property with a null value in the output map. - /// - /// This method checks the `includeIfNull` property of the `responseKey` associated with the - /// given `ManagedPropertyDescription`. If the `responseKey` has an `includeIfNull` value set, - /// that value is used. Otherwise, the `modelFieldIncludeIfNull` flag is used. - /// - /// Parameters: - /// - `property`: The `ManagedPropertyDescription` to check for the `includeIfNull` setting. - /// - /// Returns: - /// `true` if a property with a null value should be included in the output map, `false` otherwise. - bool _includeIfNull(ManagedPropertyDescription property) => - property.responseKey?.includeIfNull ?? modelFieldIncludeIfNull; -} diff --git a/packages/database/lib/src/managed/property_description.dart b/packages/database/lib/src/managed/property_description.dart deleted file mode 100644 index fa9b808..0000000 --- a/packages/database/lib/src/managed/property_description.dart +++ /dev/null @@ -1,973 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/managed/relationship_type.dart'; -import 'package:protevus_database/src/persistent_store/persistent_store.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// Contains database column information and metadata for a property of a [ManagedObject] object. -/// -/// Each property a [ManagedObject] object manages is described by an instance of [ManagedPropertyDescription], which contains useful information -/// about the property such as its name and type. Those properties are represented by concrete subclasses of this class, [ManagedRelationshipDescription] -/// and [ManagedAttributeDescription]. -abstract class ManagedPropertyDescription { - /// Initializes a new instance of [ManagedPropertyDescription]. - /// - /// The [ManagedPropertyDescription] class represents a property of a [ManagedObject] object. This constructor sets the basic properties of the - /// [ManagedPropertyDescription] instance, such as the entity, name, type, declared type, uniqueness, indexing, nullability, inclusion in default result sets, - /// autoincrement, validators, response model, and response key. - /// - /// Parameters: - /// - [entity]: The [ManagedEntity] that contains this property. - /// - [name]: The identifying name of this property. - /// - [type]: The value type of this property, indicating the Dart type and database column type. - /// - [declaredType]: The type of the variable that this property represents. - /// - [unique]: Whether or not this property must be unique across all instances represented by [entity]. Defaults to `false`. - /// - [indexed]: Whether or not this property should be indexed by a [PersistentStore]. Defaults to `false`. - /// - [nullable]: Whether or not this property can be null. Defaults to `false`. - /// - [includedInDefaultResultSet]: Whether or not this property is returned in the default set of [Query.returningProperties]. Defaults to `true`. - /// - [autoincrement]: Whether or not this property should use an auto-incrementing scheme. Defaults to `false`. - /// - [validators]: A list of [ManagedValidator]s for this instance. - /// - [responseModel]: The [ResponseModel] associated with this property. - /// - [responseKey]: The [ResponseKey] associated with this property. - ManagedPropertyDescription( - this.entity, - this.name, - this.type, - this.declaredType, { - bool unique = false, - bool indexed = false, - bool nullable = false, - bool includedInDefaultResultSet = true, - this.autoincrement = false, - List validators = const [], - this.responseModel, - this.responseKey, - }) : isUnique = unique, - isIndexed = indexed, - isNullable = nullable, - isIncludedInDefaultResultSet = includedInDefaultResultSet, - _validators = validators { - for (final v in _validators) { - v.property = this; - } - } - - /// A reference to the [ManagedEntity] that contains this property. - /// - /// The [ManagedEntity] that this [ManagedPropertyDescription] belongs to. This property provides a way to access the entity that - /// manages the data represented by this property. - final ManagedEntity entity; - - /// The value type of this property. - /// - /// This property indicates the Dart type and database column type of this property. It is used to determine how the property - /// should be stored and retrieved from the database, as well as how it should be represented in the application's data model. - final ManagedType? type; - - /// The identifying name of this property. - /// - /// This field represents the name of the property being described by this [ManagedPropertyDescription] instance. - /// The name is used to uniquely identify the property within the [ManagedEntity] that it belongs to. - final String name; - - /// Whether or not this property must be unique to across all instances represented by [entity]. - /// - /// This property determines if the value of this property must be unique across all instances of the [ManagedObject] that this [ManagedPropertyDescription] belongs to. If set to `true`, the [PersistentStore] will ensure that no two instances have the same value for this property. - /// - /// Defaults to `false`. - final bool isUnique; - - /// Whether or not this property should be indexed by a [PersistentStore]. - /// - /// When set to `true`, the [PersistentStore] will create an index for this property, which can improve the performance of - /// queries that filter or sort on this property. This is useful for properties that are frequently used in queries, but it - /// may come at the cost of increased storage requirements and write latency. - /// - /// Defaults to `false`. - final bool isIndexed; - - /// Whether or not this property can be null. - /// - /// This property determines if the value of this property can be `null` or not. If set to `true`, the [ManagedObject] that this - /// [ManagedPropertyDescription] belongs to can have a `null` value for this property. If set to `false`, the [ManagedObject] - /// cannot have a `null` value for this property. - /// - /// Defaults to `false`. - final bool isNullable; - - /// Whether or not this property is returned in the default set of [Query.returningProperties]. - /// - /// This defaults to `true`. If `true`, when executing a [Query] that does not explicitly specify [Query.returningProperties], - /// this property will be returned. If `false`, you must explicitly specify this property in [Query.returningProperties] to retrieve it from persistent storage. - final bool isIncludedInDefaultResultSet; - - /// Whether or not this property should use an auto-incrementing scheme. - /// - /// When this is set to `true`, it signals to the [PersistentStore] that this property should automatically be assigned a value - /// by the database. This is commonly used for primary key properties that should have a unique, incrementing value for each new - /// instance of the [ManagedObject]. - /// - /// Defaults to `false`. - final bool autoincrement; - - /// Determines whether the current property is marked as private. - /// - /// Private variables are prefixed with `_` (underscores). This properties are not read - /// or written to maps and cannot be accessed from outside the class. - /// - /// This flag is not included in schemas documents used by database migrations and other tools. - bool get isPrivate { - return name.startsWith("_"); - } - - /// The list of [ManagedValidator]s associated with this instance. - /// - /// [ManagedValidator]s are used to validate the values of this property - /// before they are stored in the database. The `validators` property - /// returns a read-only list of these validators. - List get validators => _validators; - - /// The list of [ManagedValidator]s associated with this instance. - /// - /// [ManagedValidator]s are used to validate the values of this property - /// before they are stored in the database. The `validators` property - /// returns a read-only list of these validators. - final List _validators; - - /// The [ResponseModel] associated with this property. - /// - /// The [ResponseModel] defines the structure of the response - /// that will be returned for this property. This allows for - /// customization of the documentation and schema for this - /// property, beyond the default behavior. - final ResponseModel? responseModel; - - /// The [ResponseKey] associated with this property. - /// - /// The [ResponseKey] defines the key that will be used for this - /// property in the response object. This allows for customization - /// of the property names in the response, beyond the default - /// behavior. - final ResponseKey? responseKey; - - /// Determines whether the provided Dart value can be assigned to this property. - /// - /// This method checks if the given `dartValue` is compatible with the type of this property. - /// It delegates the type checking to the `isAssignableWith` method of the [ManagedType] associated with this property. - /// - /// Returns: - /// - `true` if the `dartValue` can be assigned to this property. - /// - `false` otherwise. - bool isAssignableWith(dynamic dartValue) => type!.isAssignableWith(dartValue); - - /// Converts a value from a more complex value into a primitive value according to this instance's definition. - /// - /// This method takes a Dart representation of a value and converts it to something that can - /// be used elsewhere (e.g. an HTTP body or database query). How this value is computed - /// depends on this instance's definition. - /// - /// Parameters: - /// - [value]: The Dart representation of the value to be converted. - /// - /// Returns: - /// The converted primitive value. - dynamic convertToPrimitiveValue(dynamic value); - - /// Converts a value to a more complex value from a primitive value according to this instance's definition. - /// - /// This method takes a non-Dart representation of a value (e.g. an HTTP body or database query) - /// and turns it into a Dart representation. How this value is computed - /// depends on this instance's definition. - dynamic convertFromPrimitiveValue(dynamic value); - - /// The type of the variable that this property represents. - /// - /// This property represents the Dart type of the variable that the [ManagedPropertyDescription] instance - /// is describing. It is used to ensure that the value assigned to this property is compatible with the - /// expected type. - final Type? declaredType; - - /// Returns an [APISchemaObject] that represents this property. - /// - /// This method generates an [APISchemaObject] that describes the schema of this property, which can be used for API documentation. - /// - /// Parameters: - /// - [context]: The [APIDocumentContext] that provides information about the current documentation context. - /// - /// Returns: - /// An [APISchemaObject] that represents the schema of this property. - APISchemaObject documentSchemaObject(APIDocumentContext context); - - /// Creates a typed API schema object based on the provided [ManagedType]. - /// - /// This method generates an [APISchemaObject] that represents the schema of a property based on its - /// [ManagedType]. The generated schema object can be used for API documentation and other purposes. - /// - /// Parameters: - /// - [type]: The [ManagedType] that the schema object should be generated for. - /// - /// Returns: - /// An [APISchemaObject] that represents the schema of the provided [ManagedType]. - static APISchemaObject _typedSchemaObject(ManagedType type) { - switch (type.kind) { - case ManagedPropertyType.integer: - return APISchemaObject.integer(); - case ManagedPropertyType.bigInteger: - return APISchemaObject.integer(); - case ManagedPropertyType.doublePrecision: - return APISchemaObject.number(); - case ManagedPropertyType.string: - return APISchemaObject.string(); - case ManagedPropertyType.datetime: - return APISchemaObject.string(format: "date-time"); - case ManagedPropertyType.boolean: - return APISchemaObject.boolean(); - case ManagedPropertyType.list: - return APISchemaObject.array( - ofSchema: _typedSchemaObject(type.elements!), - ); - case ManagedPropertyType.map: - return APISchemaObject.map( - ofSchema: _typedSchemaObject(type.elements!), - ); - case ManagedPropertyType.document: - return APISchemaObject.freeForm(); - } - - // throw UnsupportedError("Unsupported type '$type' when documenting entity."); - } -} - -/// Stores the specifics of database columns in [ManagedObject]s as indicated by [Column]. -/// -/// This class is used internally to manage data models. For specifying these attributes, -/// see [Column]. -/// -/// Attributes are the scalar values of a [ManagedObject] (as opposed to relationship values, -/// which are [ManagedRelationshipDescription] instances). -/// -/// Each scalar property [ManagedObject] object persists is described by an instance of [ManagedAttributeDescription]. This class -/// adds two properties to [ManagedPropertyDescription] that are only valid for non-relationship types, [isPrimaryKey] and [defaultValue]. -class ManagedAttributeDescription extends ManagedPropertyDescription { - /// This constructor is used to create a [ManagedAttributeDescription] instance, which represents a scalar property of a [ManagedObject]. - /// It initializes the properties of the [ManagedPropertyDescription] base class, and also sets the `isPrimaryKey` and `defaultValue` properties - /// specific to [ManagedAttributeDescription]. - /// - /// Parameters: - /// - `entity`: The [ManagedEntity] that contains this property. - /// - `name`: The identifying name of this property. - /// - `type`: The value type of this property, indicating the Dart type and database column type. - /// - `declaredType`: The type of the variable that this property represents. - /// - `transientStatus`: The validity of this attribute as input, output or both. - /// - `primaryKey`: Whether or not this attribute is the primary key for its [ManagedEntity]. Defaults to `false`. - /// - `defaultValue`: The default value for this attribute. Defaults to `null`. - /// - `unique`: Whether or not this property must be unique across all instances represented by `entity`. Defaults to `false`. - /// - `indexed`: Whether or not this property should be indexed by a [PersistentStore]. Defaults to `false`. - /// - `nullable`: Whether or not this property can be null. Defaults to `false`. - /// - `includedInDefaultResultSet`: Whether or not this property is returned in the default set of [Query.returningProperties]. Defaults to `true`. - /// - `autoincrement`: Whether or not this property should use an auto-incrementing scheme. Defaults to `false`. - /// - `validators`: A list of [ManagedValidator]s for this instance. Defaults to an empty list. - /// - `responseModel`: The [ResponseModel] associated with this property. - /// - `responseKey`: The [ResponseKey] associated with this property. - ManagedAttributeDescription( - super.entity, - super.name, - ManagedType super.type, - super.declaredType, { - this.transientStatus, - bool primaryKey = false, - this.defaultValue, - super.unique, - super.indexed, - super.nullable, - super.includedInDefaultResultSet, - super.autoincrement, - super.validators, - super.responseModel, - super.responseKey, - }) : isPrimaryKey = primaryKey; - - /// Initializes a new instance of [ManagedAttributeDescription] for a transient property. - /// - /// A transient property is a property that is not backed by a database column, but is still part of the [ManagedObject] model. - /// - /// Parameters: - /// - `entity`: The [ManagedEntity] that contains this property. - /// - `name`: The identifying name of this property. - /// - `type`: The value type of this property, indicating the Dart type and database column type. - /// - `declaredType`: The type of the variable that this property represents. - /// - `transientStatus`: The validity of this attribute as input, output or both. - /// - `responseKey`: The [ResponseKey] associated with this property. - ManagedAttributeDescription.transient( - super.entity, - super.name, - ManagedType super.type, - Type super.declaredType, - this.transientStatus, { - super.responseKey, - }) : isPrimaryKey = false, - defaultValue = null, - super( - unique: false, - indexed: false, - nullable: false, - includedInDefaultResultSet: false, - autoincrement: false, - validators: [], - ); - - /// Creates a new instance of [ManagedAttributeDescription] with the provided parameters. - /// - /// This method is a factory method that simplifies the creation of [ManagedAttributeDescription] instances. - /// - /// Parameters: - /// - `entity`: The [ManagedEntity] that contains this property. - /// - `name`: The identifying name of this property. - /// - `type`: The value type of this property, indicating the Dart type and database column type. - /// - `transientStatus`: The validity of this attribute as input, output or both. - /// - `primaryKey`: Whether or not this attribute is the primary key for its [ManagedEntity]. Defaults to `false`. - /// - `defaultValue`: The default value for this attribute. Defaults to `null`. - /// - `unique`: Whether or not this property must be unique across all instances represented by `entity`. Defaults to `false`. - /// - `indexed`: Whether or not this property should be indexed by a [PersistentStore]. Defaults to `false`. - /// - `nullable`: Whether or not this property can be null. Defaults to `false`. - /// - `includedInDefaultResultSet`: Whether or not this property is returned in the default set of [Query.returningProperties]. Defaults to `true`. - /// - `autoincrement`: Whether or not this property should use an auto-incrementing scheme. Defaults to `false`. - /// - `validators`: A list of [ManagedValidator]s for this instance. Defaults to an empty list. - /// - `responseKey`: The [ResponseKey] associated with this property. - /// - `responseModel`: The [ResponseModel] associated with this property. - /// - /// Returns: - /// A new instance of [ManagedAttributeDescription] with the provided parameters. - static ManagedAttributeDescription make( - ManagedEntity entity, - String name, - ManagedType type, { - Serialize? transientStatus, - bool primaryKey = false, - String? defaultValue, - bool unique = false, - bool indexed = false, - bool nullable = false, - bool includedInDefaultResultSet = true, - bool autoincrement = false, - List validators = const [], - ResponseKey? responseKey, - ResponseModel? responseModel, - }) { - return ManagedAttributeDescription( - entity, - name, - type, - T, - transientStatus: transientStatus, - primaryKey: primaryKey, - defaultValue: defaultValue, - unique: unique, - indexed: indexed, - nullable: nullable, - includedInDefaultResultSet: includedInDefaultResultSet, - autoincrement: autoincrement, - validators: validators, - responseKey: responseKey, - responseModel: responseModel, - ); - } - - /// Indicates whether this attribute is the primary key for its [ManagedEntity]. - /// - /// Defaults to false. - final bool isPrimaryKey; - - /// The default value for this attribute. - /// - /// By default, this property is `null`. This value is a `String`, so the underlying persistent store is responsible for parsing it. This allows for - /// default values that aren't constant values, such as database function calls. - final String? defaultValue; - - /// Determines whether this attribute is backed directly by the database. - /// - /// If [transientStatus] is non-null, this value will be true. Otherwise, the attribute is backed by a database field/column. - bool get isTransient => transientStatus != null; - - /// Contains lookup table for string value of an enumeration to the enumerated value. - /// - /// This property returns a map that maps the string representation of an enumeration value - /// to the actual enumeration value. This is used when dealing with enumerated values in - /// the context of a [ManagedAttributeDescription]. - /// - /// If `enum Options { option1, option2 }` then this map contains: - /// - /// { - /// "option1": Options.option1, - /// "option2": Options.option2 - /// } - /// - Map get enumerationValueMap => type!.enumerationMap; - - /// The validity of a transient attribute as input, output or both. - /// - /// If this property is non-null, the attribute is transient (not backed by a database field/column). - /// The [Serialize] value indicates whether the attribute is available for input, output, or both. - final Serialize? transientStatus; - - /// Determines whether this attribute is represented by a Dart enum. - /// - /// If the [enumerationValueMap] property is not empty, this attribute is considered an - /// enumerated value, meaning it is represented by a Dart enum. - bool get isEnumeratedValue => enumerationValueMap.isNotEmpty; - - /// Generates an [APISchemaObject] that represents the schema of this property for API documentation. - /// - /// This method creates an [APISchemaObject] that describes the schema of this property, including - /// information about its type, nullability, enumerations, and other metadata. - /// - /// Parameters: - /// - `context`: The [APIDocumentContext] that provides information about the current documentation context. - /// - /// Returns: - /// An [APISchemaObject] that represents the schema of this property. - @override - APISchemaObject documentSchemaObject(APIDocumentContext context) { - final prop = ManagedPropertyDescription._typedSchemaObject(type!) - ..title = name; - final buf = StringBuffer(); - - // Add'l schema info - prop.isNullable = isNullable; - for (final v in validators) { - v.definition.constrainSchemaObject(context, prop); - } - - if (isEnumeratedValue) { - prop.enumerated = prop.enumerated!.map(convertToPrimitiveValue).toList(); - } - - if (isTransient) { - if (transientStatus!.isAvailableAsInput && - !transientStatus!.isAvailableAsOutput) { - prop.isWriteOnly = true; - } else if (!transientStatus!.isAvailableAsInput && - transientStatus!.isAvailableAsOutput) { - prop.isReadOnly = true; - } - } - - if (isUnique) { - buf.writeln("No two objects may have the same value for this field."); - } - - if (isPrimaryKey) { - buf.writeln("This is the primary identifier for this object."); - } - - if (defaultValue != null) { - prop.defaultValue = defaultValue; - } - - if (buf.isNotEmpty) { - prop.description = buf.toString(); - } - - return prop; - } - - /// Generates a string representation of the properties of this `ManagedPropertyDescription` instance. - /// - /// The resulting string includes information about the following properties: - /// - `isPrimaryKey`: Whether this property is the primary key for the associated `ManagedEntity`. - /// - `isTransient`: Whether this property is a transient property (i.e., not backed by a database column). - /// - `autoincrement`: Whether this property uses auto-incrementing for its values. - /// - `isUnique`: Whether this property must have unique values across all instances of the associated `ManagedEntity`. - /// - `defaultValue`: The default value for this property, if any. - /// - `isIndexed`: Whether this property is indexed in the database. - /// - `isNullable`: Whether this property can have a `null` value. - /// - /// The string representation is formatted as follows: - /// ``` - /// - | | Flags: ... - /// ``` - /// where `` is the name of the property, `` is the type of the property, and ``, ``, ..., `` are the flags - /// corresponding to the property's characteristics (e.g., `primary_key`, `transient`, `autoincrementing`, `unique`, `defaults to `, `indexed`, `nullable`, `required`). - @override - String toString() { - final flagBuffer = StringBuffer(); - if (isPrimaryKey) { - flagBuffer.write("primary_key "); - } - if (isTransient) { - flagBuffer.write("transient "); - } - if (autoincrement) { - flagBuffer.write("autoincrementing "); - } - if (isUnique) { - flagBuffer.write("unique "); - } - if (defaultValue != null) { - flagBuffer.write("defaults to $defaultValue "); - } - if (isIndexed) { - flagBuffer.write("indexed "); - } - if (isNullable) { - flagBuffer.write("nullable "); - } else { - flagBuffer.write("required "); - } - - return "- $name | $type | Flags: $flagBuffer"; - } - - /// Converts a value to a more primitive value according to this instance's definition. - /// - /// This method takes a Dart representation of a value and converts it to something that can - /// be used elsewhere (e.g. an HTTP body or database query). The conversion depends on the - /// type of this property. - /// - /// For `DateTime` values, the method converts the `DateTime` to an ISO 8601 string. - /// For enumerated values, the method converts the enum value to a string representing the enum name. - /// For `Document` values, the method extracts the data from the `Document` object. - /// For all other values, the method simply returns the original value. - /// - /// Parameters: - /// - [value]: The Dart representation of the value to be converted. - /// - /// Returns: - /// The converted primitive value. - @override - dynamic convertToPrimitiveValue(dynamic value) { - if (value == null) { - return null; - } - - if (type!.kind == ManagedPropertyType.datetime && value is DateTime) { - return value.toIso8601String(); - } else if (isEnumeratedValue) { - // todo: optimize? - return value.toString().split(".").last; - } else if (type!.kind == ManagedPropertyType.document && - value is Document) { - return value.data; - } - - return value; - } - - /// Converts a value from a primitive value into a more complex value according to this instance's definition. - /// - /// This method takes a non-Dart representation of a value (e.g. an HTTP body or database query) - /// and turns it into a Dart representation. The conversion process depends on the type of this property. - /// - /// For `DateTime` values, the method parses the input string into a `DateTime` object. - /// For `double` values, the method converts the input number to a `double`. - /// For enumerated values, the method looks up the corresponding enum value using the `enumerationValueMap`. - /// For `Document` values, the method wraps the input value in a `Document` object. - /// For `List` and `Map` values, the method delegates the conversion to the `entity.runtime.dynamicConvertFromPrimitiveValue` method. - /// - /// If the input value is not compatible with the expected type, a `ValidationException` is thrown. - /// - /// Parameters: - /// - `value`: The non-Dart representation of the value to be converted. - /// - /// Returns: - /// The converted Dart representation of the value. - @override - dynamic convertFromPrimitiveValue(dynamic value) { - if (value == null) { - return null; - } - - if (type!.kind == ManagedPropertyType.datetime) { - if (value is! String) { - throw ValidationException(["invalid input value for '$name'"]); - } - return DateTime.parse(value); - } else if (type!.kind == ManagedPropertyType.doublePrecision) { - if (value is! num) { - throw ValidationException(["invalid input value for '$name'"]); - } - return value.toDouble(); - } else if (isEnumeratedValue) { - if (!enumerationValueMap.containsKey(value)) { - throw ValidationException(["invalid option for key '$name'"]); - } - return enumerationValueMap[value]; - } else if (type!.kind == ManagedPropertyType.document) { - return Document(value); - } else if (type!.kind == ManagedPropertyType.list || - type!.kind == ManagedPropertyType.map) { - try { - return entity.runtime.dynamicConvertFromPrimitiveValue(this, value); - } on TypeCoercionException { - throw ValidationException(["invalid input value for '$name'"]); - } - } - - return value; - } -} - -/// Contains information for a relationship property of a [ManagedObject]. -/// -/// The `ManagedRelationshipDescription` class represents a relationship property of a [ManagedObject]. It contains information about the -/// destination entity, the delete rule, the relationship type, and the inverse key. This class is used to manage the data model and -/// provide information about relationship properties. -class ManagedRelationshipDescription extends ManagedPropertyDescription { - /// Initializes a new instance of [ManagedRelationshipDescription]. - /// - /// This constructor creates a new instance of [ManagedRelationshipDescription], which represents a relationship property of a [ManagedObject]. - /// The constructor sets the properties of the [ManagedRelationshipDescription] instance, including the destination entity, delete rule, relationship type, - /// inverse key, and other metadata. - /// - /// Parameters: - /// - `entity`: The [ManagedEntity] that contains this property. - /// - `name`: The identifying name of this property. - /// - `type`: The value type of this property, indicating the Dart type and database column type. - /// - `declaredType`: The type of the variable that this property represents. - /// - `destinationEntity`: The [ManagedEntity] that represents the destination of this relationship. - /// - `deleteRule`: The delete rule for this relationship. - /// - `relationshipType`: The type of relationship (e.g., belongs to, has one, has many). - /// - `inverseKey`: The name of the [ManagedRelationshipDescription] on the `destinationEntity` that represents the inverse of this relationship. - /// - `unique`: Whether or not this property must be unique across all instances represented by `entity`. Defaults to `false`. - /// - `indexed`: Whether or not this property should be indexed by a [PersistentStore]. Defaults to `false`. - /// - `nullable`: Whether or not this property can be null. Defaults to `false`. - /// - `includedInDefaultResultSet`: Whether or not this property is returned in the default set of [Query.returningProperties]. Defaults to `true`. - /// - `validators`: A list of [ManagedValidator]s for this instance. Defaults to an empty list. - /// - `responseModel`: The [ResponseModel] associated with this property. - /// - `responseKey`: The [ResponseKey] associated with this property. - ManagedRelationshipDescription( - super.entity, - super.name, - super.type, - super.declaredType, - this.destinationEntity, - this.deleteRule, - this.relationshipType, - this.inverseKey, { - super.unique, - super.indexed, - super.nullable, - super.includedInDefaultResultSet, - super.validators = const [], - super.responseModel, - super.responseKey, - }); - - /// Creates a new instance of [ManagedRelationshipDescription] with the provided parameters. - /// - /// This method is a factory method that simplifies the creation of [ManagedRelationshipDescription] instances. - /// - /// Parameters: - /// - `entity`: The [ManagedEntity] that contains this property. - /// - `name`: The identifying name of this property. - /// - `type`: The value type of this property, indicating the Dart type and database column type. - /// - `destinationEntity`: The [ManagedEntity] that represents the destination of this relationship. - /// - `deleteRule`: The delete rule for this relationship. - /// - `relationshipType`: The type of relationship (e.g., belongs to, has one, has many). - /// - `inverseKey`: The name of the [ManagedRelationshipDescription] on the `destinationEntity` that represents the inverse of this relationship. - /// - `unique`: Whether or not this property must be unique across all instances represented by `entity`. Defaults to `false`. - /// - `indexed`: Whether or not this property should be indexed by a [PersistentStore]. Defaults to `false`. - /// - `nullable`: Whether or not this property can be null. Defaults to `false`. - /// - `includedInDefaultResultSet`: Whether or not this property is returned in the default set of [Query.returningProperties]. Defaults to `true`. - /// - `validators`: A list of [ManagedValidator]s for this instance. Defaults to an empty list. - /// - `responseKey`: The [ResponseKey] associated with this property. - /// - `responseModel`: The [ResponseModel] associated with this property. - /// - /// Returns: - /// A new instance of [ManagedRelationshipDescription] with the provided parameters. - static ManagedRelationshipDescription make( - ManagedEntity entity, - String name, - ManagedType? type, - ManagedEntity destinationEntity, - DeleteRule? deleteRule, - ManagedRelationshipType relationshipType, - String inverseKey, { - bool unique = false, - bool indexed = false, - bool nullable = false, - bool includedInDefaultResultSet = true, - List validators = const [], - ResponseKey? responseKey, - ResponseModel? responseModel, - }) { - return ManagedRelationshipDescription( - entity, - name, - type, - T, - destinationEntity, - deleteRule, - relationshipType, - inverseKey, - unique: unique, - indexed: indexed, - nullable: nullable, - includedInDefaultResultSet: includedInDefaultResultSet, - validators: validators, - responseKey: responseKey, - responseModel: responseModel, - ); - } - - /// The [ManagedEntity] that represents the destination of this relationship. - /// - /// This property holds a reference to the [ManagedEntity] that describes the model - /// that the objects on the other end of this relationship belong to. This is used - /// to ensure that the values assigned to this relationship property are compatible - /// with the expected model. - final ManagedEntity destinationEntity; - - /// The delete rule for this relationship. - /// - /// The delete rule determines what happens to the related objects when the object - /// containing this relationship is deleted. The possible values are: - /// - /// - `DeleteRule.cascade`: When the object is deleted, all related objects are also deleted. - /// - `DeleteRule.restrict`: When the object is deleted, the operation will fail if there are any related objects. - /// - `DeleteRule.nullify`: When the object is deleted, the foreign key values in the related objects will be set to `null`. - /// - `DeleteRule.setDefault`: When the object is deleted, the foreign key values in the related objects will be set to their default values. - final DeleteRule? deleteRule; - - /// The type of relationship represented by this [ManagedRelationshipDescription]. - /// - /// The relationship type can be one of the following: - /// - `ManagedRelationshipType.belongsTo`: This property represents a "belongs to" relationship, where the object containing this property - /// belongs to another object. - /// - `ManagedRelationshipType.hasOne`: This property represents a "has one" relationship, where the object containing this property - /// has a single related object. - /// - `ManagedRelationshipType.hasMany`: This property represents a "has many" relationship, where the object containing this property - /// has a set of related objects. - final ManagedRelationshipType relationshipType; - - /// The [ManagedRelationshipDescription] on [destinationEntity] that represents the inverse of this relationship. - /// - /// This property holds the name of the [ManagedRelationshipDescription] on the [destinationEntity] that represents the inverse - /// of this relationship. This information is used to ensure that the relationships between objects are properly defined and - /// navigable in both directions. - final String inverseKey; - - /// Gets the [ManagedRelationshipDescription] on [destinationEntity] that represents the inverse of this relationship. - /// - /// This property returns the [ManagedRelationshipDescription] instance on the [destinationEntity] that represents the - /// inverse of the current relationship. The inverse relationship is specified by the [inverseKey] property. - /// - /// This method is used to navigate the relationship in the opposite direction, allowing you to access the related - /// objects from the other side of the relationship. - /// - /// Returns: - /// The [ManagedRelationshipDescription] that represents the inverse of this relationship, or `null` if no inverse - /// relationship is defined. - ManagedRelationshipDescription? get inverse => - destinationEntity.relationships[inverseKey]; - - /// Indicates whether this relationship is on the belonging side of the relationship. - /// - /// This property returns `true` if the `relationshipType` of this `ManagedRelationshipDescription` is - /// `ManagedRelationshipType.belongsTo`, which means that the object containing this property "belongs to" - /// another object. If the `relationshipType` is not `belongsTo`, this property returns `false`. - bool get isBelongsTo => relationshipType == ManagedRelationshipType.belongsTo; - - /// Determines whether the provided Dart value can be assigned to this property. - /// - /// This method checks if the given `dartValue` is compatible with the type of this property. - /// For relationships with a 'has many' type, the method checks if the `dartValue` is a list of - /// [ManagedObject] instances that belong to the destination entity. For other relationship - /// types, the method checks if the `dartValue` is a [ManagedObject] instance that belongs - /// to the destination entity. - /// - /// Parameters: - /// - `dartValue`: The Dart value to be checked for assignment compatibility. - /// - /// Returns: - /// - `true` if the `dartValue` can be assigned to this property. - /// - `false` otherwise. - @override - bool isAssignableWith(dynamic dartValue) { - if (relationshipType == ManagedRelationshipType.hasMany) { - return destinationEntity.runtime.isValueListOf(dartValue); - } - return destinationEntity.runtime.isValueInstanceOf(dartValue); - } - - /// Converts a value to a more primitive value according to this instance's definition. - /// - /// This method takes a Dart representation of a value and converts it to something that can - /// be used elsewhere (e.g. an HTTP body or database query). The conversion process depends - /// on the type of the relationship. - /// - /// For relationship properties with a "has many" type, the method converts the `ManagedSet` - /// instance to a list of maps, where each map represents the associated `ManagedObject` - /// instances. - /// - /// For relationship properties with a "belongs to" type, the method checks if only the - /// primary key of the associated `ManagedObject` is being fetched. If so, it returns a - /// map containing only the primary key value. Otherwise, it returns the full map - /// representation of the associated `ManagedObject`. - /// - /// If the provided `value` is `null`, the method returns `null`. - /// - /// If the provided `value` is not a `ManagedSet` or `ManagedObject`, the method throws a - /// `StateError` with a message indicating the invalid relationship assignment. - /// - /// Parameters: - /// - `value`: The Dart representation of the value to be converted. - /// - /// Returns: - /// The converted primitive value. - @override - dynamic convertToPrimitiveValue(dynamic value) { - if (value is ManagedSet) { - return value - .map((ManagedObject innerValue) => innerValue.asMap()) - .toList(); - } else if (value is ManagedObject) { - // If we're only fetching the foreign key, don't do a full asMap - if (relationshipType == ManagedRelationshipType.belongsTo && - value.backing.contents.length == 1 && - value.backing.contents.containsKey(destinationEntity.primaryKey)) { - return { - destinationEntity.primaryKey: value[destinationEntity.primaryKey] - }; - } - - return value.asMap(); - } else if (value == null) { - return null; - } - - throw StateError( - "Invalid relationship assigment. Relationship '$entity.$name' is not a 'ManagedSet' or 'ManagedObject'.", - ); - } - - /// Converts a value from a primitive value into a more complex value according to this instance's definition. - /// - /// This method takes a non-Dart representation of a value (e.g. an HTTP body or database query) - /// and turns it into a Dart representation. The conversion process depends on the type of the relationship. - /// - /// For relationship properties with a "belongs to" or "has one" type, the method creates a new instance of the - /// [ManagedObject] associated with the destination entity, and populates it with the data from the provided map. - /// - /// For relationship properties with a "has many" type, the method creates a [ManagedSet] instance, and populates - /// it with new [ManagedObject] instances created from the provided list of maps. - /// - /// If the input value is `null`, the method returns `null`. - /// - /// If the input value is not a map or list, as expected for the relationship type, a [ValidationException] is thrown. - /// - /// Parameters: - /// - `value`: The non-Dart representation of the value to be converted. - /// - /// Returns: - /// The converted Dart representation of the value. - @override - dynamic convertFromPrimitiveValue(dynamic value) { - if (value == null) { - return null; - } - - if (relationshipType == ManagedRelationshipType.belongsTo || - relationshipType == ManagedRelationshipType.hasOne) { - if (value is! Map) { - throw ValidationException(["invalid input type for '$name'"]); - } - - final instance = destinationEntity.instanceOf()..readFromMap(value); - - return instance; - } - - /* else if (relationshipType == ManagedRelationshipType.hasMany) { */ - - if (value is! List) { - throw ValidationException(["invalid input type for '$name'"]); - } - - ManagedObject instantiator(dynamic m) { - if (m is! Map) { - throw ValidationException(["invalid input type for '$name'"]); - } - final instance = destinationEntity.instanceOf()..readFromMap(m); - return instance; - } - - return destinationEntity.setOf(value.map(instantiator)); - } - - /// Generates an [APISchemaObject] that represents the schema of this relationship property for API documentation. - /// - /// This method creates an [APISchemaObject] that describes the schema of this relationship property, including - /// information about the type of relationship (hasMany, hasOne, or belongsTo), the related object schema, and - /// whether the property is read-only and nullable. - /// - /// Parameters: - /// - `context`: The [APIDocumentContext] that provides information about the current documentation context. - /// - /// Returns: - /// An [APISchemaObject] that represents the schema of this relationship property. - @override - APISchemaObject documentSchemaObject(APIDocumentContext context) { - final relatedType = - context.schema.getObjectWithType(inverse!.entity.instanceType); - - if (relationshipType == ManagedRelationshipType.hasMany) { - return APISchemaObject.array(ofSchema: relatedType) - ..isReadOnly = true - ..isNullable = true; - } else if (relationshipType == ManagedRelationshipType.hasOne) { - return relatedType - ..isReadOnly = true - ..isNullable = true; - } - - final destPk = destinationEntity.primaryKeyAttribute!; - return APISchemaObject.object({ - destPk.name: ManagedPropertyDescription._typedSchemaObject(destPk.type!) - }) - ..title = name; - } - - /// Generates a string representation of the properties of this `ManagedRelationshipDescription` instance. - /// - /// The resulting string includes information about the following properties: - /// - `name`: The identifying name of this property. - /// - `destinationEntity`: The name of the `ManagedEntity` that represents the destination of this relationship. - /// - `relationshipType`: The type of relationship (e.g., `belongs to`, `has one`, `has many`). - /// - `inverseKey`: The name of the `ManagedRelationshipDescription` on the `destinationEntity` that represents the inverse of this relationship. - /// - /// The string representation is formatted as follows: - /// ``` - /// - -> '' | Type: | Inverse: - /// ``` - @override - String toString() { - var relTypeString = "has-one"; - switch (relationshipType) { - case ManagedRelationshipType.belongsTo: - relTypeString = "belongs to"; - break; - case ManagedRelationshipType.hasMany: - relTypeString = "has-many"; - break; - case ManagedRelationshipType.hasOne: - relTypeString = "has-a"; - break; - // case null: - // relTypeString = 'Not set'; - // break; - } - return "- $name -> '${destinationEntity.name}' | Type: $relTypeString | Inverse: $inverseKey"; - } -} diff --git a/packages/database/lib/src/managed/relationship_type.dart b/packages/database/lib/src/managed/relationship_type.dart deleted file mode 100644 index 5b7bf92..0000000 --- a/packages/database/lib/src/managed/relationship_type.dart +++ /dev/null @@ -1,18 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// The possible database relationships. -/// -/// This enum represents the different types of relationships that can exist between -/// database entities. The available relationship types are: -/// -/// - `hasOne`: A one-to-one relationship, where one entity has exactly one related entity. -/// - `hasMany`: A one-to-many relationship, where one entity can have multiple related entities. -/// - `belongsTo`: A many-to-one relationship, where multiple entities can belong to a single parent entity. -enum ManagedRelationshipType { hasOne, hasMany, belongsTo } diff --git a/packages/database/lib/src/managed/set.dart b/packages/database/lib/src/managed/set.dart deleted file mode 100644 index 4786213..0000000 --- a/packages/database/lib/src/managed/set.dart +++ /dev/null @@ -1,109 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:collection'; -import 'package:protevus_database/src/managed/managed.dart'; - -/// Instances of this type contain zero or more instances of [ManagedObject] and represent has-many relationships. -/// -/// 'Has many' relationship properties in [ManagedObject]s are represented by this type. [ManagedSet]s properties may only be declared in the persistent -/// type of a [ManagedObject]. Example usage: -/// -/// class User extends ManagedObject<_User> implements _User {} -/// class _User { -/// ... -/// ManagedSet posts; -/// } -/// -/// class Post extends ManagedObject<_Post> implements _Post {} -/// class _Post { -/// ... -/// @Relate(#posts) -/// User user; -/// } -class ManagedSet extends Object - with ListMixin { - /// Creates an empty [ManagedSet]. - /// - /// This constructor initializes a new [ManagedSet] instance with an empty internal list. - ManagedSet() { - _innerValues = []; - } - - /// Creates a [ManagedSet] from an [Iterable] of [InstanceType]s. - /// - /// This constructor initializes a new [ManagedSet] instance with the elements of the provided [Iterable]. - ManagedSet.from(Iterable items) { - _innerValues = items.toList(); - } - - /// Creates a [ManagedSet] from an [Iterable] of [dynamic]s. - /// - /// This constructor initializes a new [ManagedSet] instance with the elements of the provided [Iterable] of [dynamic]s. - /// The elements are converted to the appropriate [InstanceType] using [List.from]. - ManagedSet.fromDynamic(Iterable items) { - _innerValues = List.from(items); - } - - /// The internal list that stores the elements of this [ManagedSet]. - late final List _innerValues; - - /// The number of elements in this [ManagedSet]. - /// - /// This property returns the number of elements in the internal list that stores the elements of this [ManagedSet]. - @override - int get length => _innerValues.length; - - /// Sets the length of the internal list that stores the elements of this [ManagedSet]. - /// - /// This setter allows you to change the length of the internal list that stores the elements of this [ManagedSet]. - /// If the new length is greater than the current length, the list is extended and the new elements are initialized to `null`. - /// If the new length is less than the current length, the list is truncated to the new length. - @override - set length(int newLength) { - _innerValues.length = newLength; - } - - /// Adds an [InstanceType] object to this [ManagedSet]. - /// - /// This method adds the provided [InstanceType] object to the internal list of this [ManagedSet]. - /// The length of the [ManagedSet] is increased by 1, and the new element is appended to the end of the list. - @override - void add(InstanceType item) { - _innerValues.add(item); - } - - /// Adds all the elements of the provided [Iterable] of [InstanceType] to this [ManagedSet]. - /// - /// This method adds all the elements of the provided [Iterable] to the internal list of this [ManagedSet]. - /// The length of the [ManagedSet] is increased by the number of elements in the [Iterable], and the new elements - /// are appended to the end of the list. - @override - void addAll(Iterable items) { - _innerValues.addAll(items); - } - - /// Retrieves an [InstanceType] from this set by an index. - /// - /// This overloaded index operator allows you to access the elements of the internal list - /// that stores the elements of this [ManagedSet] using an integer index. The element - /// at the specified index is returned. - @override - InstanceType operator [](int index) => _innerValues[index]; - - /// Sets the [InstanceType] object at the specified [index] in this [ManagedSet]. - /// - /// This overloaded index assignment operator allows you to assign a new [InstanceType] object to the - /// element at the specified [index] in the internal list that stores the elements of this [ManagedSet]. - /// If the [index] is out of bounds, an [RangeError] will be thrown. - @override - void operator []=(int index, InstanceType value) { - _innerValues[index] = value; - } -} diff --git a/packages/database/lib/src/managed/type.dart b/packages/database/lib/src/managed/type.dart deleted file mode 100644 index 3d2fc56..0000000 --- a/packages/database/lib/src/managed/type.dart +++ /dev/null @@ -1,236 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; - -/// Possible data types for [ManagedEntity] attributes. -/// -/// This enum represents the different data types that can be used for attributes in a [ManagedEntity]. -/// Each enum value corresponds to a specific Dart data type that will be used to represent the attribute. -enum ManagedPropertyType { - /// Represented by instances of [int]. - integer, - - /// Represented by instances of [int]. - bigInteger, - - /// Represented by instances of [String]. - string, - - /// Represented by instances of [DateTime]. - datetime, - - /// Represented by instances of [bool]. - boolean, - - /// Represented by instances of [double]. - doublePrecision, - - /// Represented by instances of [Map]. - map, - - /// Represented by instances of [List]. - list, - - /// Represented by instances of [Document] - document -} - -/// Represents complex data types for attributes in a [ManagedEntity]. -/// -/// This class provides a way to represent complex data types, such as maps, lists, and enumerations, that can be used as -/// attributes in a [ManagedEntity]. It encapsulates information about the type, including the primitive kind, the type -/// of elements in the case of collections, and whether the type is an enumeration. -/// -/// The [ManagedType] class is used internally by the Protevus database management system to handle the storage and -/// retrieval of complex data types in the database. -class ManagedType { - /// Creates a new instance of [ManagedType] with the provided parameters. - /// - /// [type] must be representable by [ManagedPropertyType]. - ManagedType(this.type, this.kind, this.elements, this.enumerationMap); - - /// Creates a new instance of [ManagedType] with the provided parameters. - /// - /// [kind] is the primitive type of the managed property. - /// [elements] is the type of the elements in the case of a collection (map or list) property. - /// [enumerationMap] is a map of the enum options and their corresponding Dart enum types, in the case of an enumerated property. - /// - /// This method is a convenience constructor for creating [ManagedType] instances with the appropriate parameters. - static ManagedType make( - ManagedPropertyType kind, - ManagedType? elements, - Map enumerationMap, - ) { - return ManagedType(T, kind, elements, enumerationMap); - } - - /// The primitive kind of this type. - /// - /// All types have a kind. If [kind] is a map or list, it will also have [elements] to specify the type of the map keys or list elements. - final ManagedPropertyType kind; - - /// The type of the elements in this managed property. - /// - /// If [kind] is a collection (map or list), this value stores the type of each element in the collection. - /// Keys of map types are always [String]. - final ManagedType? elements; - - /// The Dart type represented by this [ManagedType] instance. - final Type type; - - /// Whether this [ManagedType] instance represents an enumerated type. - /// - /// This property returns `true` if the `enumerationMap` property is not empty, indicating that this type represents an enumeration. Otherwise, it returns `false`. - bool get isEnumerated => enumerationMap.isNotEmpty; - - /// For enumerated types, this is a map of the name of the option to its Dart enum type. - /// - /// This property provides a way to associate the string representation of an enumeration value with its corresponding - /// Dart enum type. It is used in the context of a [ManagedType] instance to represent an enumerated property in a - /// [ManagedEntity]. - /// - /// The keys of this map are the string representations of the enum options, and the values are the corresponding - /// Dart enum types. - final Map enumerationMap; - - /// Checks whether the provided [dartValue] can be assigned to properties with this [ManagedType]. - /// - /// This method examines the [kind] of the [ManagedType] and determines whether the provided [dartValue] is compatible - /// with the expected data type. - /// - /// If the [dartValue] is `null`, this method will return `true`, as null can be assigned to any property. - /// - /// For each specific [ManagedPropertyType], the method checks the type of the [dartValue] and returns `true` if it - /// matches the expected type, and `false` otherwise. - /// - /// For [ManagedPropertyType.string], if the [enumerationMap] is not empty, the method checks whether the [dartValue] - /// is one of the enum values in the map. - /// - /// @param dartValue The value to be checked for assignment compatibility. - /// @return `true` if the [dartValue] can be assigned to properties with this [ManagedType], `false` otherwise. - bool isAssignableWith(dynamic dartValue) { - if (dartValue == null) { - return true; - } - - switch (kind) { - case ManagedPropertyType.bigInteger: - return dartValue is int; - case ManagedPropertyType.integer: - return dartValue is int; - case ManagedPropertyType.boolean: - return dartValue is bool; - case ManagedPropertyType.datetime: - return dartValue is DateTime; - case ManagedPropertyType.doublePrecision: - return dartValue is double; - case ManagedPropertyType.map: - return dartValue is Map; - case ManagedPropertyType.list: - return dartValue is List; - case ManagedPropertyType.document: - return dartValue is Document; - case ManagedPropertyType.string: - { - if (enumerationMap.isNotEmpty) { - return enumerationMap.values.contains(dartValue); - } - return dartValue is String; - } - } - } - - /// Returns a string representation of the [ManagedPropertyType] instance. - /// - /// The string representation is simply the name of the [ManagedPropertyType] enum value. - /// This method is useful for logging or debugging purposes, as it provides a human-readable - /// representation of the property type. - /// - /// Example usage: - /// ```dart - /// ManagedPropertyType type = ManagedPropertyType.integer; - /// print(type.toString()); // Output: "integer" - /// ``` - @override - String toString() { - return "$kind"; - } - - /// Returns a list of Dart types that are supported by the Protevus database management system. - /// - /// The supported Dart types are: - /// - `String`: Represents a string of text. - /// - `DateTime`: Represents a specific date and time. - /// - `bool`: Represents a boolean value (true or false). - /// - `int`: Represents an integer number. - /// - `double`: Represents a floating-point number. - /// - `Document`: Represents a complex data structure that can be stored in the database. - /// - /// This list of supported types is used internally by the Protevus database management system to ensure that - /// the data being stored in the database is compatible with the expected data types. - static List get supportedDartTypes { - return [String, DateTime, bool, int, double, Document]; - } - - /// Returns the [ManagedPropertyType] for integer properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.integer] value, - /// which represents integer properties in a [ManagedEntity]. - static ManagedPropertyType get integer => ManagedPropertyType.integer; - - /// Returns the [ManagedPropertyType] for big integer properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.bigInteger] value, - /// which represents big integer properties in a [ManagedEntity]. - static ManagedPropertyType get bigInteger => ManagedPropertyType.bigInteger; - - /// Returns the [ManagedPropertyType] for string properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.string] value, - /// which represents string properties in a [ManagedEntity]. - static ManagedPropertyType get string => ManagedPropertyType.string; - - /// Returns the [ManagedPropertyType] for datetime properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.datetime] value, - /// which represents datetime properties in a [ManagedEntity]. - static ManagedPropertyType get datetime => ManagedPropertyType.datetime; - - /// Returns the [ManagedPropertyType] for boolean properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.boolean] value, - /// which represents boolean properties in a [ManagedEntity]. - static ManagedPropertyType get boolean => ManagedPropertyType.boolean; - - /// Returns the [ManagedPropertyType] for double precision properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.doublePrecision] value, - /// which represents double precision properties in a [ManagedEntity]. - static ManagedPropertyType get doublePrecision => - ManagedPropertyType.doublePrecision; - - /// Returns the [ManagedPropertyType] for map properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.map] value, - /// which represents map properties in a [ManagedEntity]. - static ManagedPropertyType get map => ManagedPropertyType.map; - - /// Returns the [ManagedPropertyType] for list properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.list] value, - /// which represents list properties in a [ManagedEntity]. - static ManagedPropertyType get list => ManagedPropertyType.list; - - /// Returns the [ManagedPropertyType] for document properties. - /// - /// This property provides a convenient way to access the [ManagedPropertyType.document] value, - /// which represents document properties in a [ManagedEntity]. - static ManagedPropertyType get document => ManagedPropertyType.document; -} diff --git a/packages/database/lib/src/managed/validation/impl.dart b/packages/database/lib/src/managed/validation/impl.dart deleted file mode 100644 index a4ecb16..0000000 --- a/packages/database/lib/src/managed/validation/impl.dart +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; - -/// Represents the different types of validations that can be performed on an input. -/// -/// - `regex`: Validate the input using a regular expression pattern. -/// - `comparison`: Validate the input using a comparison operator and a value. -/// - `length`: Validate the length of the input. -/// - `present`: Ensure the input is not null or empty. -/// - `absent`: Ensure the input is null or empty. -/// - `oneOf`: Ensure the input is one of the specified values. -enum ValidateType { regex, comparison, length, present, absent, oneOf } - -/// Represents the different comparison operators that can be used in a validation expression. -/// -/// - `equalTo`: Ensures the input is equal to the specified value. -/// - `lessThan`: Ensures the input is less than the specified value. -/// - `lessThanEqualTo`: Ensures the input is less than or equal to the specified value. -/// - `greaterThan`: Ensures the input is greater than the specified value. -/// - `greaterThanEqualTo`: Ensures the input is greater than or equal to the specified value. -enum ValidationOperator { - equalTo, - lessThan, - lessThanEqualTo, - greaterThan, - greaterThanEqualTo -} - -/// Represents a validation expression that can be used to validate an input value. -/// -/// The `ValidationExpression` class has two properties: -/// -/// - `operator`: The comparison operator to be used in the validation. -/// - `value`: The value to be compared against the input. -/// -/// The `compare` method is used to perform the validation and add any errors to the provided `ValidationContext`. -class ValidationExpression { - /// Initializes a new instance of the [ValidationExpression] class. - /// - /// The [operator] parameter specifies the comparison operator to be used in the validation. - /// The [value] parameter specifies the value to be compared against the input. - ValidationExpression(this.operator, this.value); - - /// The comparison operator to be used in the validation. - final ValidationOperator operator; - - /// The value to be compared against the input during the validation process. - dynamic value; - - /// Compares the provided input value against the value specified in the [ValidationExpression]. - /// - /// The comparison is performed based on the [ValidationOperator] specified in the [ValidationExpression]. - /// If the comparison fails, an error message is added to the provided [ValidationContext]. - /// - /// Parameters: - /// - [context]: The [ValidationContext] to which any errors will be added. - /// - [input]: The value to be compared against the [ValidationExpression] value. - /// - /// Throws: - /// - [ClassCastException]: If the [value] property of the [ValidationExpression] is not a [Comparable]. - void compare(ValidationContext context, dynamic input) { - /// Converts the [value] property of the [ValidationExpression] to a [Comparable] type, or sets it to `null` if the conversion fails. - /// - /// This step is necessary because the [compare] method requires the [value] to be a [Comparable] in order to perform the comparison. - final comparisonValue = value as Comparable?; - - /// Compares the provided input value against the value specified in the [ValidationExpression]. - /// - /// The comparison is performed based on the [ValidationOperator] specified in the [ValidationExpression]. - /// If the comparison fails, an error message is added to the provided [ValidationContext]. - /// - /// Parameters: - /// - [context]: The [ValidationContext] to which any errors will be added. - /// - [input]: The value to be compared against the [ValidationExpression] value. - /// - /// Throws: - /// - [ClassCastException]: If the [value] property of the [ValidationExpression] is not a [Comparable]. - switch (operator) { - case ValidationOperator.equalTo: - { - if (comparisonValue!.compareTo(input) != 0) { - context.addError("must be equal to '$comparisonValue'."); - } - } - break; - case ValidationOperator.greaterThan: - { - if (comparisonValue!.compareTo(input) >= 0) { - context.addError("must be greater than '$comparisonValue'."); - } - } - break; - - case ValidationOperator.greaterThanEqualTo: - { - if (comparisonValue!.compareTo(input) > 0) { - context.addError( - "must be greater than or equal to '$comparisonValue'.", - ); - } - } - break; - - case ValidationOperator.lessThan: - { - if (comparisonValue!.compareTo(input) <= 0) { - context.addError("must be less than to '$comparisonValue'."); - } - } - break; - case ValidationOperator.lessThanEqualTo: - { - if (comparisonValue!.compareTo(input) < 0) { - context - .addError("must be less than or equal to '$comparisonValue'."); - } - } - break; - } - } -} diff --git a/packages/database/lib/src/managed/validation/managed.dart b/packages/database/lib/src/managed/validation/managed.dart deleted file mode 100644 index 7e8b756..0000000 --- a/packages/database/lib/src/managed/validation/managed.dart +++ /dev/null @@ -1,153 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/managed/validation/impl.dart'; -import 'package:protevus_database/src/query/query.dart'; - -/// Validates properties of [ManagedObject] before an insert or update [Query]. -/// -/// Instances of this type are created during [ManagedDataModel] compilation. -class ManagedValidator { - /// Constructs a [ManagedValidator] instance with the specified [definition] and [state]. - /// - /// The [definition] parameter contains the metadata associated with this instance, while - /// the [state] parameter holds a dynamic value that can be used during the validation process. - ManagedValidator(this.definition, this.state); - - /// Executes all [Validate]s for [object]. - /// - /// Validates the properties of [object] according to its validator annotations. Validators - /// are added to properties using [Validate] metadata. - /// - /// This method does not invoke [ManagedObject.validate] - any customization provided - /// by a [ManagedObject] subclass that overrides this method will not be invoked. - static ValidationContext run( - ManagedObject object, { - Validating event = Validating.insert, - }) { - final context = ValidationContext(); - - for (final validator in object.entity.validators) { - context.property = validator.property; - context.event = event; - context.state = validator.state; - if (!validator.definition.runOnInsert && event == Validating.insert) { - continue; - } - - if (!validator.definition.runOnUpdate && event == Validating.update) { - continue; - } - - var contents = object.backing.contents; - String key = validator.property!.name; - - if (validator.definition.type == ValidateType.present) { - if (validator.property is ManagedRelationshipDescription) { - final inner = object[validator.property!.name] as ManagedObject?; - if (inner == null || - !inner.backing.contents.containsKey(inner.entity.primaryKey)) { - context.addError("key '${validator.property!.name}' is required " - "for ${_getEventName(event)}s."); - } - } else if (!contents.containsKey(key)) { - context.addError("key '${validator.property!.name}' is required " - "for ${_getEventName(event)}s."); - } - } else if (validator.definition.type == ValidateType.absent) { - if (validator.property is ManagedRelationshipDescription) { - final inner = object[validator.property!.name] as ManagedObject?; - if (inner != null) { - context.addError("key '${validator.property!.name}' is not allowed " - "for ${_getEventName(event)}s."); - } - } else if (contents.containsKey(key)) { - context.addError("key '${validator.property!.name}' is not allowed " - "for ${_getEventName(event)}s."); - } - } else { - if (validator.property is ManagedRelationshipDescription) { - final inner = object[validator.property!.name] as ManagedObject?; - if (inner == null || - inner.backing.contents[inner.entity.primaryKey] == null) { - continue; - } - contents = inner.backing.contents; - key = inner.entity.primaryKey; - } - - final value = contents[key]; - if (value != null) { - validator.validate(context, value); - } - } - } - - return context; - } - - /// The property being validated. - /// - /// This property represents the [ManagedPropertyDescription] that is being - /// validated by the current instance of [ManagedValidator]. It is used to - /// retrieve information about the property, such as its name, type, and - /// relationship details. - ManagedPropertyDescription? property; - - /// The metadata associated with this instance. - /// - /// The `definition` property contains the metadata associated with this instance of `ManagedValidator`. - /// This metadata is used to define the validation rules that will be applied to the properties - /// of a `ManagedObject` during an insert or update operation. - final Validate definition; - - /// The dynamic state associated with this validator. - /// - /// This property holds a dynamic value that can be used during the validation process. - /// The state is provided when the [ManagedValidator] is constructed and can be used - /// by the validation logic to customize the validation behavior. - final dynamic state; - - /// Validates the property according to the validation rules defined in the [definition] property. - /// - /// This method is called by the [run] method of the [ManagedValidator] class to perform the actual - /// validation of a property value. The [context] parameter is used to store the validation results, - /// and the [value] parameter is the value of the property being validated. - /// - /// The validation logic is defined in the [definition] property, which is an instance of the [Validate] - /// class. This class contains the metadata that describes the validation rules to be applied to the - /// property. - void validate(ValidationContext context, dynamic value) { - definition.validate(context, value); - } - - /// Returns a string representation of the given validation event. - /// - /// This method is a helper function that takes a [Validating] event and - /// returns a string describing the event. - /// - /// Parameters: - /// - `op`: The [Validating] event to be described. - /// - /// Returns: - /// A string representing the given validation event. The possible return - /// values are "insert", "update", or "unknown" if the event is not - /// recognized. - static String _getEventName(Validating op) { - switch (op) { - case Validating.insert: - return "insert"; - case Validating.update: - return "update"; - default: - return "unknown"; - } - } -} diff --git a/packages/database/lib/src/managed/validation/metadata.dart b/packages/database/lib/src/managed/validation/metadata.dart deleted file mode 100644 index 153d405..0000000 --- a/packages/database/lib/src/managed/validation/metadata.dart +++ /dev/null @@ -1,917 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/db.dart'; -import 'package:protevus_database/src/managed/validation/impl.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Types of operations [ManagedValidator]s will be triggered for. -/// -/// - [update]: The validation is triggered during an update operation. -/// - [insert]: The validation is triggered during an insert operation. -enum Validating { update, insert } - -/// Information about a validation being performed. -class ValidationContext { - /// Whether this validation is occurring during update or insert. - late Validating event; - - /// The property being validated. - ManagedPropertyDescription? property; - - /// State associated with the validator being run. - /// - /// Use this property in a custom validator to access compiled state. Compiled state - /// is a value that has been computed from the arguments to the validator. For example, - /// a 'greater than 1' validator, the state is an expression object that evaluates - /// a value is greater than 1. - /// - /// Set this property by returning the desired value from [Validate.compare]. - dynamic state; - - /// Errors that have occurred in this context. - List errors = []; - - /// Adds a validation error to the context. - /// - /// A validation will fail if this method is invoked. - void addError(String reason) { - final p = property; - if (p is ManagedRelationshipDescription) { - errors.add( - "${p.entity.name}.${p.name}.${p.destinationEntity.primaryKey}: $reason", - ); - } else { - errors.add("${p!.entity.name}.${p.name}: $reason"); - } - } - - /// Whether this validation context passed all validations. - bool get isValid => errors.isEmpty; -} - -/// An error thrown during validator compilation. -/// -/// If you override [Validate.compile], throw errors of this type if a validator -/// is applied to an invalid property. -class ValidateCompilationError extends Error { - ValidateCompilationError(this.reason); - - /// The reason for the [ValidateCompilationError]. - final String reason; -} - -/// Add as metadata to persistent properties to validate their values before insertion or updating. -/// -/// When executing update or insert queries, any properties with this metadata will be validated -/// against the condition declared by this instance. Example: -/// -/// class Person extends ManagedObject<_Person> implements _Person {} -/// class _Person { -/// @primaryKey -/// int id; -/// -/// @Validate.length(greaterThan: 10) -/// String name; -/// } -/// -/// Properties may have more than one metadata of this type. All validations must pass -/// for an insert or update to be valid. -/// -/// By default, validations occur on update and insert queries. Constructors have arguments -/// for only running a validation on insert or update. See [runOnUpdate] and [runOnInsert]. -/// -/// This class may be subclassed to create custom validations. Subclasses must override [validate]. -class Validate { - /// Invoke this constructor when creating custom subclasses. - /// - /// This constructor is used so that subclasses can pass [onUpdate] and [onInsert] values to control when - /// the validation is performed. For example: - /// - /// Example: - /// class CustomValidate extends Validate { - /// CustomValidate({bool onUpdate: true, bool onInsert: true}) - /// : super(onUpdate: onUpdate, onInsert: onInsert); - /// - /// bool validate( - /// ValidateOperation operation, - /// ManagedAttributeDescription property, - /// String value, - /// List errors) { - /// return someCondition; - /// } - /// } - const Validate({bool onUpdate = true, bool onInsert = true}) - : runOnUpdate = onUpdate, - runOnInsert = onInsert, - _value = null, - _lessThan = null, - _lessThanEqualTo = null, - _greaterThan = null, - _greaterThanEqualTo = null, - _equalTo = null, - type = null; - - /// A private constructor used to create instances of the [Validate] class. - /// - /// This constructor is used by the various named constructors of the [Validate] class to set the instance - /// variables with the provided values. - /// - /// - [onUpdate]: Whether the validation should be performed during update operations. - /// - [onInsert]: Whether the validation should be performed during insert operations. - /// - [validator]: The type of validation to perform. - /// - [value]: A value used by the validation. - /// - [greaterThan]: A value to compare the input value against using the "greater than" operator. - /// - [greaterThanEqualTo]: A value to compare the input value against using the "greater than or equal to" operator. - /// - [equalTo]: A value to compare the input value against using the "equal to" operator. - /// - [lessThan]: A value to compare the input value against using the "less than" operator. - /// - [lessThanEqualTo]: A value to compare the input value against using the "less than or equal to" operator. - const Validate._({ - bool onUpdate = true, - bool onInsert = true, - ValidateType? validator, - dynamic value, - Comparable? greaterThan, - Comparable? greaterThanEqualTo, - Comparable? equalTo, - Comparable? lessThan, - Comparable? lessThanEqualTo, - }) : runOnUpdate = onUpdate, - runOnInsert = onInsert, - type = validator, - _value = value, - _greaterThan = greaterThan, - _greaterThanEqualTo = greaterThanEqualTo, - _equalTo = equalTo, - _lessThan = lessThan, - _lessThanEqualTo = lessThanEqualTo; - - /// A validator for matching an input String against a regular expression. - /// - /// Values passing through validators of this type must match a regular expression - /// created by [pattern]. See [RegExp] in the Dart standard library for behavior. - /// - /// This validator is only valid for [String] properties. - /// - /// If [onUpdate] is true (the default), this validation is run on update queries. - /// If [onInsert] is true (the default), this validation is run on insert queries. - const Validate.matches( - String pattern, { - bool onUpdate = true, - bool onInsert = true, - }) : this._( - value: pattern, - onUpdate: onUpdate, - onInsert: onInsert, - validator: ValidateType.regex, - ); - - /// A validator for comparing a value. - /// - /// Values passing through validators of this type must be [lessThan], - /// [greaterThan], [lessThanEqualTo], [equalTo], or [greaterThanEqualTo - /// to the value provided for each argument. - /// - /// Any argument not specified is not evaluated. A typical validator - /// only uses one argument: - /// - /// @Validate.compare(lessThan: 10.0) - /// double value; - /// - /// All provided arguments are evaluated. Therefore, the following - /// requires an input value to be between 6 and 10: - /// - /// @Validate.compare(greaterThanEqualTo: 6, lessThanEqualTo: 10) - /// int value; - /// - /// This validator can be used for [String], [double], [int] and [DateTime] properties. - /// - /// When creating a validator for [DateTime] properties, the value for an argument - /// is a [String] that will be parsed by [DateTime.parse]. - /// - /// @Validate.compare(greaterThan: "2017-02-11T00:30:00Z") - /// DateTime date; - /// - /// If [onUpdate] is true (the default), this validation is run on update queries. - /// If [onInsert] is true (the default), this validation is run on insert queries. - const Validate.compare({ - Comparable? lessThan, - Comparable? greaterThan, - Comparable? equalTo, - Comparable? greaterThanEqualTo, - Comparable? lessThanEqualTo, - bool onUpdate = true, - bool onInsert = true, - }) : this._( - lessThan: lessThan, - lessThanEqualTo: lessThanEqualTo, - greaterThan: greaterThan, - greaterThanEqualTo: greaterThanEqualTo, - equalTo: equalTo, - onUpdate: onUpdate, - onInsert: onInsert, - validator: ValidateType.comparison, - ); - - /// A validator for validating the length of a [String]. - /// - /// Values passing through validators of this type must a [String] with a length that is[lessThan], - /// [greaterThan], [lessThanEqualTo], [equalTo], or [greaterThanEqualTo - /// to the value provided for each argument. - /// - /// Any argument not specified is not evaluated. A typical validator - /// only uses one argument: - /// - /// @Validate.length(lessThan: 10) - /// String foo; - /// - /// All provided arguments are evaluated. Therefore, the following - /// requires an input string to have a length to be between 6 and 10: - /// - /// @Validate.length(greaterThanEqualTo: 6, lessThanEqualTo: 10) - /// String foo; - /// - /// If [onUpdate] is true (the default), this validation is run on update queries. - /// If [onInsert] is true (the default), this validation is run on insert queries. - const Validate.length({ - int? lessThan, - int? greaterThan, - int? equalTo, - int? greaterThanEqualTo, - int? lessThanEqualTo, - bool onUpdate = true, - bool onInsert = true, - }) : this._( - lessThan: lessThan, - lessThanEqualTo: lessThanEqualTo, - greaterThan: greaterThan, - greaterThanEqualTo: greaterThanEqualTo, - equalTo: equalTo, - onUpdate: onUpdate, - onInsert: onInsert, - validator: ValidateType.length, - ); - - /// A validator for ensuring a property always has a value when being inserted or updated. - /// - /// This metadata requires that a property must be set in [Query.values] before an update - /// or insert. The value may be null, if the property's [Column.isNullable] allow it. - /// - /// If [onUpdate] is true (the default), this validation requires a property to be present for update queries. - /// If [onInsert] is true (the default), this validation requires a property to be present for insert queries. - const Validate.present({bool onUpdate = true, bool onInsert = true}) - : this._( - onUpdate: onUpdate, - onInsert: onInsert, - validator: ValidateType.present, - ); - - /// A validator for ensuring a property does not have a value when being inserted or updated. - /// - /// This metadata requires that a property must NOT be set in [Query.values] before an update - /// or insert. - /// - /// This validation is used to restrict input during either an insert or update query. For example, - /// a 'dateCreated' property would use this validator to ensure that property isn't set during an update. - /// - /// @Validate.absent(onUpdate: true, onInsert: false) - /// DateTime dateCreated; - /// - /// If [onUpdate] is true (the default), this validation requires a property to be absent for update queries. - /// If [onInsert] is true (the default), this validation requires a property to be absent for insert queries. - const Validate.absent({bool onUpdate = true, bool onInsert = true}) - : this._( - onUpdate: onUpdate, - onInsert: onInsert, - validator: ValidateType.absent, - ); - - /// A validator for ensuring a value is one of a set of values. - /// - /// An input value must be one of [values]. - /// - /// [values] must be homogenous - every value must be the same type - - /// and the property with this metadata must also match the type - /// of the objects in [values]. - /// - /// This validator can be used for [String] and [int] properties. - /// - /// @Validate.oneOf(const ["A", "B", "C") - /// String foo; - /// - /// If [onUpdate] is true (the default), this validation is run on update queries. - /// If [onInsert] is true (the default), this validation is run on insert queries. - const Validate.oneOf( - List values, { - bool onUpdate = true, - bool onInsert = true, - }) : this._( - value: values, - onUpdate: onUpdate, - onInsert: onInsert, - validator: ValidateType.oneOf, - ); - - /// A validator that ensures a value cannot be modified after insertion. - /// - /// This is equivalent to `Validate.absent(onUpdate: true, onInsert: false)`. - /// - /// This validator is used to ensure that a property, once set during the initial - /// insertion of a record, cannot be updated. For example, you might use this - /// validator on a `dateCreated` property to ensure that the creation date - /// cannot be changed after the record is inserted. - const Validate.constant() : this.absent(onUpdate: true, onInsert: false); - - /// Whether or not this validation is checked on update queries. - /// - /// This property determines whether the validation will be performed during update operations on the database. - /// If `true`, the validation will be executed during update queries. If `false`, the validation will be skipped - /// during update queries. - final bool runOnUpdate; - - /// Whether or not this validation is checked on insert queries. - /// - /// This property determines whether the validation will be performed during insert operations on the database. - /// If `true`, the validation will be executed during insert queries. If `false`, the validation will be skipped - /// during insert queries. - final bool runOnInsert; - - /// The value associated with the validator. - /// - /// The meaning of this value depends on the type of validator. For example, for a - /// [Validate.matches] validator, this value would be the regular expression pattern to - /// match against. For a [Validate.oneOf] validator, this value would be the list of - /// allowed values. - final dynamic _value; - - /// The greater than value for the comparison validation. - final Comparable? _greaterThan; - - /// The greater than or equal to value for the comparison validation. - final Comparable? _greaterThanEqualTo; - - /// The value to compare the input value against using the "equal to" operator. - /// - /// This value is used in the [_comparisonCompiler] method to create a [ValidationExpression] - /// with the [ValidationOperator.equalTo] operator. - final Comparable? _equalTo; - - /// The "less than" value for the comparison validation. - final Comparable? _lessThan; - - /// The "less than or equal to" value for the comparison validation. - /// - /// This value is used in the [_comparisonCompiler] method to create a [ValidationExpression] - /// with the [ValidationOperator.lessThanEqualTo] operator. - final Comparable? _lessThanEqualTo; - - /// The type of validation to be performed. - /// - /// This can be one of the following values: - /// - /// - `ValidateType.absent`: The property must not be present in the update or insert query. - /// - `ValidateType.present`: The property must be present in the update or insert query. - /// - `ValidateType.oneOf`: The property value must be one of the values in the provided list. - /// - `ValidateType.comparison`: The property value must meet the comparison conditions specified. - /// - `ValidateType.regex`: The property value must match the provided regular expression. - /// - `ValidateType.length`: The length of the property value must meet the specified length conditions. - final ValidateType? type; - - /// Subclasses override this method to perform any one-time initialization tasks and check for correctness. - /// - /// Use this method to ensure a validator is being applied to a property correctly. For example, a - /// [Validate.compare] builds a list of expressions and ensures each expression's values are the - /// same type as the property being validated. - /// - /// The value returned from this method is available in [ValidationContext.state] when this - /// instance's [validate] method is called. - /// - /// [typeBeingValidated] is the type of the property being validated. If [relationshipInverseType] is not-null, - /// it is a [ManagedObject] subclass and [typeBeingValidated] is the type of its primary key. - /// - /// If compilation fails, throw a [ValidateCompilationError] with a message describing the issue. The entity - /// and property will automatically be added to the error. - dynamic compile( - ManagedType typeBeingValidated, { - Type? relationshipInverseType, - }) { - switch (type) { - case ValidateType.absent: - return null; - case ValidateType.present: - return null; - case ValidateType.oneOf: - { - return _oneOfCompiler( - typeBeingValidated, - relationshipInverseType: relationshipInverseType, - ); - } - case ValidateType.comparison: - return _comparisonCompiler( - typeBeingValidated, - relationshipInverseType: relationshipInverseType, - ); - case ValidateType.regex: - return _regexCompiler( - typeBeingValidated, - relationshipInverseType: relationshipInverseType, - ); - case ValidateType.length: - return _lengthCompiler( - typeBeingValidated, - relationshipInverseType: relationshipInverseType, - ); - default: - return null; - } - } - - /// Validates the [input] value. - /// - /// Subclasses override this method to provide validation behavior. - /// - /// [input] is the value being validated. If the value is invalid, the reason - /// is added to [context] via [ValidationContext.addError]. - /// - /// Additional information about the validation event and the attribute being evaluated - /// is available in [context]. - /// in [context]. - /// - /// This method is not run when [input] is null. - /// - /// The type of [input] will have already been type-checked prior to executing this method. - void validate(ValidationContext context, dynamic input) { - switch (type!) { - case ValidateType.absent: - {} - break; - case ValidateType.present: - {} - break; - case ValidateType.comparison: - { - final expressions = context.state as List; - for (final expr in expressions) { - expr.compare(context, input); - } - } - break; - case ValidateType.regex: - { - final regex = context.state as RegExp; - if (!regex.hasMatch(input as String)) { - context.addError("does not match pattern ${regex.pattern}"); - } - } - break; - case ValidateType.oneOf: - { - final options = context.state as List; - if (options.every((v) => input != v)) { - context.addError( - "must be one of: ${options.map((v) => "'$v'").join(",")}.", - ); - } - } - break; - case ValidateType.length: - { - final expressions = context.state as List; - for (final expr in expressions) { - expr.compare(context, (input as String).length); - } - } - break; - } - } - - /// Adds constraints to an [APISchemaObject] imposed by this validator. - /// - /// Used during documentation process. When creating custom validator subclasses, override this method - /// to modify [object] for any constraints the validator imposes. - /// This method is used during the documentation process. When creating custom validator subclasses, - /// override this method to modify the [object] parameter for any constraints the validator imposes. - /// - /// The constraints added to the [APISchemaObject] depend on the type of validator: - /// - /// - For `ValidateType.regex` validators, the `pattern` property of the [APISchemaObject] is set to the - /// regular expression pattern specified in the validator. - /// - For `ValidateType.comparison` validators, the `minimum`, `maximum`, `exclusiveMinimum`, and - /// `exclusiveMaximum` properties of the [APISchemaObject] are set based on the comparison values - /// specified in the validator. - /// - For `ValidateType.length` validators, the `minLength`, `maxLength`, and `maximum` properties - /// of the [APISchemaObject] are set based on the length-related values specified in the validator. - /// - For `ValidateType.present` and `ValidateType.absent` validators, no constraints are added to the - /// [APISchemaObject]. - /// - For `ValidateType.oneOf` validators, the `enumerated` property of the [APISchemaObject] is set - /// to the list of allowed values specified in the validator. - /// - /// @param context The [APIDocumentContext] being used to document the API. - /// @param object The [APISchemaObject] to which constraints should be added. - void constrainSchemaObject( - /// Adds constraints to an [APISchemaObject] imposed by this validator. - /// - /// This method is used during the documentation process. When creating custom validator subclasses, - /// override this method to modify the [object] parameter for any constraints the validator imposes. - /// - /// The constraints added to the [APISchemaObject] depend on the type of validator: - /// - /// - For `ValidateType.regex` validators, the `pattern` property of the [APISchemaObject] is set to the - /// regular expression pattern specified in the validator. - /// - For `ValidateType.comparison` validators, the `minimum`, `maximum`, `exclusiveMinimum`, and - /// `exclusiveMaximum` properties of the [APISchemaObject] are set based on the comparison values - /// specified in the validator. - /// - For `ValidateType.length` validators, the `minLength`, `maxLength`, and `maximum` properties - /// of the [APISchemaObject] are set based on the length-related values specified in the validator. - /// - For `ValidateType.present` and `ValidateType.absent` validators, no constraints are added to the - /// [APISchemaObject]. - /// - For `ValidateType.oneOf` validators, the `enumerated` property of the [APISchemaObject] is set - /// to the list of allowed values specified in the validator. - /// - /// @param context The [APIDocumentContext] being used to document the API. - /// @param object The [APISchemaObject] to which constraints should be added. - APIDocumentContext context, - - /// Adds constraints to an [APISchemaObject] imposed by this validator. - /// - /// This method is used during the documentation process. When creating custom validator subclasses, - /// override this method to modify the [object] parameter for any constraints the validator imposes. - /// - /// The constraints added to the [APISchemaObject] depend on the type of validator: - /// - /// - For `ValidateType.regex` validators, the `pattern` property of the [APISchemaObject] is set to the - /// regular expression pattern specified in the validator. - /// - For `ValidateType.comparison` validators, the `minimum`, `maximum`, `exclusiveMinimum`, and - /// `exclusiveMaximum` properties of the [APISchemaObject] are set based on the comparison values - /// specified in the validator. - /// - For `ValidateType.length` validators, the `minLength`, `maxLength`, and `maximum` properties - /// of the [APISchemaObject] are set based on the length-related values specified in the validator. - /// - For `ValidateType.present` and `ValidateType.absent` validators, no constraints are added to the - /// [APISchemaObject]. - /// - For `ValidateType.oneOf` validators, the `enumerated` property of the [APISchemaObject] is set - /// to the list of allowed values specified in the validator. - /// - /// @param context The [APIDocumentContext] being used to document the API. - /// @param object The [APISchemaObject] to which constraints should be added. - APISchemaObject object, - ) { - /// Adds constraints to an [APISchemaObject] imposed by this validator. - /// - /// This method is used during the documentation process. When creating custom validator subclasses, - /// override this method to modify the [object] parameter for any constraints the validator imposes. - /// - /// The constraints added to the [APISchemaObject] depend on the type of validator: - /// - /// - For `ValidateType.regex` validators, the `pattern` property of the [APISchemaObject] is set to the - /// regular expression pattern specified in the validator. - /// - For `ValidateType.comparison` validators, the `minimum`, `maximum`, `exclusiveMinimum`, and - /// `exclusiveMaximum` properties of the [APISchemaObject] are set based on the comparison values - /// specified in the validator. - /// - For `ValidateType.length` validators, the `minLength`, `maxLength`, and `maximum` properties - /// of the [APISchemaObject] are set based on the length-related values specified in the validator. - /// - For `ValidateType.present` and `ValidateType.absent` validators, no constraints are added to the - /// [APISchemaObject]. - /// - For `ValidateType.oneOf` validators, the `enumerated` property of the [APISchemaObject] is set - /// to the list of allowed values specified in the validator. - /// - /// @param context The [APIDocumentContext] being used to document the API. - /// @param object The [APISchemaObject] to which constraints should be added. - /// - /// The implementation of this method is as follows: - switch (type!) { - case ValidateType.regex: - { - object.pattern = _value as String?; - } - break; - case ValidateType.comparison: - { - if (_greaterThan is num) { - object.exclusiveMinimum = true; - object.minimum = _greaterThan as num?; - } else if (_greaterThanEqualTo is num) { - object.exclusiveMinimum = false; - object.minimum = _greaterThanEqualTo as num?; - } - - if (_lessThan is num) { - object.exclusiveMaximum = true; - object.maximum = _lessThan as num?; - } else if (_lessThanEqualTo is num) { - object.exclusiveMaximum = false; - object.maximum = _lessThanEqualTo as num?; - } - } - break; - case ValidateType.length: - { - if (_equalTo != null) { - object.maxLength = _equalTo as int; - object.minLength = _equalTo; - } else { - if (_greaterThan is int) { - object.minLength = 1 + (_greaterThan); - } else if (_greaterThanEqualTo is int) { - object.minLength = _greaterThanEqualTo as int?; - } - - if (_lessThan is int) { - object.maxLength = (-1) + (_lessThan); - } else if (_lessThanEqualTo != null) { - object.maximum = _lessThanEqualTo as int?; - } - } - } - break; - case ValidateType.present: - {} - break; - case ValidateType.absent: - {} - break; - case ValidateType.oneOf: - { - object.enumerated = _value as List?; - } - break; - } - } - - /// Compiles the [Validate.oneOf] validator. - /// - /// The [Validate.oneOf] validator ensures that the value of a property is one of a set of allowed values. - /// - /// This method checks the following: - /// - /// - The `_value` property must be a `List`. - /// - The type of the property being validated must be either `String`, `int`, or `bigint`. - /// - The list of allowed values must all be assignable to the type of the property being validated. - /// - The list of allowed values must not be empty. - /// - /// If any of these conditions are not met, a [ValidateCompilationError] is thrown with a descriptive error message. - /// - /// The compiled result is the list of allowed values, which will be stored in the [ValidationContext.state] property - /// during validation. - /// - /// @param typeBeingValidated The [ManagedType] of the property being validated. - /// @param relationshipInverseType If the property is a relationship, the type of the inverse property. - /// @return The list of allowed values for the [Validate.oneOf] validator. - dynamic _oneOfCompiler( - ManagedType typeBeingValidated, { - Type? relationshipInverseType, - }) { - if (_value is! List) { - throw ValidateCompilationError( - "Validate.oneOf value must be a List, where T is the type of the property being validated.", - ); - } - - final options = _value; - final supportedOneOfTypes = [ - ManagedPropertyType.string, - ManagedPropertyType.integer, - ManagedPropertyType.bigInteger - ]; - if (!supportedOneOfTypes.contains(typeBeingValidated.kind) || - relationshipInverseType != null) { - throw ValidateCompilationError( - "Validate.oneOf is only valid for String or int types.", - ); - } - - if (options.any((v) => !typeBeingValidated.isAssignableWith(v))) { - throw ValidateCompilationError( - "Validate.oneOf value must be a List, where T is the type of the property being validated.", - ); - } - - if (options.isEmpty) { - throw ValidateCompilationError( - "Validate.oneOf must have at least one element.", - ); - } - - return options; - } - - /// A list of [ValidationExpression] objects representing the various comparison - /// conditions specified for this validator. - /// - /// The [ValidationExpression] objects are created based on the values of the - /// `_equalTo`, `_lessThan`, `_lessThanEqualTo`, `_greaterThan`, and - /// `_greaterThanEqualTo` instance variables. - /// - /// This method is used by the `_comparisonCompiler` method to compile the - /// comparison validator. - List get _expressions { - final comparisons = []; - if (_equalTo != null) { - comparisons - .add(ValidationExpression(ValidationOperator.equalTo, _equalTo)); - } - if (_lessThan != null) { - comparisons - .add(ValidationExpression(ValidationOperator.lessThan, _lessThan)); - } - if (_lessThanEqualTo != null) { - comparisons.add( - ValidationExpression( - ValidationOperator.lessThanEqualTo, - _lessThanEqualTo, - ), - ); - } - if (_greaterThan != null) { - comparisons.add( - ValidationExpression(ValidationOperator.greaterThan, _greaterThan), - ); - } - if (_greaterThanEqualTo != null) { - comparisons.add( - ValidationExpression( - ValidationOperator.greaterThanEqualTo, - _greaterThanEqualTo, - ), - ); - } - - return comparisons; - } - - /// Compiles the comparison validator. - /// - /// This method is responsible for creating a list of [ValidationExpression] objects - /// that represent the various comparison conditions specified for this validator. - /// - /// The method performs the following tasks: - /// - /// 1. Retrieves the list of comparison expressions from the `_expressions` getter. - /// 2. For each expression, it calls the `_parseComparisonValue` method to parse and validate - /// the comparison value based on the type of the property being validated. - /// - /// The compiled result is the list of [ValidationExpression] objects, which will be stored - /// in the [ValidationContext.state] property during validation. - /// - /// @param typeBeingValidated The [ManagedType] of the property being validated. - /// @param relationshipInverseType If the property is a relationship, the type of the inverse property. - /// @return The list of [ValidationExpression] objects representing the comparison conditions. - dynamic _comparisonCompiler( - ManagedType? typeBeingValidated, { - Type? relationshipInverseType, - }) { - final exprs = _expressions; - for (final expr in exprs) { - expr.value = _parseComparisonValue( - expr.value, - typeBeingValidated, - relationshipInverseType: relationshipInverseType, - ); - } - return exprs; - } - - /// Parses the comparison value for the [Validate.compare] validator. - /// - /// This method is responsible for validating the type of the comparison value - /// and converting it to the appropriate type if necessary. - /// - /// If the property being validated is of type [DateTime], the method attempts to - /// parse the [referenceValue] as a [DateTime] using [DateTime.parse]. If the - /// parsing fails, a [ValidateCompilationError] is thrown. - /// - /// If the property being validated is not of type [DateTime], the method checks - /// if the [referenceValue] is assignable to the type of the property being - /// validated. If the types are not compatible, a [ValidateCompilationError] is - /// thrown. - /// - /// If the [relationshipInverseType] is not null, the method checks if the - /// [referenceValue] is assignable to the primary key type of the relationship - /// being validated. - /// - /// @param referenceValue The value to be used for the comparison. - /// @param typeBeingValidated The [ManagedType] of the property being validated. - /// @param relationshipInverseType If the property is a relationship, the type of the inverse property. - /// @return The parsed comparison value as a [Comparable] object. - Comparable? _parseComparisonValue( - dynamic referenceValue, - ManagedType? typeBeingValidated, { - Type? relationshipInverseType, - }) { - if (typeBeingValidated?.kind == ManagedPropertyType.datetime) { - if (referenceValue is String) { - try { - return DateTime.parse(referenceValue); - } on FormatException { - throw ValidateCompilationError( - "Validate.compare value '$referenceValue' cannot be parsed as expected DateTime type.", - ); - } - } - - throw ValidateCompilationError( - "Validate.compare value '$referenceValue' is not expected DateTime type.", - ); - } - - if (relationshipInverseType == null) { - if (!typeBeingValidated!.isAssignableWith(referenceValue)) { - throw ValidateCompilationError( - "Validate.compare value '$referenceValue' is not assignable to type of attribute being validated.", - ); - } - } else { - if (!typeBeingValidated!.isAssignableWith(referenceValue)) { - throw ValidateCompilationError( - "Validate.compare value '$referenceValue' is not assignable to primary key type of relationship being validated.", - ); - } - } - - return referenceValue as Comparable?; - } - - /// Compiles the regular expression validator. - /// - /// This method is responsible for compiling the regular expression pattern specified - /// in the `Validate.matches` validator. - /// - /// The method performs the following tasks: - /// - /// 1. Checks that the property being validated is of type `String`. If not, a `ValidateCompilationError` - /// is thrown with an appropriate error message. - /// 2. Checks that the `_value` property, which should contain the regular expression pattern, - /// is of type `String`. If not, a `ValidateCompilationError` is thrown with an appropriate - /// error message. - /// 3. Creates a `RegExp` object using the regular expression pattern specified in the `_value` - /// property, and returns it as the compiled result. - /// - /// The compiled `RegExp` object will be stored in the `ValidationContext.state` property - /// during validation. - /// - /// @param typeBeingValidated The [ManagedType] of the property being validated. - /// @param relationshipInverseType If the property is a relationship, the type of the inverse property. - /// @return The compiled `RegExp` object representing the regular expression pattern. - dynamic _regexCompiler( - ManagedType? typeBeingValidated, { - Type? relationshipInverseType, - }) { - if (typeBeingValidated?.kind != ManagedPropertyType.string) { - throw ValidateCompilationError( - "Validate.matches is only valid for 'String' properties.", - ); - } - - if (_value is! String) { - throw ValidateCompilationError( - "Validate.matches argument must be 'String'.", - ); - } - - return RegExp(_value); - } - - /// Compiles the length validator. - /// - /// This method is responsible for creating a list of [ValidationExpression] objects - /// that represent the various length-based conditions specified for this validator. - /// - /// The method performs the following tasks: - /// - /// 1. Checks that the property being validated is of type `String`. If not, a - /// `ValidateCompilationError` is thrown with an appropriate error message. - /// 2. Retrieves the list of length-based expressions from the `_expressions` getter. - /// 3. Checks that all the values in the expressions are of type `int`. If not, a - /// `ValidateCompilationError` is thrown with an appropriate error message. - /// - /// The compiled result is the list of [ValidationExpression] objects, which will be - /// stored in the [ValidationContext.state] property during validation. - /// - /// @param typeBeingValidated The [ManagedType] of the property being validated. - /// @param relationshipInverseType If the property is a relationship, the type of the inverse property. - /// @return The list of [ValidationExpression] objects representing the length-based conditions. - dynamic _lengthCompiler( - ManagedType typeBeingValidated, { - Type? relationshipInverseType, - }) { - if (typeBeingValidated.kind != ManagedPropertyType.string) { - throw ValidateCompilationError( - "Validate.length is only valid for 'String' properties.", - ); - } - final expressions = _expressions; - if (expressions.any((v) => v.value is! int)) { - throw ValidateCompilationError( - "Validate.length arguments must be 'int's.", - ); - } - return expressions; - } -} diff --git a/packages/database/lib/src/persistent_store/persistent_store.dart b/packages/database/lib/src/persistent_store/persistent_store.dart deleted file mode 100644 index 64a5a2a..0000000 --- a/packages/database/lib/src/persistent_store/persistent_store.dart +++ /dev/null @@ -1,433 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_database/src/managed/context.dart'; -import 'package:protevus_database/src/managed/entity.dart'; -import 'package:protevus_database/src/managed/object.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_database/src/schema/schema.dart'; - -/// Specifies the return type for a persistent store query. -/// -/// - [rowCount]: Indicates that the query should return the number of rows affected. -/// - [rows]: Indicates that the query should return the result set as a list of rows. -enum PersistentStoreQueryReturnType { rowCount, rows } - -/// Specifies the return type for a persistent store query. -/// -/// You rarely need to use this class directly. See [Query] for how to interact with instances of this class. -/// Implementors of this class serve as the bridge between [Query]s and a specific database. -abstract class PersistentStore { - /// Creates a new database-specific [Query]. - /// - /// This method creates a new instance of a [Query] subclass that is specific to the - /// database implementation represented by this [PersistentStore]. The returned - /// [Query] instance will be capable of interacting with the database in the appropriate - /// way. - /// - /// The [context] parameter specifies the [ManagedContext] that the [Query] will be - /// associated with. The [entity] parameter specifies the [ManagedEntity] that the - /// [Query] will operate on. Optionally, [values] can be provided which will be - /// used to initialize the [Query]. - /// - /// Subclasses must override this method to provide a concrete implementation of [Query] - /// specific to this type of [PersistentStore]. The objects returned from this method - /// must implement [Query] and should mixin [QueryMixin] to inherit the majority of - /// the behavior provided by a query. - Query newQuery( - ManagedContext context, - ManagedEntity entity, { - T? values, - }); - - /// Executes an arbitrary SQL command on the database. - /// - /// This method allows you to execute any SQL command on the database managed by - /// this [PersistentStore] instance. The [sql] parameter should contain the SQL - /// statement to be executed, and the optional [substitutionValues] parameter - /// can be used to provide values to be substituted into the SQL statement, similar - /// to how a prepared statement works. - /// - /// The return value of this method is a [Future] that completes when the SQL - /// command has finished executing. The return value of the [Future] depends on - /// the type of SQL statement being executed, but it is typically `null` for - /// non-SELECT statements, or a value representing the result of the SQL statement. - /// - /// This method is intended for advanced use cases where the higher-level query - /// APIs provided by the [Query] class are not sufficient. In general, it is - /// recommended to use the [Query] class instead of calling [execute] directly, - /// as the [Query] class provides a more type-safe and database-agnostic interface - /// for interacting with the database. - Future execute(String sql, {Map? substitutionValues}); - - /// Executes a database query with the provided parameters. - /// - /// This method allows you to execute a database query using a format string and a map of values. - /// - /// The `formatString` parameter is a SQL string that can contain placeholders for values, which will be - /// replaced with the values from the `values` parameter. - /// - /// The `values` parameter is a map of key-value pairs, where the keys correspond to the placeholders - /// in the `formatString`, and the values are the actual values to be substituted. - /// - /// The `timeoutInSeconds` parameter specifies the maximum time, in seconds, that the query is allowed to - /// run before being cancelled. - /// - /// The optional `returnType` parameter specifies the type of return value expected from the query. If - /// `PersistentStoreQueryReturnType.rowCount` is specified, the method will return the number of rows - /// affected by the query. If `PersistentStoreQueryReturnType.rows` is specified, the method will return - /// the result set as a list of rows. - /// - /// The return value of this method is a `Future` that completes when the query has finished executing. - /// The type of the value returned by the `Future` depends on the `returnType` parameter. - Future executeQuery( - String formatString, - Map values, - int timeoutInSeconds, { - PersistentStoreQueryReturnType? returnType, - }); - - /// Executes a database transaction. - /// - /// This method allows you to execute a sequence of database operations as a single - /// atomic transaction. If any of the operations in the transaction fail, the entire - /// transaction is rolled back, ensuring data consistency. - /// - /// The `transactionContext` parameter is the `ManagedContext` in which the transaction - /// will be executed. This context must be separate from any existing `ManagedContext` - /// instances, as transactions require their own isolated context. - /// - /// The `transactionBlock` parameter is a callback function that contains the database - /// operations to be executed as part of the transaction. This function takes the - /// `transactionContext` as its argument and returns a `Future` that represents the - /// result of the transaction. - /// - /// The return value of this method is a `Future` that completes when the transaction - /// has finished executing. The value returned by the `Future` is the same as the value - /// returned by the `transactionBlock` callback. - /// - /// Example usage: - /// ```dart - /// final result = await persistentStore.transaction( - /// transactionContext, - /// (context) async { - /// final user = await User(name: 'John Doe').insert(context); - /// final account = await Account(userId: user.id, balance: 100.0).insert(context); - /// return account; - /// }, - /// ); - /// ``` - Future transaction( - ManagedContext transactionContext, - Future Function(ManagedContext transaction) transactionBlock, - ); - - /// Closes the underlying database connection. - /// - /// This method is used to close the database connection managed by this - /// `PersistentStore` instance. Calling this method will ensure that all - /// resources associated with the database connection are properly released, - /// and that the connection is no longer available for use. - /// - /// The return value of this method is a `Future` that completes when the - /// database connection has been successfully closed. If there is an error - /// closing the connection, the `Future` will complete with an error. - Future close(); - - // -- Schema Ops -- - - /// Creates a list of SQL statements to create a new database table. - /// - /// This method generates the necessary SQL statements to create a new database table - /// based on the provided [SchemaTable] object. The table can be created as a - /// temporary table if the `isTemporary` parameter is set to `true`. - /// - /// The returned list of strings represents the SQL statements that should be executed - /// to create the new table. The caller of this method is responsible for executing - /// these statements to create the table in the database. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object that defines the structure of the new table. - /// - `isTemporary`: A boolean indicating whether the table should be created as a - /// temporary table. Temporary tables are only visible within the current session - /// and are automatically dropped when the session ends. Defaults to `false`. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to create the new table. - List createTable(SchemaTable table, {bool isTemporary = false}); - - /// Generates a list of SQL statements to rename a database table. - /// - /// This method generates the necessary SQL statements to rename an existing database table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table to be renamed. - /// - `name`: The new name for the table. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to rename the table. - List renameTable(SchemaTable table, String name); - - /// Generates a list of SQL statements to delete a database table. - /// - /// This method generates the necessary SQL statements to delete an existing database table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table to be deleted. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to delete the table. - List deleteTable(SchemaTable table); - - /// Generates a list of SQL statements to create a unique column set for a database table. - /// - /// This method generates the necessary SQL statements to create a unique column set - /// for an existing database table. A unique column set is a set of one or more columns - /// that must have unique values for each row in the table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table for which the unique column - /// set should be created. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to create the unique column set. - List addTableUniqueColumnSet(SchemaTable table); - - /// Generates a list of SQL statements to delete a unique column set for a database table. - /// - /// This method generates the necessary SQL statements to delete an existing unique column set - /// for a database table. A unique column set is a set of one or more columns - /// that must have unique values for each row in the table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table for which the unique column - /// set should be deleted. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to delete the unique column set. - List deleteTableUniqueColumnSet(SchemaTable table); - - /// Generates a list of SQL statements to add a new column to a database table. - /// - /// This method generates the necessary SQL statements to add a new column to an existing - /// database table. The new column is defined by the provided [SchemaColumn] object. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table to which the new column should be added. - /// - `column`: The [SchemaColumn] object that defines the new column to be added. - /// - `unencodedInitialValue`: An optional string that specifies an initial value for the new column. - /// This value will be used as the default value for the column unless the column has a specific - /// default value defined in the [SchemaColumn] object. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be executed - /// to add the new column to the table. - List addColumn( - SchemaTable table, - SchemaColumn column, { - String? unencodedInitialValue, - }); - - /// Generates a list of SQL statements to delete a column from a database table. - /// - /// This method generates the necessary SQL statements to delete an existing column from - /// a database table. The column to be deleted is specified by the provided [SchemaTable] - /// and [SchemaColumn] objects. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table from which the column - /// should be deleted. - /// - `column`: The [SchemaColumn] object representing the column to be deleted. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to delete the specified column from the table. - List deleteColumn(SchemaTable table, SchemaColumn column); - - /// Generates a list of SQL statements to rename a column in a database table. - /// - /// This method generates the necessary SQL statements to rename an existing column - /// in a database table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table containing the column - /// to be renamed. - /// - `column`: The [SchemaColumn] object representing the column to be renamed. - /// - `name`: The new name for the column. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to rename the column. - List renameColumn( - SchemaTable table, - SchemaColumn column, - String name, - ); - - /// Generates a list of SQL statements to alter the nullability of a column in a database table. - /// - /// This method generates the necessary SQL statements to change the nullability of an existing - /// column in a database table. The new nullability setting is specified by the `nullable` parameter - /// of the provided [SchemaColumn] object. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table containing the column to be altered. - /// - `column`: The [SchemaColumn] object representing the column to be altered. - /// - `unencodedInitialValue`: An optional string that specifies an initial value for the column - /// if it is being changed from nullable to non-nullable. This value will be used to populate - /// any existing rows that have a null value in the column. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be executed - /// to alter the nullability of the column. - List alterColumnNullability( - SchemaTable table, - SchemaColumn column, - String? unencodedInitialValue, - ); - - /// Generates a list of SQL statements to alter the uniqueness of a column in a database table. - /// - /// This method generates the necessary SQL statements to change the uniqueness of an existing - /// column in a database table. The new uniqueness setting is specified by the `unique` property - /// of the provided [SchemaColumn] object. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table containing the column to be altered. - /// - `column`: The [SchemaColumn] object representing the column to be altered. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be executed - /// to alter the uniqueness of the column. - List alterColumnUniqueness(SchemaTable table, SchemaColumn column); - - /// Generates a list of SQL statements to alter the default value of a column in a database table. - /// - /// This method generates the necessary SQL statements to change the default value of an existing - /// column in a database table. The new default value is specified by the `defaultValue` property - /// of the provided [SchemaColumn] object. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table containing the column to be altered. - /// - `column`: The [SchemaColumn] object representing the column to be altered. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be executed - /// to alter the default value of the column. - List alterColumnDefaultValue(SchemaTable table, SchemaColumn column); - - /// Generates a list of SQL statements to alter the delete rule of a column in a database table. - /// - /// This method generates the necessary SQL statements to change the delete rule of an existing - /// column in a database table. The delete rule determines what happens to the data in the - /// column when a row is deleted from the table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table containing the column to be altered. - /// - `column`: The [SchemaColumn] object representing the column to be altered. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be executed - /// to alter the delete rule of the column. - List alterColumnDeleteRule(SchemaTable table, SchemaColumn column); - - /// Generates a list of SQL statements to add a new index to a column in a database table. - /// - /// This method generates the necessary SQL statements to add a new index to an existing - /// column in a database table. The index is defined by the provided [SchemaTable] and - /// [SchemaColumn] objects. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table to which the new index - /// should be added. - /// - `column`: The [SchemaColumn] object representing the column on which the new - /// index should be created. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to add the new index to the table. - List addIndexToColumn(SchemaTable table, SchemaColumn column); - - /// Generates a list of SQL statements to rename an index on a column in a database table. - /// - /// This method generates the necessary SQL statements to rename an existing index on a - /// column in a database table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table containing the index - /// to be renamed. - /// - `column`: The [SchemaColumn] object representing the column on which the index - /// is defined. - /// - `newIndexName`: The new name for the index. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to rename the index. - List renameIndex( - SchemaTable table, - SchemaColumn column, - String newIndexName, - ); - - /// Generates a list of SQL statements to delete an index from a column in a database table. - /// - /// This method generates the necessary SQL statements to delete an existing index - /// from a column in a database table. - /// - /// Parameters: - /// - `table`: The [SchemaTable] object representing the table from which the index - /// should be deleted. - /// - `column`: The [SchemaColumn] object representing the column on which the index - /// is defined. - /// - /// Returns: - /// A list of strings, where each string represents a SQL statement that should be - /// executed to delete the index from the table. - List deleteIndexFromColumn(SchemaTable table, SchemaColumn column); - - /// Returns the current version of the database schema. - /// - /// This property returns the current version of the database schema managed by the - /// `PersistentStore` instance. The schema version is typically used to track the - /// state of the database and ensure that migrations are applied correctly when the - /// application is upgraded. - /// - /// The returned value is a `Future` that resolves to the current schema version. - /// This method should be implemented by the concrete `PersistentStore` subclass to - /// provide the appropriate implementation for the underlying database system. - Future get schemaVersion; - - /// Upgrades the database schema to a new version. - /// - /// This method applies a series of database migrations to upgrade the schema from the - /// specified `fromSchema` version to a new version. - /// - /// Parameters: - /// - `fromSchema`: The current schema version of the database. - /// - `withMigrations`: A list of [Migration] instances that should be applied to upgrade - /// the schema to the new version. - /// - `temporary`: If `true`, the schema upgrade will be performed on a temporary table - /// instead of the main database table. This can be useful for testing or other - /// advanced use cases. - /// - /// Returns: - /// A `Future` that completes with the new schema version after the migrations - /// have been successfully applied. - Future upgrade( - Schema fromSchema, - List withMigrations, { - bool temporary = false, - }); -} diff --git a/packages/database/lib/src/query/error.dart b/packages/database/lib/src/query/error.dart deleted file mode 100644 index 619eddd..0000000 --- a/packages/database/lib/src/query/error.dart +++ /dev/null @@ -1,162 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/persistent_store/persistent_store.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_http/http.dart'; - -/// An exception describing an issue with a query. -/// -/// A suggested HTTP status code based on the type of exception will always be available. -class QueryException implements HandlerException { - /// Creates a new [QueryException] instance. - /// - /// The [event] parameter represents the type of query exception that occurred. - /// The [message] parameter is an optional error message describing the exception. - /// The [underlyingException] parameter is the underlying exception that caused the query failure. - /// The [offendingItems] parameter is a list of strings representing the items that caused the query to fail. - QueryException( - this.event, { - this.message, - this.underlyingException, - this.offendingItems, - }); - - /// Creates a new [QueryException] instance of type [QueryExceptionEvent.input]. - /// - /// The [message] parameter is an optional error message describing the exception. - /// The [offendingItems] parameter is a list of strings representing the items that caused the query to fail. - /// The [underlyingException] parameter is the underlying exception that caused the query failure. - QueryException.input( - this.message, - this.offendingItems, { - this.underlyingException, - }) : event = QueryExceptionEvent.input; - - /// Creates a new [QueryException] instance of type [QueryExceptionEvent.transport]. - /// - /// The [message] parameter is an optional error message describing the exception. - /// The [underlyingException] parameter is the underlying exception that caused the query failure. - QueryException.transport(this.message, {this.underlyingException}) - : event = QueryExceptionEvent.transport, - offendingItems = null; - - /// Creates a new [QueryException] instance of type [QueryExceptionEvent.conflict]. - /// - /// The [message] parameter is an optional error message describing the exception. - /// The [offendingItems] parameter is a list of strings representing the items that caused the query to fail. - /// The [underlyingException] parameter is the underlying exception that caused the query failure. - QueryException.conflict( - this.message, - this.offendingItems, { - this.underlyingException, - }) : event = QueryExceptionEvent.conflict; - - /// The optional error message describing the exception. - final String? message; - - /// The exception generated by the [PersistentStore] or other mechanism that caused [Query] to fail. - /// - /// This property holds the underlying exception that led to the query failure. It can be used to provide more detailed information about the cause of the failure. - final T? underlyingException; - - /// The type of event that caused this exception. - /// - /// This property indicates the specific type of query exception that occurred. The possible values are: - /// - /// - `QueryExceptionEvent.input`: Indicates that the input data used in the query was invalid or caused an issue. - /// - `QueryExceptionEvent.transport`: Indicates that the underlying transport mechanism (e.g., database connection) failed. - /// - `QueryExceptionEvent.conflict`: Indicates that a unique constraint was violated in the underlying data store. - final QueryExceptionEvent event; - - /// The list of strings representing the items that caused the query to fail. - /// - /// This property is only available when the [QueryExceptionEvent] is of type [QueryExceptionEvent.input] or [QueryExceptionEvent.conflict]. It is `null` for other exception types. - final List? offendingItems; - - /// Returns a [Response] object based on the type of [QueryException] that was thrown. - /// - /// The response will have the appropriate HTTP status code based on the [QueryExceptionEvent] type, and the response body will contain an error message and, if applicable, a list of offending items that caused the query to fail. - @override - Response get response { - return Response(_getStatus(event), null, _getBody(message, offendingItems)); - } - - /// Generates the response body for a [QueryException] based on the exception type and details. - /// - /// The response body will contain an "error" field with the error message, and potentially a "detail" field if there are offending items that caused the query to fail. - /// - /// If [message] is `null`, the "error" field will default to "query failed". - /// - /// If [offendingItems] is not `null` and is not empty, a "detail" field will be added to the response body, listing the offending items separated by commas. - /// - /// Returns a map representing the response body. - static Map _getBody( - String? message, - List? offendingItems, - ) { - final body = { - "error": message ?? "query failed", - }; - - if (offendingItems != null && offendingItems.isNotEmpty) { - body["detail"] = "Offending Items: ${offendingItems.join(", ")}"; - } - - return body; - } - - /// Retrieves the appropriate HTTP status code based on the [QueryExceptionEvent] type. - /// - /// This method maps the different [QueryExceptionEvent] types to their corresponding HTTP status codes: - /// - /// - [QueryExceptionEvent.input]: Returns 400 (Bad Request) - /// - [QueryExceptionEvent.transport]: Returns 503 (Service Unavailable) - /// - [QueryExceptionEvent.conflict]: Returns 409 (Conflict) - static int _getStatus(QueryExceptionEvent event) { - switch (event) { - case QueryExceptionEvent.input: - return 400; - case QueryExceptionEvent.transport: - return 503; - case QueryExceptionEvent.conflict: - return 409; - } - } - - /// Returns a string representation of the [QueryException]. - /// - /// The returned string includes the error message and the underlying exception that caused the query failure. - @override - String toString() => "Query failed: $message. Reason: $underlyingException"; -} - -/// Categorizations of query failures for [QueryException]. -/// -/// This enum defines the different types of query exceptions that can occur when interacting with a [PersistentStore] or performing a [Query]. The enum values are used to indicate the specific cause of a query failure, which helps [Controller]s determine the appropriate HTTP status code to return. -/// -/// - `conflict`: Indicates that a unique constraint was violated in the underlying data store. [Controller]s interpret this exception to return a status code 409 (Conflict) by default. -/// - `transport`: Indicates that the underlying transport mechanism (e.g., database connection) failed. [Controller]s interpret this exception to return a status code 503 (Service Unavailable) by default. -/// - `input`: Indicates that the input data used in the query was invalid or caused an issue. [Controller]s interpret this exception to return a status code 400 (Bad Request) by default. -enum QueryExceptionEvent { - /// This event is used when the underlying [PersistentStore] reports that a unique constraint was violated. - /// - /// [Controller]s interpret this exception to return a status code 409 by default. - conflict, - - /// This event is used when the underlying [PersistentStore] cannot reach its database. - /// - /// [Controller]s interpret this exception to return a status code 503 by default. - transport, - - /// This event is used when the underlying [PersistentStore] reports an issue with the data used in a [Query]. - /// - /// [Controller]s interpret this exception to return a status code 400 by default. - input, -} diff --git a/packages/database/lib/src/query/matcher_expression.dart b/packages/database/lib/src/query/matcher_expression.dart deleted file mode 100644 index 29b8c2d..0000000 --- a/packages/database/lib/src/query/matcher_expression.dart +++ /dev/null @@ -1,492 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/query/query.dart'; - -/// Contains binary logic operations to be applied to a [QueryExpression]. -/// -/// This class represents a junction of two [QueryExpression] instances, allowing for the creation of more complex -/// expressions through the use of logical operators like `and`, `or`, and `not`. -/// -/// You do not create instances of this type directly, but instead it is returned when you invoke methods like -/// [QueryExpression.and], [QueryExpression.or], and [QueryExpression.not] on a [QueryExpression]. -class QueryExpressionJunction { - QueryExpressionJunction._(this.lhs); - - final QueryExpression lhs; -} - -/// Contains methods for adding logical expressions to properties when building a [Query]. -/// -/// You do not create instances of this type directly, but instead are returned an instance when selecting a property -/// of an object in [Query.where]. You invoke methods from this type to add an expression to the query for the selected property. -/// Example: -/// -/// final query = new Query() -/// ..where((e) => e.name).equalTo("Bob"); -/// -class QueryExpression { - /// Creates a new instance of [QueryExpression] with the specified [keyPath]. - /// - /// The [keyPath] represents the property path for the expression being created. - QueryExpression(this.keyPath); - - /// Creates a new [QueryExpression] by adding a key to the [keyPath] of the provided [original] expression. - /// - /// This method is used to create a new [QueryExpression] by appending a new [ManagedPropertyDescription] to the - /// [keyPath] of an existing [QueryExpression]. The resulting [QueryExpression] will have the same [_expression] as - /// the [original] expression, but with an updated [keyPath] that includes the additional key. - /// - /// This method is typically used when navigating through nested properties in a data model, allowing you to - /// build up complex query expressions by adding new keys to the path. - /// - /// @param original The original [QueryExpression] to use as the base. - /// @param byAdding The [ManagedPropertyDescription] to add to the [keyPath] of the original expression. - /// - /// @return A new [QueryExpression] with the updated [keyPath]. - QueryExpression.byAddingKey( - QueryExpression original, - ManagedPropertyDescription byAdding, - ) : keyPath = KeyPath.byAddingKey(original.keyPath, byAdding), - _expression = original.expression; - - /// The key path associated with this query expression. - /// - /// The key path represents the property path for the expression being created. - final KeyPath keyPath; - - /// Gets or sets the predicate expression associated with this query expression. - /// - /// The predicate expression represents the logical conditions that will be applied to the query. - /// When setting the expression, you can also invert the expression by using the [not] method. - PredicateExpression? get expression => _expression; - - /// Sets the predicate expression associated with this query expression. - /// - /// When setting the expression, you can also invert the expression by using the [not] method. - /// If the [_invertNext] flag is set to `true`, the expression will be inverted before being - /// assigned to the [_expression] field. After the expression is set, the [_invertNext] flag - /// is reset to `false`. - set expression(PredicateExpression? expr) { - if (_invertNext) { - _expression = expr!.inverse; - _invertNext = false; - } else { - _expression = expr; - } - } - - /// A flag that indicates whether the next expression should be inverted. - /// - /// When this flag is set to `true`, the next expression that is set using the `expression` property - /// will be inverted before being assigned. After the expression is set, the flag is reset to `false`. - bool _invertNext = false; - - /// The predicate expression associated with this query expression. - /// - /// The predicate expression represents the logical conditions that will be applied to the query. - /// When setting the expression, you can also invert the expression by using the [not] method. - PredicateExpression? _expression; - - /// Creates a new [QueryExpressionJunction] instance with the current [QueryExpression] as the left-hand side. - /// - /// This method is used internally to create a new [QueryExpressionJunction] instance that represents the logical junction - /// between the current [QueryExpression] and another [QueryExpression]. - /// - /// The resulting [QueryExpressionJunction] instance can be used to further build up complex query expressions using - /// methods like [and], [or], and [not]. - /// - /// @return A new [QueryExpressionJunction] instance with the current [QueryExpression] as the left-hand side. - QueryExpressionJunction _createJunction() => - QueryExpressionJunction._(this); - - /// Inverts the next expression. - /// - /// You use this method to apply an inversion to the expression that follows. For example, - /// the following example would only return objects where the 'id' is *not* equal to '5': - /// - /// final query = new Query() - /// ..where((e) => e.name).not.equalTo("Bob"); - QueryExpression get not { - _invertNext = !_invertNext; - - return this; - } - - /// Adds an equality expression to a query. - /// - /// A query will only return objects where the selected property is equal to [value]. - /// - /// This method can be used on [int], [String], [bool], [double] and [DateTime] types. - /// - /// If [value] is [String], the flag [caseSensitive] controls whether or not equality is case-sensitively compared. - /// - /// Example: - /// - /// final query = new Query() - /// ..where((u) => u.id ).equalTo(1); - /// - QueryExpressionJunction equalTo( - T value, { - bool caseSensitive = true, - }) { - if (value is String) { - expression = StringExpression( - value, - PredicateStringOperator.equals, - caseSensitive: caseSensitive, - allowSpecialCharacters: false, - ); - } else { - expression = ComparisonExpression(value, PredicateOperator.equalTo); - } - - return _createJunction(); - } - - /// Adds a 'not equal' expression to a query. - /// - /// A query will only return objects where the selected property is *not* equal to [value]. - /// - /// This method can be used on [int], [String], [bool], [double] and [DateTime] types. - /// - /// If [value] is [String], the flag [caseSensitive] controls whether or not equality is case-sensitively compared. - /// - /// Example: - /// - /// final query = new Query() - /// ..where((e) => e.id).notEqualTo(60000); - /// - QueryExpressionJunction notEqualTo( - T value, { - bool caseSensitive = true, - }) { - if (value is String) { - expression = StringExpression( - value, - PredicateStringOperator.equals, - caseSensitive: caseSensitive, - invertOperator: true, - allowSpecialCharacters: false, - ); - } else { - expression = ComparisonExpression(value, PredicateOperator.notEqual); - } - - return _createJunction(); - } - - /// Adds a 'like' expression to a query. - /// - /// A query will only return objects where the selected property is like [value]. - /// - /// For more documentation on postgres pattern matching, see - /// https://www.postgresql.org/docs/10/functions-matching.html. - /// - /// This method can be used on [String] types. - /// - /// The flag [caseSensitive] controls whether strings are compared case-sensitively. - /// - /// Example: - /// - /// final query = new Query() - /// ..where((u) => u.name ).like("bob"); - /// - QueryExpressionJunction like( - String value, { - bool caseSensitive = true, - }) { - expression = StringExpression( - value, - PredicateStringOperator.equals, - caseSensitive: caseSensitive, - ); - - return _createJunction(); - } - - /// Adds a 'not like' expression to a query. - /// - /// A query will only return objects where the selected property is *not* like [value]. - /// - /// For more documentation on postgres pattern matching, see - /// https://www.postgresql.org/docs/10/functions-matching.html. - /// - /// This method can be used on [String] types. - /// - /// The flag [caseSensitive] controls whether strings are compared case-sensitively. - /// - /// Example: - /// - /// final query = new Query() - /// ..where((e) => e.id).notEqualTo(60000); - /// - QueryExpressionJunction notLike( - String value, { - bool caseSensitive = true, - }) { - expression = StringExpression( - value, - PredicateStringOperator.equals, - caseSensitive: caseSensitive, - invertOperator: true, - ); - - return _createJunction(); - } - - /// Adds a 'greater than' expression to a query. - /// - /// A query will only return objects where the selected property is greater than [value]. - /// - /// This method can be used on [int], [String], [double] and [DateTime] types. For [DateTime] properties, - /// this method selects rows where the assigned property is 'later than' [value]. For [String] properties, - /// rows are selected if the value is alphabetically 'after' [value]. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.salary).greaterThan(60000); - QueryExpressionJunction greaterThan(T value) { - expression = ComparisonExpression(value, PredicateOperator.greaterThan); - - return _createJunction(); - } - - /// Adds a 'greater than or equal to' expression to a query. - /// - /// A query will only return objects where the selected property is greater than [value]. - /// - /// This method can be used on [int], [String], [double] and [DateTime] types. For [DateTime] properties, - /// this method selects rows where the assigned property is 'later than or the same time as' [value]. For [String] properties, - /// rows are selected if the value is alphabetically 'after or the same as' [value]. - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.salary).greaterThanEqualTo(60000); - QueryExpressionJunction greaterThanEqualTo(T value) { - expression = - ComparisonExpression(value, PredicateOperator.greaterThanEqualTo); - - return _createJunction(); - } - - /// Adds a 'less than' expression to a query. - /// - /// A query will only return objects where the selected property is less than [value]. - /// - /// This method can be used on [int], [String], [double] and [DateTime] types. For [DateTime] properties, - /// this method selects rows where the assigned property is 'earlier than' [value]. For [String] properties, - /// rows are selected if the value is alphabetically 'before' [value]. - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.salary).lessThan(60000); - QueryExpressionJunction lessThan(T value) { - expression = ComparisonExpression(value, PredicateOperator.lessThan); - - return _createJunction(); - } - - /// Adds a 'less than or equal to' expression to a query. - /// - /// A query will only return objects where the selected property is less than or equal to [value]. - /// - /// This method can be used on [int], [String], [double] and [DateTime] types. For [DateTime] properties, - /// this method selects rows where the assigned property is 'earlier than or the same time as' [value]. For [String] properties, - /// rows are selected if the value is alphabetically 'before or the same as' [value]. - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.salary).lessThanEqualTo(60000); - QueryExpressionJunction lessThanEqualTo(T value) { - expression = ComparisonExpression(value, PredicateOperator.lessThanEqualTo); - - return _createJunction(); - } - - /// Adds a 'contains string' expression to a query. - /// - /// A query will only return objects where the selected property contains the string [value]. - /// - /// This method can be used on [String] types. The substring [value] must be found in the stored string. - /// The flag [caseSensitive] controls whether strings are compared case-sensitively. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((s) => s.title).contains("Director"); - /// - QueryExpressionJunction contains( - String value, { - bool caseSensitive = true, - }) { - expression = StringExpression( - value, - PredicateStringOperator.contains, - caseSensitive: caseSensitive, - allowSpecialCharacters: false, - ); - - return _createJunction(); - } - - /// Adds a 'begins with string' expression to a query. - /// - /// A query will only return objects where the selected property is begins with the string [value]. - /// - /// This method can be used on [String] types. The flag [caseSensitive] controls whether strings are compared case-sensitively. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((s) => s.name).beginsWith("B"); - QueryExpressionJunction beginsWith( - String value, { - bool caseSensitive = true, - }) { - expression = StringExpression( - value, - PredicateStringOperator.beginsWith, - caseSensitive: caseSensitive, - allowSpecialCharacters: false, - ); - - return _createJunction(); - } - - /// Adds a 'ends with string' expression to a query. - /// - /// A query will only return objects where the selected property is ends with the string [value]. - /// - /// This method can be used on [String] types. The flag [caseSensitive] controls whether strings are compared case-sensitively. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.name).endsWith("son"); - QueryExpressionJunction endsWith( - String value, { - bool caseSensitive = true, - }) { - expression = StringExpression( - value, - PredicateStringOperator.endsWith, - caseSensitive: caseSensitive, - allowSpecialCharacters: false, - ); - - return _createJunction(); - } - - /// Adds a 'equal to one of' expression to a query. - /// - /// A query will only return objects where the selected property is equal to one of the [values]. - /// - /// This method can be used on [String], [int], [double], [bool] and [DateTime] types. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.department).oneOf(["Engineering", "HR"]); - QueryExpressionJunction oneOf(Iterable values) { - if (values.isEmpty) { - throw ArgumentError( - "'Query.where.oneOf' cannot be the empty set or null.", - ); - } - expression = SetMembershipExpression(values.toList()); - - return _createJunction(); - } - - /// Adds a 'between two values' expression to a query. - /// - /// A query will only return objects where the selected property is between than [lhs] and [rhs]. - /// - /// This method can be used on [int], [String], [double] and [DateTime] types. For [DateTime] properties, - /// this method selects rows where the assigned property is 'later than' [lhs] and 'earlier than' [rhs]. For [String] properties, - /// rows are selected if the value is alphabetically 'after' [lhs] and 'before' [rhs]. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.salary).between(80000, 100000); - QueryExpressionJunction between(T lhs, T rhs) { - expression = RangeExpression(lhs, rhs); - - return _createJunction(); - } - - /// Adds a 'outside of the range crated by two values' expression to a query. - /// - /// A query will only return objects where the selected property is not within the range established by [lhs] to [rhs]. - /// - /// This method can be used on [int], [String], [double] and [DateTime] types. For [DateTime] properties, - /// this method selects rows where the assigned property is 'later than' [rhs] and 'earlier than' [lhs]. For [String] properties, - /// rows are selected if the value is alphabetically 'before' [lhs] and 'after' [rhs]. - /// - /// Example: - /// - /// var query = new Query() - /// ..where((e) => e.salary).outsideOf(80000, 100000); - QueryExpressionJunction outsideOf(T lhs, T rhs) { - expression = RangeExpression(lhs, rhs, within: false); - - return _createJunction(); - } - - /// Adds an equality expression for foreign key columns to a query. - /// - /// A query will only return objects where the selected object's primary key is equal to [identifier]. - /// - /// This method may only be used on belongs-to relationships; i.e., those that have a [Relate] annotation. - /// The type of [identifier] must match the primary key type of the selected object this expression is being applied to. - /// - /// var q = new Query() - /// ..where((e) => e.manager).identifiedBy(5); - QueryExpressionJunction identifiedBy(dynamic identifier) { - expression = ComparisonExpression(identifier, PredicateOperator.equalTo); - - return _createJunction(); - } - - /// Adds a 'null check' expression to a query. - /// - /// A query will only return objects where the selected property is null. - /// - /// This method can be applied to any property type. - /// - /// Example: - /// - /// var q = new Query() - /// ..where((e) => e.manager).isNull(); - QueryExpressionJunction isNull() { - expression = const NullCheckExpression(); - - return _createJunction(); - } - - /// Adds a 'not null check' expression to a query. - /// - /// A query will only return objects where the selected property is not null. - /// - /// This method can be applied to any property type. - /// - /// Example: - /// - /// var q = new Query() - /// ..where((e) => e.manager).isNotNull(); - QueryExpressionJunction isNotNull() { - expression = const NullCheckExpression(shouldBeNull: false); - - return _createJunction(); - } -} diff --git a/packages/database/lib/src/query/mixin.dart b/packages/database/lib/src/query/mixin.dart deleted file mode 100644 index 1b6d036..0000000 --- a/packages/database/lib/src/query/mixin.dart +++ /dev/null @@ -1,423 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/backing.dart'; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/managed/relationship_type.dart'; -import 'package:protevus_database/src/query/page.dart'; -import 'package:protevus_database/src/query/query.dart'; -import 'package:protevus_database/src/query/sort_descriptor.dart'; - -/// A mixin that provides the implementation for the [Query] interface. -/// -/// This mixin is used to add the functionality of the [Query] interface to a class -/// that represents a database query. It provides methods for setting and retrieving -/// properties of the query, such as the offset, fetch limit, timeout, and value map. -/// It also provides methods for creating and managing subqueries, sorting and paging -/// the results, and validating the input values. -mixin QueryMixin - implements Query { - /// The offset of the query, which determines the starting point for the results. - /// - /// The offset is used to skip a certain number of results from the beginning of the - /// query. For example, an offset of 10 would skip the first 10 results and return - /// the 11th result and all subsequent results. - @override - int offset = 0; - - /// The maximum number of results to fetch from the database. - /// - /// When the fetch limit is set to a non-zero value, the query will only return - /// up to that many results. A fetch limit of 0 (the default) means that there - /// is no limit on the number of results that can be returned. - @override - int fetchLimit = 0; - - /// The maximum number of seconds the query is allowed to run before it is terminated. - /// - /// The timeout is used to ensure that queries don't run indefinitely, which could - /// cause issues in a production environment. If a query takes longer than the - /// specified timeout, it will be automatically terminated and an error will be - /// returned. - @override - int timeoutInSeconds = 30; - - /// Determines whether the query can modify all instances of the entity, regardless of - /// any filtering or sorting criteria that may have been applied. - /// - /// When this property is set to `true`, the query will be able to modify all instances - /// of the entity, even if the query has filters or sorting applied that would normally - /// limit the set of instances that would be modified. - /// - /// This property is typically used in administrative or management scenarios, where - /// the user may need to perform a global modification of all instances of an entity, - /// regardless of any specific criteria. - @override - bool canModifyAllInstances = false; - - /// The value map associated with this query. - /// - /// The value map is a dictionary that maps property names to their corresponding values. - /// This map is used to specify the values to be inserted or updated when the query is executed. - @override - Map? valueMap; - - /// The predicate of the query, which determines the conditions that must be met for a record to be included in the results. - /// - /// The predicate is a boolean expression that is evaluated for each record in the database. Only records for which the predicate - /// evaluates to `true` will be included in the query results. - @override - QueryPredicate? predicate; - - /// The sort predicate of the query, which determines the order in which the results of the query are returned. - /// - /// The sort predicate is a list of `QuerySortDescriptor` objects, each of which specifies a property to sort by and the - /// direction of the sort (ascending or descending). The results of the query will be sorted according to the order - /// of the sort descriptors in the predicate. - @override - QuerySortPredicate? sortPredicate; - - /// The page descriptor for this query, which determines the ordering and - /// bounding values for the results. - /// - /// The page descriptor is used to paginate the results of the query, allowing - /// the client to retrieve the results in smaller chunks rather than all at - /// once. It specifies the property to sort the results by, the sort order, - /// and an optional bounding value to limit the results to a specific range. - QueryPage? pageDescriptor; - - /// The list of sort descriptors for this query. - /// - /// The sort descriptors specify the properties to sort the query results by - /// and the sort order (ascending or descending) for each property. - final List sortDescriptors = []; - - /// A dictionary that maps ManagedRelationshipDescription objects to Query objects. - /// - /// This dictionary is used to store the subqueries that are created when the [join] method is called on the QueryMixin. - /// Each key in the dictionary represents a relationship in the database, and the corresponding value is the subquery - /// that was created to fetch the data for that relationship. - final Map subQueries = {}; - - /// The parent query of this query, if any. - /// - /// This property is used to keep track of the parent query when this query is a - /// subquery created by the [join] method. It is used to ensure that the subquery - /// does not create a cyclic join. - QueryMixin? _parentQuery; - - /// A list of `QueryExpression` objects that represent the expressions used in the query. - /// - /// The `QueryExpression` objects define the conditions that must be met for a record to be included in the query results. - /// Each expression represents a single condition, and the list of expressions is combined using the logical `AND` operator - /// to form the final predicate for the query. - List> expressions = []; - - /// The value object associated with this query. - /// - /// This property represents the entity instance that will be used as the - /// values for the query. It is used to set the values that will be inserted - /// or updated when the query is executed. - InstanceType? _valueObject; - - /// The list of properties to fetch for this query. - /// - /// This property is initialized to the entity's default properties if it has not - /// been explicitly set. The properties are represented as `KeyPath` objects, which - /// encapsulate the path to the property within the entity. - List? _propertiesToFetch; - - /// The list of properties to fetch for this query. - /// - /// This property is initialized to the entity's default properties if it has not - /// been explicitly set. The properties are represented as `KeyPath` objects, which - /// encapsulate the path to the property within the entity. - List get propertiesToFetch => - _propertiesToFetch ?? - entity.defaultProperties! - .map((k) => KeyPath(entity.properties[k])) - .toList(); - - /// The value object associated with this query. - /// - /// This property represents the entity instance that will be used as the - /// values for the query. It is used to set the values that will be inserted - /// or updated when the query is executed. - /// - /// If the `_valueObject` is `null`, it is initialized to a new instance of the - /// entity, and its `backing` property is set to a new `ManagedBuilderBacking` - /// object that is created from the entity and the current `backing` of the - /// `_valueObject`. - /// - /// The initialized `_valueObject` is then returned. - @override - InstanceType get values { - if (_valueObject == null) { - _valueObject = entity.instanceOf() as InstanceType?; - _valueObject!.backing = ManagedBuilderBacking.from( - _valueObject!.entity, - _valueObject!.backing, - ); - } - return _valueObject!; - } - - /// Sets the value object associated with this query. - /// - /// If the [obj] parameter is `null`, the `_valueObject` property is set to `null`. - /// Otherwise, a new instance of the entity is created and its `backing` property - /// is set to a new `ManagedBuilderBacking` object that is created from the entity - /// and the `backing` of the provided `obj`. - /// - /// The initialized `_valueObject` is then assigned to the `_valueObject` property. - @override - set values(InstanceType? obj) { - if (obj == null) { - _valueObject = null; - return; - } - - _valueObject = entity.instanceOf( - backing: ManagedBuilderBacking.from(entity, obj.backing), - ); - } - - /// Adds a where clause to the query, which filters the results based on a specified property. - /// - /// The `propertyIdentifier` parameter is a function that takes an instance of the `InstanceType` entity - /// and returns a value of type `T` that represents the property to filter on. - /// - /// If the `propertyIdentifier` function references more than one property, an `ArgumentError` will be - /// thrown. - /// - /// The returned `QueryExpression` object represents the expression that will be used to filter the results - /// of the query. You can call methods on this object to specify the conditions for the filter. - @override - QueryExpression where( - T Function(InstanceType x) propertyIdentifier, - ) { - final properties = entity.identifyProperties(propertyIdentifier); - if (properties.length != 1) { - throw ArgumentError( - "Invalid property selector. Must reference a single property only.", - ); - } - - final expr = QueryExpression(properties.first); - expressions.add(expr); - return expr; - } - - /// Joins a related object or set of objects to the current query. - /// - /// This method is used to fetch related objects or sets of objects as part of the - /// current query. The related objects or sets are specified using a function that - /// takes an instance of the current entity and returns either a single related - /// object or a set of related objects. - /// - /// The [object] parameter is a function that takes an instance of the current entity - /// and returns a related object of type `T`. The [set] parameter is a function that - /// takes an instance of the current entity and returns a set of related objects of - /// type `T`. - /// - /// The return value of this method is a new `Query` object that represents the - /// subquery for the related objects or set of objects. - /// - /// Throws a `StateError` if the same property is joined more than once, or if the - /// join would create a cyclic relationship. - @override - Query join({ - T? Function(InstanceType x)? object, - ManagedSet? Function(InstanceType x)? set, - }) { - final relationship = object ?? set!; - final desc = entity.identifyRelationship(relationship); - - return _createSubquery(desc); - } - - /// Sets the page descriptor for the query, which determines the ordering and - /// bounding values for the results. - /// - /// The page descriptor is used to paginate the results of the query, allowing - /// the client to retrieve the results in smaller chunks rather than all at - /// once. It specifies the property to sort the results by, the sort order, - /// and an optional bounding value to limit the results to a specific range. - /// - /// The [propertyIdentifier] parameter is a function that takes an instance of - /// the `InstanceType` entity and returns a value of type `T` that represents - /// the property to sort the results by. - /// - /// The [order] parameter specifies the sort order, which can be either - /// `QuerySortOrder.ascending` or `QuerySortOrder.descending`. - /// - /// The [boundingValue] parameter is an optional value that can be used to - /// limit the results to a specific range. Only results where the value of the - /// specified property is greater than or equal to the bounding value will be - /// returned. - @override - void pageBy( - T Function(InstanceType x) propertyIdentifier, - QuerySortOrder order, { - T? boundingValue, - }) { - final attribute = entity.identifyAttribute(propertyIdentifier); - pageDescriptor = - QueryPage(order, attribute.name, boundingValue: boundingValue); - } - - /// Adds a sort descriptor to the query, which determines the order in which the results are returned. - /// - /// The [propertyIdentifier] parameter is a function that takes an instance of the `InstanceType` entity - /// and returns a value of type `T` that represents the property to sort the results by. - /// - /// The [order] parameter specifies the sort order, which can be either `QuerySortOrder.ascending` or - /// `QuerySortOrder.descending`. - /// - /// This method adds a `QuerySortDescriptor` to the `sortDescriptors` list of the query. The descriptor - /// specifies the name of the property to sort by and the sort order to use. - @override - void sortBy( - T Function(InstanceType x) propertyIdentifier, - QuerySortOrder order, - ) { - final attribute = entity.identifyAttribute(propertyIdentifier); - - sortDescriptors.add(QuerySortDescriptor(attribute.name, order)); - } - - /// Sets the properties to be fetched by the query. - /// - /// This method allows you to specify the properties of the entity that should be - /// fetched by the query. The `propertyIdentifiers` parameter is a function that - /// takes an instance of the `InstanceType` entity and returns a list of properties - /// to be fetched. - /// - /// Note that you cannot select has-many or has-one relationship properties using - /// this method. Instead, you should use the `join` method to fetch related objects. - /// - /// If you attempt to select a has-many or has-one relationship property, an - /// `ArgumentError` will be thrown. - /// - /// The specified properties are represented as `KeyPath` objects, which encapsulate - /// the path to the property within the entity. - @override - void returningProperties( - List Function(InstanceType x) propertyIdentifiers, - ) { - final properties = entity.identifyProperties(propertyIdentifiers); - - if (properties.any( - (kp) => kp.path.any( - (p) => - p is ManagedRelationshipDescription && - p.relationshipType != ManagedRelationshipType.belongsTo, - ), - )) { - throw ArgumentError( - "Invalid property selector. Cannot select has-many or has-one relationship properties. Use join instead.", - ); - } - - _propertiesToFetch = entity.identifyProperties(propertyIdentifiers); - } - - /// Validates the input values for the query. - /// - /// This method is used to validate the values associated with the query before - /// the query is executed. It checks the validity of the values based on the - /// specified `Validating` operation (`insert` or `update`). - /// - /// If the `valueMap` is `null`, the method will call the appropriate method - /// (`willInsert` or `willUpdate`) on the `values` object to prepare it for - /// the specified operation. It then calls the `validate` method on the `values` - /// object, passing the specified `Validating` operation as the `forEvent` - /// parameter. - /// - /// If the validation context returned by the `validate` method is not valid - /// (i.e., `ctx.isValid` is `false`), the method will throw a `ValidationException` - /// with the validation errors. - /// - /// Parameters: - /// - `op`: The `Validating` operation to perform (either `Validating.insert` - /// or `Validating.update`). - void validateInput(Validating op) { - if (valueMap == null) { - if (op == Validating.insert) { - values.willInsert(); - } else if (op == Validating.update) { - values.willUpdate(); - } - - final ctx = values.validate(forEvent: op); - if (!ctx.isValid) { - throw ValidationException(ctx.errors); - } - } - } - - /// Creates a subquery for the specified relationship. - /// - /// This method is used to create a subquery for a related object or set of objects - /// that are part of the current query. The subquery is created using the specified - /// [fromRelationship], which is a `ManagedRelationshipDescription` object that - /// describes the relationship between the current entity and the related entity. - /// - /// If the same property is joined more than once, a `StateError` will be thrown. - /// If the join would create a cyclic relationship, a `StateError` will also be - /// thrown, with a message that suggests joining on a different property. - /// - /// The returned `Query` object represents the subquery for the related objects - /// or set of objects. This subquery can be further customized using the methods - /// provided by the `Query` interface. - /// - /// Parameters: - /// - `fromRelationship`: The `ManagedRelationshipDescription` object that - /// describes the relationship between the current entity and the related entity. - /// - /// Returns: - /// A `Query` object that represents the subquery for the related objects or - /// set of objects. - Query _createSubquery( - ManagedRelationshipDescription fromRelationship, - ) { - if (subQueries.containsKey(fromRelationship)) { - throw StateError( - "Invalid query. Cannot join same property more than once.", - ); - } - - // Ensure we don't cyclically join - var parent = _parentQuery; - while (parent != null) { - if (parent.subQueries.containsKey(fromRelationship.inverse)) { - final validJoins = fromRelationship.entity.relationships.values - .where((r) => !identical(r, fromRelationship)) - .map((r) => "'${r!.name}'") - .join(", "); - - throw StateError( - "Invalid query construction. This query joins '${fromRelationship.entity.tableName}' " - "with '${fromRelationship.inverse!.entity.tableName}' on property '${fromRelationship.name}'. " - "However, '${fromRelationship.inverse!.entity.tableName}' " - "has also joined '${fromRelationship.entity.tableName}' on this property's inverse " - "'${fromRelationship.inverse!.name}' earlier in the 'Query'. " - "Perhaps you meant to join on another property, such as: $validJoins?"); - } - - parent = parent._parentQuery; - } - - final subquery = Query(context); - (subquery as QueryMixin)._parentQuery = this; - subQueries[fromRelationship] = subquery; - - return subquery; - } -} diff --git a/packages/database/lib/src/query/page.dart b/packages/database/lib/src/query/page.dart deleted file mode 100644 index f55479c..0000000 --- a/packages/database/lib/src/query/page.dart +++ /dev/null @@ -1,49 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/query/query.dart'; - -/// A description of a page of results to be applied to a [Query]. -/// -/// [QueryPage]s are a convenient way of accomplishing paging through a large -/// set of values. A page has the property to page on, the order in which the table is being -/// paged and a value that indicates where in the ordered list of results the paging should start from. -/// -/// Paging conceptually works by putting all of the rows in a table into an order. This order is determined by -/// applying [order] to the values of [propertyName]. Once this order is defined, the position in that ordered list -/// is found by going to the row (or rows) where [boundingValue] is eclipsed. That is, the point where row N -/// has a value for [propertyName] that is less than or equal to [boundingValue] and row N + 1 has a value that is greater than -/// [boundingValue]. The rows returned will start at row N + 1, ignoring rows 0 - N. -/// -/// A query page should be used in conjunction with [Query.fetchLimit]. -class QueryPage { - QueryPage(this.order, this.propertyName, {this.boundingValue}); - - /// The order in which rows should be sorted before the page of values is searched for. - /// - /// The rows of a database table will be sorted according to this order on the column backing [propertyName] prior - /// to this page being fetched. - QuerySortOrder order; - - /// The property of the model object to page on. - /// - /// This property must have an inherent order, such as an [int] or [DateTime]. The database must be able to compare the values of this property using comparison operators like '<' and '>'. - String propertyName; - - /// The point within an ordered set of result values in which rows will begin being fetched from. - /// - /// After the table has been ordered by its [propertyName] and [order], the point in that ordered table - /// is found where a row goes from being less than or equal to this value to greater than or equal to this value. - /// Page results start at the row where this comparison changes. - /// - /// Rows with a value equal to this value are not included in the data set. This value may be null. When this value is null, - /// the [boundingValue] is set to be the just outside the first or last element of the ordered database table, depending on the direction. - /// This allows for query pages that fetch the first or last page of elements when the starting/ending value is not known. - dynamic boundingValue; -} diff --git a/packages/database/lib/src/query/predicate.dart b/packages/database/lib/src/query/predicate.dart deleted file mode 100644 index e2ed0b0..0000000 --- a/packages/database/lib/src/query/predicate.dart +++ /dev/null @@ -1,459 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/persistent_store/persistent_store.dart'; -import 'package:protevus_database/src/query/query.dart'; - -/// A predicate contains instructions for filtering rows when performing a [Query]. -/// -/// Predicates currently are the WHERE clause in a SQL statement and are used verbatim -/// by the [PersistentStore]. In general, you should use [Query.where] instead of using this class directly, as [Query.where] will -/// use the underlying [PersistentStore] to generate a [QueryPredicate] for you. -/// -/// A predicate has a format and parameters. The format is the [String] that comes after WHERE in a SQL query. The format may -/// have parameterized values, for which the corresponding value is in the [parameters] map. A parameter is prefixed with '@' in the format string. Currently, -/// the format string's parameter syntax is defined by the [PersistentStore] it is used on. An example of that format: -/// -/// var predicate = new QueryPredicate("x = @xValue", {"xValue" : 5}); -class QueryPredicate { - /// Default constructor for [QueryPredicate]. - /// - /// The [format] and [parameters] of this predicate. [parameters] may be null. - QueryPredicate(this.format, [this.parameters = const {}]); - - /// Creates an empty [QueryPredicate] instance. - /// - /// The format string is the empty string and parameters is the empty map. - QueryPredicate.empty() - : format = "", - parameters = {}; - - /// Combines [predicates] with 'AND' keyword. - /// - /// This factory method takes an [Iterable] of [QueryPredicate] instances and combines them - /// using the 'AND' keyword. The resulting [QueryPredicate] will have a [format] string that - /// is the concatenation of each individual [QueryPredicate]'s [format] string, separated by - /// the 'AND' keyword. The [parameters] map will be a combination of all the individual - /// [QueryPredicate]'s [parameters] maps. - /// - /// If there are duplicate parameter names in [predicates], they will be disambiguated by suffixing - /// the parameter name in both [format] and [parameters] with a unique integer. - /// - /// If [predicates] is null or empty, an empty predicate is returned. If [predicates] contains only - /// one predicate, that predicate is returned. - factory QueryPredicate.and(Iterable predicates) { - /// Filters the provided [predicates] to only include those with a non-empty [QueryPredicate.format]. - /// - /// This method creates a new list containing only the [QueryPredicate] instances from the provided [Iterable] - /// that have a non-empty [QueryPredicate.format] string. - /// - /// @param predicates The [Iterable] of [QueryPredicate] instances to filter. - /// @return A new [List] containing the [QueryPredicate] instances from [predicates] that have a non-empty [QueryPredicate.format]. - final predicateList = predicates.where((p) => p.format.isNotEmpty).toList(); - - /// If the provided [predicateList] is empty, this method returns an empty [QueryPredicate]. - /// - /// If the [predicateList] contains only a single predicate, this method returns that single predicate. - if (predicateList.isEmpty) { - return QueryPredicate.empty(); - } - - if (predicateList.length == 1) { - return predicateList.first; - } - - /// If there are duplicate parameter names in [predicates], this variable is used to - /// disambiguate them by suffixing the parameter name in both [format] and [parameters] - /// with a unique integer. - int dupeCounter = 0; - - /// Stores the format strings for each predicate in the `predicateList`. - /// - /// This list is used to build the final `format` string for the combined `QueryPredicate`. - final allFormatStrings = []; - - /// A map that stores the values to replace in the [format] string of a [QueryPredicate] at execution time. - /// - /// The keys of this map will be searched for in the [format] string of the [QueryPredicate] and replaced with - /// their corresponding values. This allows the [QueryPredicate] to be parameterized, rather than having - /// dynamic values directly embedded in the [format] string. - final valueMap = {}; - - /// Combines the provided [QueryPredicate] instances using the 'AND' keyword. - /// - /// This method takes an [Iterable] of [QueryPredicate] instances and combines them - /// using the 'AND' keyword. The resulting [QueryPredicate] will have a [format] string that - /// is the concatenation of each individual [QueryPredicate]'s [format] string, separated by - /// the 'AND' keyword. The [parameters] map will be a combination of all the individual - /// [QueryPredicate]'s [parameters] maps. - /// - /// If there are duplicate parameter names in [predicates], they will be disambiguated by suffixing - /// the parameter name in both [format] and [parameters] with a unique integer. - /// - /// If [predicates] is null or empty, an empty predicate is returned. If [predicates] contains only - /// one predicate, that predicate is returned. - /// - /// The code performs the following steps: - /// 1. Filters the provided [predicates] to only include those with a non-empty [QueryPredicate.format]. - /// 2. If the filtered list is empty, returns an empty [QueryPredicate]. - /// 3. If the filtered list contains only one predicate, returns that predicate. - /// 4. Initializes a `dupeCounter` variable to keep track of duplicate parameter names. - /// 5. Iterates through the filtered list of [QueryPredicate] instances: - /// - If there are any duplicate parameter names, it replaces them in the `format` string and - /// the `parameters` map with a unique identifier. - /// - Adds the modified `format` string to the `allFormatStrings` list. - /// - Adds the `parameters` map (with any modifications) to the `valueMap`. - /// 6. Constructs the final `predicateFormat` string by joining the `allFormatStrings` with the 'AND' keyword. - /// 7. Returns a new [QueryPredicate] instance with the `predicateFormat` and the `valueMap`. - for (final predicate in predicateList) { - final duplicateKeys = predicate.parameters.keys - .where((k) => valueMap.keys.contains(k)) - .toList(); - - if (duplicateKeys.isNotEmpty) { - var fmt = predicate.format; - final Map dupeMap = {}; - for (final key in duplicateKeys) { - final replacementKey = "$key$dupeCounter"; - fmt = fmt.replaceAll("@$key", "@$replacementKey"); - dupeMap[key] = replacementKey; - dupeCounter++; - } - - allFormatStrings.add(fmt); - predicate.parameters.forEach((key, value) { - valueMap[dupeMap[key] ?? key] = value; - }); - } else { - allFormatStrings.add(predicate.format); - valueMap.addAll(predicate.parameters); - } - } - - final predicateFormat = "(${allFormatStrings.join(" AND ")})"; - return QueryPredicate(predicateFormat, valueMap); - } - - /// The string format of this predicate. - /// - /// This is the predicate text. Do not write dynamic values directly to the format string, instead, prefix an identifier with @ - /// and add that identifier to the [parameters] map. - String format; - - /// A map of values to replace in the format string at execution time. - /// - /// This map contains the parameter values that will be used to replace placeholders (prefixed with '@') in the [format] string when the [QueryPredicate] is executed. The keys of this map correspond to the parameter names in the [format] string, and the values are the actual values to be substituted. - /// - /// For example, if the [format] string is `"x = @xValue AND y > @yValue"`, the [parameters] map might look like `{"xValue": 5, "yValue": 10}`. When the [QueryPredicate] is executed, the placeholders `@xValue` and `@yValue` in the [format] string will be replaced with the corresponding values from the [parameters] map. - /// - /// Input values should not be directly embedded in the [format] string, but instead provided in this [parameters] map. This allows the [QueryPredicate] to be parameterized, rather than having dynamic values directly included in the [format] string. - Map parameters; -} - -/// The operator used in a comparison-based predicate expression. -/// -/// The available operators are: -/// -/// - `lessThan`: Less than -/// - `greaterThan`: Greater than -/// - `notEqual`: Not equal to -/// - `lessThanEqualTo`: Less than or equal to -/// - `greaterThanEqualTo`: Greater than or equal to -/// - `equalTo`: Equal to -enum PredicateOperator { - lessThan, - greaterThan, - notEqual, - lessThanEqualTo, - greaterThanEqualTo, - equalTo -} - -/// A comparison-based predicate expression that represents a comparison between a value and a predicate operator. -/// -/// This class encapsulates a comparison between a `value` and a `PredicateOperator`. It provides a way to represent -/// comparison-based predicates in a query, such as "x < 5" or "y >= 10". -/// -/// The `value` property represents the value being compared, which can be of any type. -/// The `operator` property represents the comparison operator, which is defined by the `PredicateOperator` enum. -/// -/// The `inverse` getter returns a new `ComparisonExpression` with the opposite `PredicateOperator`. This allows you -/// to easily negate a comparison expression, such as changing "x < 5" to "x >= 5". -/// -/// The `inverseOperator` getter returns the opposite `PredicateOperator` for the current `operator`. This is used -/// to implement the `inverse` getter. -class ComparisonExpression implements PredicateExpression { - /// Constructs a new instance of [ComparisonExpression]. - /// - /// The [value] parameter represents the value being compared, which can be of any type. - /// The [operator] parameter represents the comparison operator, which is defined by the [PredicateOperator] enum. - const ComparisonExpression(this.value, this.operator); - - /// The value being compared in the comparison-based predicate expression. - /// - /// This property represents the value that is being compared to the predicate operator in the [ComparisonExpression]. - /// The value can be of any type. - final dynamic value; - - /// The comparison operator used in the comparison-based predicate expression. - /// - /// This property represents the comparison operator used in the [ComparisonExpression]. The operator is defined by - /// the [PredicateOperator] enum, which includes options such as "less than", "greater than", "equal to", and others. - final PredicateOperator operator; - - /// Returns a new [ComparisonExpression] with the opposite [PredicateOperator] to the current one. - /// - /// This getter creates a new [ComparisonExpression] instance with the same [value] as the current instance, - /// but with the [PredicateOperator] reversed. For example, if the current [operator] is [PredicateOperator.lessThan], - /// the returned [ComparisonExpression] will have an [operator] of [PredicateOperator.greaterThanEqualTo]. - /// - /// This allows you to easily negate a comparison expression, such as changing "x < 5" to "x >= 5". - @override - PredicateExpression get inverse { - return ComparisonExpression(value, inverseOperator); - } - - /// Returns the opposite [PredicateOperator] for the current [operator]. - /// - /// This getter is used to implement the `inverse` getter of the [ComparisonExpression] class. - /// It returns the opposite operator for the current [operator]. For example, if the current - /// [operator] is [PredicateOperator.lessThan], this getter will return - /// [PredicateOperator.greaterThanEqualTo]. - PredicateOperator get inverseOperator { - switch (operator) { - case PredicateOperator.lessThan: - return PredicateOperator.greaterThanEqualTo; - case PredicateOperator.greaterThan: - return PredicateOperator.lessThanEqualTo; - case PredicateOperator.notEqual: - return PredicateOperator.equalTo; - case PredicateOperator.lessThanEqualTo: - return PredicateOperator.greaterThan; - case PredicateOperator.greaterThanEqualTo: - return PredicateOperator.lessThan; - case PredicateOperator.equalTo: - return PredicateOperator.notEqual; - } - } -} - -/// The operator used in a string-based predicate expression. -/// -/// The available operators are: -/// -/// - `beginsWith`: The string must begin with the specified value. -/// - `contains`: The string must contain the specified value. -/// - `endsWith`: The string must end with the specified value. -/// - `equals`: The string must be exactly equal to the specified value. -enum PredicateStringOperator { beginsWith, contains, endsWith, equals } - -/// A predicate contains instructions for filtering rows when performing a [Query]. -/// -/// Predicates currently are the WHERE clause in a SQL statement and are used verbatim -/// by the [PersistentStore]. In general, you should use [Query.where] instead of using this class directly, as [Query.where] will -/// use the underlying [PersistentStore] to generate a [QueryPredicate] for you. -/// -/// A predicate has a format and parameters. The format is the [String] that comes after WHERE in a SQL query. The format may -/// have parameterized values, for which the corresponding value is in the [parameters] map. A parameter is prefixed with '@' in the format string. Currently, -/// the format string's parameter syntax is defined by the [PersistentStore] it is used on. An example of that format: -/// -/// var predicate = new QueryPredicate("x = @xValue", {"xValue" : 5}); -abstract class PredicateExpression { - /// Returns a new instance of the [PredicateExpression] with the opposite condition. - /// - /// This getter creates and returns a new instance of the [PredicateExpression] with the opposite condition to the current one. - /// For example, if the current expression is "x < 5", the returned expression would be "x >= 5". - PredicateExpression get inverse; -} - -/// A predicate expression that represents a range comparison. -/// -/// This class encapsulates a range comparison between a `lhs` (left-hand side) value and an `rhs` (right-hand side) value. -/// It provides a way to represent range-based predicates in a query, such as "x between 5 and 10" or "y not between 20 and 30". -/// -/// The `lhs` and `rhs` properties represent the left-hand side and right-hand side values of the range, respectively. -/// The `within` property determines whether the comparison is a "within" or "not within" range. -/// -/// The `inverse` getter returns a new `RangeExpression` with the opposite `within` value. This allows you -/// to easily negate a range expression, such as changing "x between 5 and 10" to "x not between 5 and 10". -class RangeExpression implements PredicateExpression { - /// Constructs a new instance of [RangeExpression]. - /// - /// The [lhs] parameter represents the left-hand side value of the range comparison. - /// The [rhs] parameter represents the right-hand side value of the range comparison. - /// The [within] parameter determines whether the comparison is a "within" or "not within" range. - /// If [within] is `true` (the default), the range expression will match values that are within the range. - /// If [within] is `false`, the range expression will match values that are not within the range. - const RangeExpression(this.lhs, this.rhs, {this.within = true}); - - /// Determines whether the range comparison is a "within" or "not within" range. - /// - /// If `true` (the default), the range expression will match values that are within the range. - /// If `false`, the range expression will match values that are not within the range. - final bool within; - - /// The left-hand side value of the range comparison. - /// - /// This property represents the left-hand side value of the range comparison in the [RangeExpression]. The type of this value - /// can be anything, as it is represented by the generic `dynamic` type. - final dynamic lhs; - - /// The right-hand side value of the range comparison. - /// - /// This property represents the right-hand side value of the range comparison in the [RangeExpression]. The type of this value - /// can be anything, as it is represented by the generic `dynamic` type. - final dynamic rhs; - - /// Returns a new instance of the [RangeExpression] with the opposite `within` condition. - /// - /// This getter creates and returns a new instance of the [RangeExpression] with the opposite `within` condition to the current one. - /// For example, if the current `within` value is `true`, the returned expression would have `within` set to `false`. - /// This allows you to easily negate a range expression, such as changing "x between 5 and 10" to "x not between 5 and 10". - @override - PredicateExpression get inverse { - return RangeExpression(lhs, rhs, within: !within); - } -} - -/// A predicate expression that checks if a value is null or not null. -/// -/// This class encapsulates a null check predicate expression, which can be used to -/// filter data based on whether a value is null or not null. -/// -/// The [shouldBeNull] parameter determines whether the expression checks for a null -/// value (if true) or a non-null value (if false). -/// -/// The [inverse] getter returns a new [NullCheckExpression] with the opposite -/// [shouldBeNull] value. This allows you to easily negate a null check expression, -/// such as changing "x is null" to "x is not null". -class NullCheckExpression implements PredicateExpression { - /// Constructs a new instance of [NullCheckExpression]. - /// - /// The [shouldBeNull] parameter determines whether the expression checks for a null - /// value (if `true`) or a non-null value (if `false`). The default value is `true`, - /// which means the expression will check for a null value. - const NullCheckExpression({this.shouldBeNull = true}); - - /// Determines whether the expression checks for a null - /// value (if `true`) or a non-null value (if `false`). The default value is `true`, - /// which means the expression will check for a null value. - final bool shouldBeNull; - - /// Returns a new instance of the [NullCheckExpression] with the opposite `shouldBeNull` condition. - /// - /// This getter creates and returns a new instance of the [NullCheckExpression] with the opposite `shouldBeNull` condition to the current one. - /// For example, if the current `shouldBeNull` value is `true`, the returned expression would have `shouldBeNull` set to `false`. - /// This allows you to easily negate a null check expression, such as changing "x is null" to "x is not null". - @override - PredicateExpression get inverse { - return NullCheckExpression(shouldBeNull: !shouldBeNull); - } -} - -/// A predicate expression that checks if a value is a member of a set. -/// -/// This class encapsulates a set membership predicate expression, which can be used to -/// filter data based on whether a value is a member of a set of values. -/// -/// The [values] parameter represents the set of values to check for membership. -/// The [within] parameter determines whether the expression checks for membership -/// (if `true`) or non-membership (if `false`). The default value is `true`, which -/// means the expression will check for membership. -/// -/// The [inverse] getter returns a new [SetMembershipExpression] with the opposite -/// [within] value. This allows you to easily negate a set membership expression, -/// such as changing "x is in the set" to "x is not in the set". -class SetMembershipExpression implements PredicateExpression { - /// Constructs a new instance of [SetMembershipExpression]. - /// - /// The [values] parameter represents the set of values to check for membership. - /// The [within] parameter determines whether the expression checks for membership - /// (if `true`) or non-membership (if `false`). The default value is `true`, which - /// means the expression will check for membership. - const SetMembershipExpression(this.values, {this.within = true}); - - /// The set of values to check for membership. - final List values; - - /// Determines whether the expression checks for membership - /// (if `true`) or non-membership (if `false`). The default value is `true`, - /// which means the expression will check for membership. - final bool within; - - /// Returns a new instance of the [SetMembershipExpression] with the opposite `within` condition. - /// - /// This getter creates and returns a new instance of the [SetMembershipExpression] with the opposite `within` condition to the current one. - /// For example, if the current `within` value is `true`, the returned expression would have `within` set to `false`. - /// This allows you to easily negate a set membership expression, such as changing "x is in the set" to "x is not in the set". - @override - PredicateExpression get inverse { - return SetMembershipExpression(values, within: !within); - } -} - -/// A predicate expression that represents a string-based comparison. -/// -/// This class encapsulates a string-based predicate expression, which can be used to -/// filter data based on string comparisons such as "begins with", "contains", "ends with", or "equals". -/// -/// The [value] property represents the string value to compare against. -/// The [operator] property represents the string comparison operator, which is defined by the [PredicateStringOperator] enum. -/// The [caseSensitive] property determines whether the comparison should be case-sensitive or not. -/// The [invertOperator] property determines whether the operator should be inverted (e.g., "not contains" instead of "contains"). -/// The [allowSpecialCharacters] property determines whether special characters should be allowed in the string comparison. -/// -/// The [inverse] getter returns a new [StringExpression] with the opposite [invertOperator] value. This allows you -/// to easily negate a string expression, such as changing "x contains 'abc'" to "x does not contain 'abc'". -class StringExpression implements PredicateExpression { - /// Constructs a new instance of [StringExpression]. - /// - /// The [value] parameter represents the string value to compare against. - /// The [operator] parameter represents the string comparison operator, which is defined by the [PredicateStringOperator] enum. - /// The [caseSensitive] parameter determines whether the comparison should be case-sensitive or not. The default value is `true`. - /// The [invertOperator] parameter determines whether the operator should be inverted (e.g., "not contains" instead of "contains"). The default value is `false`. - /// The [allowSpecialCharacters] parameter determines whether special characters should be allowed in the string comparison. The default value is `true`. - const StringExpression( - this.value, - this.operator, { - this.caseSensitive = true, - this.invertOperator = false, - this.allowSpecialCharacters = true, - }); - - /// The string value to compare against. - final String value; - - /// The string comparison operator, which is defined by the [PredicateStringOperator] enum. - final PredicateStringOperator operator; - - /// Determines whether the operator should be inverted (e.g., "not contains" instead of "contains"). The default value is `false`. - final bool invertOperator; - - /// Determines whether the comparison should be case-sensitive or not. The default value is `true`. - final bool caseSensitive; - - /// Determines whether special characters should be allowed in the string comparison. The default value is `true`. - final bool allowSpecialCharacters; - - /// Returns a new instance of the [StringExpression] with the opposite [invertOperator] condition. - /// - /// This getter creates and returns a new instance of the [StringExpression] with the opposite [invertOperator] condition to the current one. - /// For example, if the current [invertOperator] value is `false`, the returned expression would have [invertOperator] set to `true`. - /// This allows you to easily negate a string expression, such as changing "x contains 'abc'" to "x does not contain 'abc'". - @override - PredicateExpression get inverse { - return StringExpression( - value, - operator, - caseSensitive: caseSensitive, - invertOperator: !invertOperator, - allowSpecialCharacters: allowSpecialCharacters, - ); - } -} diff --git a/packages/database/lib/src/query/query.dart b/packages/database/lib/src/query/query.dart deleted file mode 100644 index a3bdb75..0000000 --- a/packages/database/lib/src/query/query.dart +++ /dev/null @@ -1,434 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; - -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/query/error.dart'; -import 'package:protevus_database/src/query/matcher_expression.dart'; -import 'package:protevus_database/src/query/predicate.dart'; -import 'package:protevus_database/src/query/reduce.dart'; -import 'package:protevus_database/src/query/sort_predicate.dart'; - -export 'error.dart'; -export 'matcher_expression.dart'; -export 'mixin.dart'; -export 'predicate.dart'; -export 'reduce.dart'; -export 'sort_predicate.dart'; - -/// An object for configuring and executing a database query. -/// -/// Queries are used to fetch, update, insert, delete and count [InstanceType]s in a database. -/// [InstanceType] must be a [ManagedObject]. -/// -/// final query = Query() -/// ..where((e) => e.salary).greaterThan(50000); -/// final employees = await query.fetch(); -abstract class Query { - /// Creates a new [Query]. - /// - /// The query will be sent to the database described by [context]. - /// For insert or update queries, you may provide [values] through this constructor - /// or set the field of the same name later. If set in the constructor, - /// [InstanceType] is inferred. - factory Query(ManagedContext context, {InstanceType? values}) { - final entity = context.dataModel!.tryEntityForType(InstanceType); - if (entity == null) { - throw ArgumentError( - "Invalid context. The data model of 'context' does not contain '$InstanceType'.", - ); - } - - return context.persistentStore.newQuery( - context, - entity, - values: values, - ); - } - - /// Creates a new [Query] without a static type. - /// - /// This method is used when generating queries dynamically from runtime values, - /// where the static type argument cannot be defined. Behaves just like the unnamed constructor. - /// - /// If [entity] is not in [context]'s [ManagedContext.dataModel], throws a internal failure [QueryException]. - factory Query.forEntity(ManagedEntity entity, ManagedContext context) { - if (!context.dataModel!.entities.any((e) => identical(entity, e))) { - throw StateError( - "Invalid query construction. Entity for '${entity.tableName}' is from different context than specified for query.", - ); - } - - return context.persistentStore.newQuery(context, entity); - } - - /// Inserts a single [object] into the database managed by [context]. - /// - /// This is equivalent to creating a [Query], assigning [object] to [values], and invoking [insert]. - static Future insertObject( - ManagedContext context, - T object, - ) { - return context.insertObject(object); - } - - /// Inserts each object in [objects] into the database managed by [context] in a single transaction. - /// - /// This currently has no Query instance equivalent - static Future> insertObjects( - ManagedContext context, - List objects, - ) async { - return context.insertObjects(objects); - } - - /// Configures this instance to fetch a relationship property identified by [object] or [set]. - /// - /// By default, objects returned by [Query.fetch] do not have their relationship properties populated. (In other words, - /// [ManagedObject] and [ManagedSet] properties are null.) This method configures this instance to conduct a SQL join, - /// allowing it to fetch relationship properties for the returned instances. - /// - /// Consider a [ManagedObject] subclass with the following relationship properties as an example: - /// - /// class User extends ManagedObject<_User> implements _User {} - /// class _User { - /// Profile profile; - /// ManagedSet notes; - /// } - /// - /// To fetch an object and one of its has-one properties, use the [object] closure: - /// - /// var query = Query() - /// ..join(object: (u) => u.profile); - /// - /// To fetch an object and its has-many properties, use the [set] closure: - /// - /// var query = Query() - /// ..join(set: (u) => u.notes); - /// - /// Both [object] and [set] are passed an empty instance of the type being queried. [object] must return a has-one property (a [ManagedObject] subclass) - /// of the object it is passed. [set] must return a has-many property (a [ManagedSet]) of the object it is passed. - /// - /// Multiple relationship properties can be included by invoking this method multiple times with different properties, e.g.: - /// - /// var query = Query() - /// ..join(object: (u) => u.profile) - /// ..join(set: (u) => u.notes); - /// - /// This method also returns a new instance of [Query], where [InstanceType] is is the type of the relationship property. This can be used - /// to configure which properties are returned for the related objects and to filter a [ManagedSet] relationship property. For example: - /// - /// var query = Query(); - /// var subquery = query.join(set: (u) => u.notes) - /// ..where.dateCreatedAt = whereGreaterThan(someDate); - /// - /// This mechanism only works on [fetch] and [fetchOne] execution methods. You *must not* execute a subquery created by this method. - Query join({ - T? Function(InstanceType x)? object, - ManagedSet? Function(InstanceType x)? set, - }); - - /// Configures this instance to fetch a section of a larger result set. - /// - /// This method provides an effective mechanism for paging a result set by ordering rows - /// by some property, offsetting into that ordered set and returning rows starting from that offset. - /// The [fetchLimit] of this instance must also be configured to limit the size of the page. - /// - /// The property that determines order is identified by [propertyIdentifier]. This closure must - /// return a property of of [InstanceType]. The order is determined by [order]. When fetching - /// the 'first' page of results, no value is passed for [boundingValue]. As later pages are fetched, - /// the value of the paging property for the last returned object in the previous result set is used - /// as [boundingValue]. For example: - /// - /// var recentHireQuery = Query() - /// ..pageBy((e) => e.hireDate, QuerySortOrder.descending); - /// var recentHires = await recentHireQuery.fetch(); - /// - /// var nextRecentHireQuery = Query() - /// ..pageBy((e) => e.hireDate, QuerySortOrder.descending, - /// boundingValue: recentHires.last.hireDate); - /// - /// Note that internally, [pageBy] adds a matcher to [where] and adds a high-priority [sortBy]. - /// Adding multiple [pageBy]s to an instance has undefined behavior. - void pageBy( - T Function(InstanceType x) propertyIdentifier, - QuerySortOrder order, { - T? boundingValue, - }); - - /// Configures this instance to sort its results by some property and order. - /// - /// This method will have the database perform a sort by some property identified by [propertyIdentifier]. - /// [propertyIdentifier] must return a scalar property of [InstanceType] that can be compared. The [order] - /// indicates the order the returned rows will be in. Multiple [sortBy]s may be invoked on an instance; - /// the order in which they are added indicates sort precedence. Example: - /// - /// var query = Query() - /// ..sortBy((e) => e.name, QuerySortOrder.ascending); - void sortBy( - T Function(InstanceType x) propertyIdentifier, - QuerySortOrder order, - ); - - /// The [ManagedEntity] of the [InstanceType]. - ManagedEntity get entity; - - /// The [ManagedContext] this query will be executed on. - ManagedContext get context; - - /// Returns a new object that can execute functions like sum, average, maximum, etc. - /// - /// The methods of this object will execute an aggregate function on the database table. - /// For example, this property can be used to find the average age of all users. - /// - /// var query = Query(); - /// var averageAge = await query.reduce.average((user) => user.age); - /// - /// Any where clauses established by [where] or [predicate] will impact the rows evaluated - /// and therefore the value returned from this object's instance methods. - /// - /// Always returns a new instance of [QueryReduceOperation]. The returned object is permanently - /// associated with this instance. Any changes to this instance (i.e., modifying [where]) will impact the - /// result. - QueryReduceOperation get reduce; - - /// Selects a property from the object being queried to add a filtering expression. - /// - /// You use this property to add filtering expression to a query. The expressions are added to the SQL WHERE clause - /// of the generated query. - /// - /// You provide a closure for [propertyIdentifier] that returns a property of its argument. Its argument is always - /// an empty instance of the object being queried. You invoke methods like [QueryExpression.lessThan] on the - /// object returned from this method to add an expression to this query. - /// - /// final query = Query() - /// ..where((e) => e.name).equalTo("Bob"); - /// - /// You may select properties of relationships using this method. - /// - /// final query = Query() - /// ..where((e) => e.manager.name).equalTo("Sally"); - /// - QueryExpression where( - T Function(InstanceType x) propertyIdentifier, - ); - - /// Confirms that a query has no predicate before executing it. - /// - /// This is a safety measure for update and delete queries to prevent accidentally updating or deleting every row. - /// This flag defaults to false, meaning that if this query is either an update or a delete, but contains no predicate, - /// it will fail. If a query is meant to update or delete every row on a table, you may set this to true to allow this query to proceed. - bool canModifyAllInstances = false; - - /// Number of seconds before a Query times out. - /// - /// A Query will fail and throw a [QueryException] if [timeoutInSeconds] seconds elapse before the query completes. - /// Defaults to 30 seconds. - int timeoutInSeconds = 30; - - /// Limits the number of objects returned from the Query. - /// - /// Defaults to 0. When zero, there is no limit to the number of objects returned from the Query. - /// This value should be set when using [pageBy] to limit the page size. - int fetchLimit = 0; - - /// Offsets the rows returned. - /// - /// The set of rows returned will exclude the first [offset] number of rows selected in the query. Do not - /// set this property when using [pageBy]. - int offset = 0; - - /// A predicate for filtering the result or operation set. - /// - /// A predicate will identify the rows being accessed, see [QueryPredicate] for more details. Prefer to use - /// [where] instead of this property directly. - QueryPredicate? predicate; - - /// A predicate for sorting the result. - /// - /// A predicate will identify the rows being accessed, see [QuerySortPredicate] for more details. Prefer to use - /// [sortBy] instead of this property directly. - QuerySortPredicate? sortPredicate; - - /// Values to be used when inserting or updating an object. - /// - /// This method is an unsafe version of [values]. Prefer to use [values] instead. - /// Keys in this map must be the name of a property of [InstanceType], otherwise an exception - /// is thrown. Values provided in this map are not run through any [Validate] annotations - /// declared by the [InstanceType]. - /// - /// Do not set this property and [values] on the same query. If both this property and [values] are set, - /// the behavior is undefined. - Map? valueMap; - - /// Values to be sent to database during an [update] or [insert] query. - /// - /// You set values for the properties of this object to insert a row or update one or more rows. - /// This property is the same type as the type being inserted or updated. [values] is empty (but not null) - /// when a [Query] is first created, therefore, you do not have to assign an instance to it and may set - /// values for its properties immediately: - /// - /// var q = Query() - /// ..values.name = 'Joe' - /// ..values.job = 'programmer'; - /// await q.insert(); - /// - /// You may only set values for properties that are backed by a column. This includes most properties, except - /// all [ManagedSet] properties and [ManagedObject] properties that do not have a [Relate] annotation. If you attempt - /// to set a property that isn't allowed on [values], an error is thrown. - /// - /// If a property of [values] is a [ManagedObject] with a [Relate] annotation, - /// you may provide a value for its primary key property. This value will be - /// stored in the foreign key column that backs the property. You may set - /// properties of this type immediately, without having to create an instance - /// of the related type: - /// - /// // Assumes that Employee is declared with the following property: - /// // @Relate(#employees) - /// // Manager manager; - /// - /// final q = Query() - /// ..values.name = "Sally" - /// ..values.manager.id = 10; - /// await q.insert(); - /// - /// WARNING: You may replace this property with a new instance of [InstanceType]. - /// When doing so, a copy of the object is created and assigned to this property. - /// - /// final o = SomeObject() - /// ..id = 1; - /// final q = Query() - /// ..values = o; - /// - /// o.id = 2; - /// assert(q.values.id == 1); // true - /// - late InstanceType values; - - /// Configures the list of properties to be fetched for [InstanceType]. - /// - /// This method configures which properties will be populated for [InstanceType] when returned - /// from this query. This impacts all query execution methods that return [InstanceType] or [List] of [InstanceType]. - /// - /// The following example would configure this instance to fetch the 'id' and 'name' for each returned 'Employee': - /// - /// var q = Query() - /// ..returningProperties((employee) => [employee.id, employee.name]); - /// - /// Note that if the primary key property of an object is omitted from this list, it will be added when this - /// instance executes. If the primary key value should not be sent back as part of an API response, - /// it can be stripped from the returned object(s) with [ManagedObject.removePropertyFromBackingMap]. - /// - /// If this method is not invoked, the properties defined by [ManagedEntity.defaultProperties] are returned. - void returningProperties( - List Function(InstanceType x) propertyIdentifiers, - ); - - /// Inserts an [InstanceType] into the underlying database. - /// - /// The [Query] must have its [values] or [valueMap] property set. This operation will - /// insert a row with the data supplied in those fields to the database in [context]. The return value is - /// a [Future] that completes with the newly inserted [InstanceType]. Example: - /// - /// var q = Query() - /// ..values.name = "Joe"; - /// var newUser = await q.insert(); - /// - /// If the [InstanceType] has properties with [Validate] metadata, those validations - /// will be executed prior to sending the query to the database. - /// - /// The method guaranties that exactly one row will be inserted and returned - /// or an exception will be thrown and the row will not be written to the database. - Future insert(); - - /// Inserts an [InstanceType]s into the underlying database. - /// - /// The [Query] must not have its [values] nor [valueMap] property set. This - /// operation will insert a row for each item in [objects] to the database in - /// [context]. The return value is a [Future] that completes with the newly - /// inserted [InstanceType]s. Example: - /// - /// final users = [ - /// User()..email = 'user1@example.dev', - /// User()..email = 'user2@example.dev', - /// ]; - /// final q = Query(); - /// var newUsers = await q.insertMany(users); - /// - /// If the [InstanceType] has properties with [Validate] metadata, those - /// validations will be executed prior to sending the query to the database. - /// - /// The method guaranties that either all rows will be inserted and returned - /// or exception will be thrown and non of the rows will be written to the database. - Future> insertMany(List objects); - - /// Updates [InstanceType]s in the underlying database. - /// - /// The [Query] must have its [values] or [valueMap] property set and should likely have its [predicate] or [where] set as well. This operation will - /// update each row that matches the conditions in [predicate]/[where] with the values from [values] or [valueMap]. If no [where] or [predicate] is set, - /// this method will throw an exception by default, assuming that you don't typically want to update every row in a database table. To specify otherwise, - /// set [canModifyAllInstances] to true. - /// The return value is a [Future] that completes with the any updated [InstanceType]s. Example: - /// - /// var q = Query() - /// ..where.name = "Fred" - /// ..values.name = "Joe"; - /// var usersNamedFredNowNamedJoe = await q.update(); - /// - /// If the [InstanceType] has properties with [Validate] metadata, those validations - /// will be executed prior to sending the query to the database. - Future> update(); - - /// Updates an [InstanceType] in the underlying database. - /// - /// This method works the same as [update], except it may only update one row in the underlying database. If this method - /// ends up modifying multiple rows, an exception is thrown. - /// - /// If the [InstanceType] has properties with [Validate] metadata, those validations - /// will be executed prior to sending the query to the database. - Future updateOne(); - - /// Fetches [InstanceType]s from the database. - /// - /// This operation will return all [InstanceType]s from the database, filtered by [predicate]/[where]. Example: - /// - /// var q = Query(); - /// var allUsers = q.fetch(); - /// - Future> fetch(); - - /// Fetches a single [InstanceType] from the database. - /// - /// This method behaves the same as [fetch], but limits the results to a single object. - Future fetchOne(); - - /// Deletes [InstanceType]s from the underlying database. - /// - /// This method will delete rows identified by [predicate]/[where]. If no [where] or [predicate] is set, - /// this method will throw an exception by default, assuming that you don't typically want to delete every row in a database table. To specify otherwise, - /// set [canModifyAllInstances] to true. - /// - /// This method will return the number of rows deleted. - /// Example: - /// - /// var q = Query() - /// ..where.id = whereEqualTo(1); - /// var deletedCount = await q.delete(); - Future delete(); -} - -/// Order value for [Query.pageBy] and [Query.sortBy]. -enum QuerySortOrder { - /// Ascending order. Example: 1, 2, 3, 4, ... - ascending, - - /// Descending order. Example: 4, 3, 2, 1, ... - descending -} diff --git a/packages/database/lib/src/query/reduce.dart b/packages/database/lib/src/query/reduce.dart deleted file mode 100644 index 44b5750..0000000 --- a/packages/database/lib/src/query/reduce.dart +++ /dev/null @@ -1,71 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_database/src/managed/object.dart'; -import 'package:protevus_database/src/query/query.dart'; - -/// Executes aggregate functions like average, count, sum, etc. -/// -/// See instance methods for available aggregate functions. -/// -/// See [Query.reduce] for more details on usage. -abstract class QueryReduceOperation { - /// Computes the average of some [ManagedObject] property. - /// - /// [selector] identifies the property being averaged, e.g. - /// - /// var query = Query(); - /// var averageAge = await query.reduce.average((user) => user.age); - /// - /// The property must be an attribute and its type must be an [num], i.e. [int] or [double]. - Future average(num? Function(T object) selector); - - /// Counts the number of [ManagedObject] instances in the database. - /// - /// Note: this can be an expensive query. Consult the documentation - /// for the underlying database. - /// - /// Example: - /// - /// var query = Query(); - /// var totalUsers = await query.reduce.count(); - /// - Future count(); - - /// Finds the maximum of some [ManagedObject] property. - /// - /// [selector] identifies the property being evaluated, e.g. - /// - /// var query = Query(); - /// var oldestUser = await query.reduce.maximum((user) => user.age); - /// - /// The property must be an attribute and its type must be [String], [int], [double], or [DateTime]. - Future maximum(U? Function(T object) selector); - - /// Finds the minimum of some [ManagedObject] property. - /// - /// [selector] identifies the property being evaluated, e.g. - /// - /// var query = new Query(); - /// var youngestUser = await query.reduce.minimum((user) => user.age); - /// - /// The property must be an attribute and its type must be [String], [int], [double], or [DateTime]. - Future minimum(U? Function(T object) selector); - - /// Finds the sum of some [ManagedObject] property. - /// - /// [selector] identifies the property being evaluated, e.g. - /// - /// var query = new Query(); - /// var yearsLivesByAllUsers = await query.reduce.sum((user) => user.age); - /// - /// The property must be an attribute and its type must be an [num], i.e. [int] or [double]. - Future sum(U? Function(T object) selector); -} diff --git a/packages/database/lib/src/query/sort_descriptor.dart b/packages/database/lib/src/query/sort_descriptor.dart deleted file mode 100644 index 30527c1..0000000 --- a/packages/database/lib/src/query/sort_descriptor.dart +++ /dev/null @@ -1,33 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/query/query.dart'; - -/// The order in which a collection of objects should be sorted when returned from a database. -/// -/// See [Query.sortBy] and [Query.pageBy] for more details. -class QuerySortDescriptor { - /// Creates a new [QuerySortDescriptor] instance with the specified [key] and [order]. - /// - /// The [key] parameter represents the name of the property to sort by, and the [order] - /// parameter specifies the order in which the values should be sorted, as defined by the - /// [QuerySortOrder] class. - QuerySortDescriptor(this.key, this.order); - - /// The name of a property to sort by. - String key; - - /// The order in which values should be sorted. - /// - /// See [QuerySortOrder] for possible values. - /// This property specifies the order in which the values should be sorted, as defined by the - /// [QuerySortOrder] class. Possible values include [QuerySortOrder.ascending] and - /// [QuerySortOrder.descending]. - QuerySortOrder order; -} diff --git a/packages/database/lib/src/query/sort_predicate.dart b/packages/database/lib/src/query/sort_predicate.dart deleted file mode 100644 index 87f36f0..0000000 --- a/packages/database/lib/src/query/sort_predicate.dart +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/query/query.dart'; - -/// Represents a predicate for sorting a collection of objects in a database query. -/// -/// This class encapsulates the information needed to sort a collection of objects -/// retrieved from a database, including the name of the property to sort by and -/// the order in which the values should be sorted. -class QuerySortPredicate { - /// Constructs a new [QuerySortPredicate] instance. - /// - /// The [predicate] parameter specifies the name of the property to sort by. - /// The [order] parameter specifies the order in which the values should be - /// sorted, using one of the values from the [QuerySortOrder] enum. - QuerySortPredicate( - this.predicate, - this.order, - ); - - /// The name of a property to sort by. - String predicate; - - /// The order in which values should be sorted. - /// - /// This property specifies the order in which the values should be sorted, using one of the values from the [QuerySortOrder] enum. - QuerySortOrder order; -} diff --git a/packages/database/lib/src/schema/migration.dart b/packages/database/lib/src/schema/migration.dart deleted file mode 100644 index 6bd549b..0000000 --- a/packages/database/lib/src/schema/migration.dart +++ /dev/null @@ -1,125 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_database/src/persistent_store/persistent_store.dart'; -import 'package:protevus_database/src/schema/schema.dart'; - -/// Thrown when a [Migration] encounters an error. -/// -/// This exception is used to indicate that an error occurred during the execution of a database migration. -/// The exception includes a [message] property that provides more information about the error that occurred. -class MigrationException implements Exception { - /// Creates a new [MigrationException] with the given [message]. - /// - /// The [message] parameter is a string that describes the error that occurred. - MigrationException(this.message); - - /// A message describing the error that occurred. - String message; - - /// Returns a string representation of the [MigrationException] object. - /// - /// The string representation includes the [message] property, which provides - /// a description of the error that occurred during the migration. - @override - String toString() => message; -} - -/// The base class for migration instructions. -/// -/// For each set of changes to a database, a subclass of [Migration] is created. -/// Subclasses will override [upgrade] to make changes to the [Schema] which -/// are translated into database operations to update a database's schema. -abstract class Migration { - /// The current state of the [Schema]. - /// - /// During migration, this value will be modified as [SchemaBuilder] operations - /// are executed. See [SchemaBuilder]. - Schema get currentSchema => database.schema; - - /// The [PersistentStore] that represents the database being migrated. - PersistentStore? get store => database.store; - - // This value is provided by the 'upgrade' tool and is derived from the filename. - int? version; - - /// Receiver for database altering operations. - /// - /// Methods invoked on this instance - such as [SchemaBuilder.createTable] - will be validated - /// and generate the appropriate SQL commands to apply to a database to alter its schema. - late SchemaBuilder database; - - /// Method invoked to upgrade a database to this migration version. - /// - /// Subclasses will override this method and invoke methods on [database] to upgrade - /// the database represented by [store]. - Future upgrade(); - - /// Method invoked to downgrade a database from this migration version. - /// - /// Subclasses will override this method and invoke methods on [database] to downgrade - /// the database represented by [store]. - Future downgrade(); - - /// Method invoked to seed a database's data after this migration version is upgraded to. - /// - /// Subclasses will override this method and invoke query methods on [store] to add data - /// to a database after this migration version is executed. - Future seed(); - - /// Generates the source code for a database schema upgrade migration. - /// - /// This method compares an existing [Schema] with a new [Schema] and generates - /// the source code for a migration class that can be used to upgrade a database - /// from the existing schema to the new schema. - /// - /// The generated migration class will have an `upgrade()` method that contains - /// the necessary schema changes, and empty `downgrade()` and `seed()` methods. - /// - /// Parameters: - /// - `existingSchema`: The current schema of the database. - /// - `newSchema`: The new schema that the database should be upgraded to. - /// - `version`: The version number of the migration. This is used to name the migration class. - /// - `changeList`: An optional list of strings that describe the changes being made in this migration. - /// - /// Returns: - /// The source code for the migration class as a string. - static String sourceForSchemaUpgrade( - Schema existingSchema, - Schema newSchema, - int? version, { - List? changeList, - }) { - final diff = existingSchema.differenceFrom(newSchema); - final source = - SchemaBuilder.fromDifference(null, diff, changeList: changeList) - .commands - .map((line) => "\t\t$line") - .join("\n"); - - return """ -import 'dart:async'; -import 'package:protevus_database/prots_database.dart - -class Migration$version extends Migration { - @override - Future upgrade() async { - $source - } - - @override - Future downgrade() async {} - - @override - Future seed() async {} -} - """; - } -} diff --git a/packages/database/lib/src/schema/schema.dart b/packages/database/lib/src/schema/schema.dart deleted file mode 100644 index d2dd86c..0000000 --- a/packages/database/lib/src/schema/schema.dart +++ /dev/null @@ -1,243 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:collection/collection.dart' show IterableExtension; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/schema/schema_table.dart'; - -export 'migration.dart'; -export 'schema_builder.dart'; -export 'schema_column.dart'; -export 'schema_table.dart'; - -/// A portable representation of a database schema. -/// -/// Instances of this type contain the database-only details of a [ManagedDataModel] and are typically -/// instantiated from [ManagedDataModel]s. The purpose of this type is to have a portable, differentiable representation -/// of an application's data model for use in external tooling. -class Schema { - /// Creates an instance of this type with a specific set of [tables]. - /// - /// Prefer to use [Schema.fromDataModel]. - Schema(List tables) : _tableStorage = tables; - - /// Creates an instance of this type from [dataModel]. - /// - /// This is preferred method of creating an instance of this type. Each [ManagedEntity] - /// in [dataModel] will correspond to a [SchemaTable] in [tables]. - Schema.fromDataModel(ManagedDataModel dataModel) { - _tables = dataModel.entities.map((e) => SchemaTable.fromEntity(e)).toList(); - } - - /// Creates a deep copy of [otherSchema]. - Schema.from(Schema otherSchema) { - _tables = - otherSchema.tables.map((table) => SchemaTable.from(table)).toList(); - } - - /// Creates a instance of this type from [map]. - /// - /// [map] is typically created from [asMap]. - Schema.fromMap(Map map) { - _tables = (map["tables"] as List>) - .map((t) => SchemaTable.fromMap(t)) - .toList(); - } - - /// Creates an empty schema. - Schema.empty() { - _tables = []; - } - - /// The tables in this database. - /// - /// Returns an immutable list of tables in this schema. - List get tables => List.unmodifiable(_tableStorage); - - // Do not set this directly. Use _tables= instead. - late List _tableStorage; - - /// Sets the tables for this schema and updates each table's schema reference. - set _tables(List tables) { - _tableStorage = tables; - for (final t in _tableStorage) { - t.schema = this; - } - } - - /// Gets a table from [tables] by that table's name. - /// - /// See [tableForName] for details. - SchemaTable? operator [](String tableName) => tableForName(tableName); - - /// The differences between two schemas. - /// - /// In the return value, the receiver is the [SchemaDifference.expectedSchema] - /// and [otherSchema] is [SchemaDifference.actualSchema]. - SchemaDifference differenceFrom(Schema otherSchema) { - return SchemaDifference(this, otherSchema); - } - - /// Adds a table to this instance. - /// - /// Sets [table]'s [SchemaTable.schema] to this instance. - void addTable(SchemaTable table) { - if (this[table.name!] != null) { - throw SchemaException( - "Table ${table.name} already exists and cannot be added.", - ); - } - - _tableStorage.add(table); - table.schema = this; - } - - /// Replaces an existing table with a new one. - /// - /// Throws a [SchemaException] if the existing table is not found. - void replaceTable(SchemaTable existingTable, SchemaTable newTable) { - if (!_tableStorage.contains(existingTable)) { - throw SchemaException( - "Table ${existingTable.name} does not exist and cannot be replaced.", - ); - } - - final index = _tableStorage.indexOf(existingTable); - _tableStorage[index] = newTable; - newTable.schema = this; - existingTable.schema = null; - } - - /// Renames a table in the schema. - /// - /// This method is not yet implemented and will throw a [SchemaException]. - void renameTable(SchemaTable table, String newName) { - throw SchemaException("Renaming a table not yet implemented!"); - } - - /// Removes a table from this instance. - /// - /// [table] must be an instance in [tables] or an exception is thrown. - /// Sets [table]'s [SchemaTable.schema] to null. - void removeTable(SchemaTable table) { - if (!tables.contains(table)) { - throw SchemaException("Table ${table.name} does not exist in schema."); - } - table.schema = null; - _tableStorage.remove(table); - } - - /// Returns a [SchemaTable] for [name]. - /// - /// [name] is case-insensitively compared to every [SchemaTable.name] - /// in [tables]. If no table with this name exists, null is returned. - /// - /// Note: tables are typically prefixed with an underscore when using - /// Conduit naming conventions for [ManagedObject]. - SchemaTable? tableForName(String name) { - final lowercaseName = name.toLowerCase(); - - return tables - .firstWhereOrNull((t) => t.name!.toLowerCase() == lowercaseName); - } - - /// Emits this instance as a transportable [Map]. - Map asMap() { - return {"tables": tables.map((t) => t.asMap()).toList()}; - } -} - -/// The difference between two compared [Schema]s. -/// -/// This class is used for comparing schemas for validation and migration. -class SchemaDifference { - /// Creates a new instance that represents the difference between [expectedSchema] and [actualSchema]. - SchemaDifference(this.expectedSchema, this.actualSchema) { - for (final expectedTable in expectedSchema.tables) { - final actualTable = actualSchema[expectedTable.name!]; - if (actualTable == null) { - _differingTables.add(SchemaTableDifference(expectedTable, null)); - } else { - final diff = expectedTable.differenceFrom(actualTable); - if (diff.hasDifferences) { - _differingTables.add(diff); - } - } - } - - _differingTables.addAll( - actualSchema.tables - .where((t) => expectedSchema[t.name!] == null) - .map((unexpectedTable) { - return SchemaTableDifference(null, unexpectedTable); - }), - ); - } - - /// The 'expected' schema. - final Schema expectedSchema; - - /// The 'actual' schema. - final Schema actualSchema; - - /// Whether or not [expectedSchema] and [actualSchema] have differences. - /// - /// If false, both [expectedSchema] and [actualSchema], their tables, and those tables' columns are identical. - bool get hasDifferences => _differingTables.isNotEmpty; - - /// Human-readable messages to describe differences between [expectedSchema] and [actualSchema]. - /// - /// Empty is [hasDifferences] is false. - List get errorMessages => - _differingTables.expand((diff) => diff.errorMessages).toList(); - - /// The differences, if any, between tables in [expectedSchema] and [actualSchema]. - List get tableDifferences => _differingTables; - - /// Returns a list of tables that need to be added to the actual schema. - List get tablesToAdd { - return _differingTables - .where((diff) => diff.expectedTable == null && diff.actualTable != null) - .map((d) => d.actualTable) - .toList(); - } - - /// Returns a list of tables that need to be deleted from the actual schema. - List get tablesToDelete { - return _differingTables - .where((diff) => diff.expectedTable != null && diff.actualTable == null) - .map((diff) => diff.expectedTable) - .toList(); - } - - /// Returns a list of tables that need to be modified in the actual schema. - List get tablesToModify { - return _differingTables - .where((diff) => diff.expectedTable != null && diff.actualTable != null) - .toList(); - } - - /// Internal storage for differing tables. - final List _differingTables = []; -} - -/// Thrown when a [Schema] encounters an error. -class SchemaException implements Exception { - /// Creates a new [SchemaException] with the given [message]. - SchemaException(this.message); - - /// The error message describing the schema exception. - String message; - - /// Returns a string representation of this exception. - /// - /// The returned string includes the phrase "Invalid schema." followed by the [message]. - @override - String toString() => "Invalid schema. $message"; -} diff --git a/packages/database/lib/src/schema/schema_builder.dart b/packages/database/lib/src/schema/schema_builder.dart deleted file mode 100644 index 5ff5ce5..0000000 --- a/packages/database/lib/src/schema/schema_builder.dart +++ /dev/null @@ -1,734 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/persistent_store/persistent_store.dart'; -import 'package:protevus_database/src/schema/schema.dart'; - -/* -Tests for this class are spread out some. The testing concept used starts by understanding that -that each method invoked on the builder (e.g. createTable, addColumn) adds a statement to [commands]. -A statement is either: - -a) A Dart statement that replicate the command to build migration code -b) A SQL command when running a migration - -In effect, the generated Dart statement is the source code for the invoked method. Each method invoked on a -builder is tested so that the generated Dart code is equivalent -to the invocation. These tests are in generate_code_test.dart. - -The code to ensure the generated SQL is accurate is in db/postgresql/schema_generator_sql_mapping_test.dart. - -The logic that goes into testing that the commands generated to build a valid schema in an actual postgresql are in db/postgresql/migration_test.dart. - */ - -/// Generates SQL or Dart code that modifies a database schema. -class SchemaBuilder { - /// Creates a new [SchemaBuilder] instance from an existing [Schema]. - /// - /// If [store] is null, this builder will emit [commands] that are Dart statements that replicate the methods invoked on this object. - /// Otherwise, [commands] are SQL commands (for the database represented by [store]) that are equivalent to the method invoked on this object. - SchemaBuilder(this.store, this.inputSchema, {this.isTemporary = false}) { - schema = Schema.from(inputSchema); - } - - /// Creates a builder starting from the empty schema. - /// - /// If [store] is null, this builder will emit [commands] that are Dart statements that replicate the methods invoked on this object. - /// Otherwise, [commands] are SQL commands (for the database represented by [store]) that are equivalent to the method invoked on this object. - /// - /// The [targetSchema] parameter specifies the desired schema to be built. The [SchemaDifference] between the empty schema and the [targetSchema] - /// will be used to generate the necessary commands to transform the empty schema into the [targetSchema]. - /// - /// The [isTemporary] flag determines whether the generated schema changes should create temporary tables. - /// - /// The optional [changeList] parameter is a list that will be populated with human-readable descriptions of the schema changes as they are generated. - SchemaBuilder.toSchema( - PersistentStore? store, - Schema targetSchema, { - bool isTemporary = false, - List? changeList, - }) : this.fromDifference( - store, - SchemaDifference(Schema.empty(), targetSchema), - isTemporary: isTemporary, - changeList: changeList, - ); - - /// Creates a new [SchemaBuilder] instance from the given [SchemaDifference]. - /// - /// The [SchemaDifference] represents the changes that need to be made to the - /// input schema to arrive at the target schema. This constructor will generate - /// the necessary SQL or Dart code commands to apply those changes. - /// - /// If [store] is not null, the generated commands will be SQL commands for the - /// underlying database. If [store] is null, the generated commands will be - /// Dart expressions that replicate the method calls to build the schema. - /// - /// The [isTemporary] flag determines whether the generated schema changes - /// should create temporary tables. - /// - /// The optional [changeList] parameter is a list that will be populated with - /// human-readable descriptions of the schema changes as they are generated. - SchemaBuilder.fromDifference( - this.store, - SchemaDifference difference, { - this.isTemporary = false, - List? changeList, - }) { - schema = difference.expectedSchema; - _generateSchemaCommands( - difference, - changeList: changeList, - temporary: isTemporary, - ); - } - - /// The starting schema of this builder. - /// - /// This property holds the initial schema that the [SchemaBuilder] instance will use as a starting point. As operations are performed on the - /// builder, the [schema] property will be updated to reflect the resulting schema. - late Schema inputSchema; - - /// The resulting schema of this builder as operations are applied to it. - /// - /// This property holds the final schema that the [SchemaBuilder] instance will generate after applying all the requested operations. - /// As operations are performed on the builder, the [schema] property will be updated to reflect the resulting schema. - late Schema schema; - - /// The persistent store to validate and construct operations. - /// - /// If this value is not-null, [commands] is a list of SQL commands for the underlying database that change the schema in response to - /// methods invoked on this object. If this value is null, [commands] is a list Dart statements that replicate the methods invoked on this object. - PersistentStore? store; - - /// Whether or not this builder should create temporary tables. - /// - /// When this flag is set to `true`, the schema commands generated by this builder will create temporary tables - /// instead of permanent tables. This can be useful for testing or other scenarios where the schema changes are - /// not intended to be persisted. - bool isTemporary; - - /// A list of commands generated by operations performed on this builder. - /// - /// If [store] is non-null, these commands will be SQL commands that upgrade [inputSchema] to [schema] as determined by [store]. - /// If [store] is null, these commands are ;-terminated Dart expressions that replicate the methods to call on this object to upgrade [inputSchema] to [schema]. - List commands = []; - - /// Validates and adds a table to [schema]. - /// - /// This method adds the given [table] to the current [schema] and generates the necessary SQL or Dart code - /// commands to create the table. If [store] is not null, the generated commands will be SQL commands for - /// the underlying database. If [store] is null, the generated commands will be Dart expressions that - /// replicate the method calls to build the schema. - /// - /// The [isTemporary] flag, which is inherited from the [SchemaBuilder] instance, determines whether the - /// generated schema changes should create temporary tables. - void createTable(SchemaTable table) { - schema.addTable(table); - - if (store != null) { - commands.addAll(store!.createTable(table, isTemporary: isTemporary)); - } else { - commands.add(_getNewTableExpression(table)); - } - } - - /// Validates and renames a table in [schema]. - /// - /// This method renames the table with the [currentTableName] to the [newName]. - /// If the [currentTableName] does not exist in the [schema], a [SchemaException] - /// will be thrown. - /// - /// If [store] is not null, the generated SQL commands to rename the table - /// will be added to the [commands] list. If [store] is null, a Dart expression - /// that replicates the table renaming will be added to the [commands] list. - void renameTable(String currentTableName, String newName) { - final table = schema.tableForName(currentTableName); - if (table == null) { - throw SchemaException("Table $currentTableName does not exist."); - } - - schema.renameTable(table, newName); - if (store != null) { - commands.addAll(store!.renameTable(table, newName)); - } else { - commands.add("database.renameTable('$currentTableName', '$newName');"); - } - } - - /// Validates and deletes a table in [schema]. - /// - /// This method removes the specified [tableName] from the current [schema] and generates the necessary SQL or Dart code - /// commands to delete the table. If [store] is not null, the generated commands will be SQL commands for - /// the underlying database. If [store] is null, the generated commands will be Dart expressions that - /// replicate the method call to delete the table. - /// - /// If the specified [tableName] does not exist in the [schema], a [SchemaException] will be thrown. - void deleteTable(String tableName) { - final table = schema.tableForName(tableName); - if (table == null) { - throw SchemaException("Table $tableName does not exist."); - } - - schema.removeTable(table); - - if (store != null) { - commands.addAll(store!.deleteTable(table)); - } else { - commands.add('database.deleteTable("$tableName");'); - } - } - - /// Alters a table in [schema]. - /// - /// This method allows you to modify the properties of an existing table in the schema. - /// It takes a [tableName] parameter to identify the table to be modified, and a - /// [modify] callback function that accepts a [SchemaTable] parameter and allows you - /// to make changes to the table. - /// - /// If the specified [tableName] does not exist in the [schema], a [SchemaException] - /// will be thrown. - /// - /// The changes made to the table through the [modify] callback function will be - /// reflected in the [schema] and the necessary SQL commands (if [store] is not null) - /// or Dart expressions (if [store] is null) will be added to the [commands] list. - /// - /// Example usage: - /// - /// database.alterTable("users", (t) { - /// t.uniqueColumnSet = ["email", "username"]; - /// }); - void alterTable( - String tableName, - void Function(SchemaTable targetTable) modify, - ) { - final existingTable = schema.tableForName(tableName); - if (existingTable == null) { - throw SchemaException("Table $tableName does not exist."); - } - - final newTable = SchemaTable.from(existingTable); - modify(newTable); - schema.replaceTable(existingTable, newTable); - - final shouldAddUnique = existingTable.uniqueColumnSet == null && - newTable.uniqueColumnSet != null; - final shouldRemoveUnique = existingTable.uniqueColumnSet != null && - newTable.uniqueColumnSet == null; - - final innerCommands = []; - if (shouldAddUnique) { - if (store != null) { - commands.addAll(store!.addTableUniqueColumnSet(newTable)); - } else { - innerCommands.add( - "t.uniqueColumnSet = [${newTable.uniqueColumnSet!.map((s) => '"$s"').join(',')}]", - ); - } - } else if (shouldRemoveUnique) { - if (store != null) { - commands.addAll(store!.deleteTableUniqueColumnSet(newTable)); - } else { - innerCommands.add("t.uniqueColumnSet = null"); - } - } else { - final haveSameLength = existingTable.uniqueColumnSet!.length == - newTable.uniqueColumnSet!.length; - final haveSameKeys = existingTable.uniqueColumnSet! - .every((s) => newTable.uniqueColumnSet!.contains(s)); - - if (!haveSameKeys || !haveSameLength) { - if (store != null) { - commands.addAll(store!.deleteTableUniqueColumnSet(newTable)); - commands.addAll(store!.addTableUniqueColumnSet(newTable)); - } else { - innerCommands.add( - "t.uniqueColumnSet = [${newTable.uniqueColumnSet!.map((s) => '"$s"').join(',')}]", - ); - } - } - } - - if (store == null && innerCommands.isNotEmpty) { - commands.add( - 'database.alterTable("$tableName", (t) {${innerCommands.join(";")};});', - ); - } - } - - /// Validates and adds a column to a table in [schema]. - /// - /// This method adds the given [column] to the table with the specified [tableName] in the current [schema]. - /// If the specified [tableName] does not exist in the [schema], a [SchemaException] will be thrown. - /// - /// If [store] is not null, the necessary SQL commands to add the column will be added to the [commands] list. - /// If [store] is null, a Dart expression that replicates the call to add the column will be added to the [commands] list. - /// - /// The optional [unencodedInitialValue] parameter can be used to specify an initial value for the column when it is - /// added to a table that already has rows. This is useful when adding a non-nullable column to an existing table. - void addColumn( - String tableName, - SchemaColumn column, { - String? unencodedInitialValue, - }) { - final table = schema.tableForName(tableName); - if (table == null) { - throw SchemaException("Table $tableName does not exist."); - } - - table.addColumn(column); - if (store != null) { - commands.addAll( - store!.addColumn( - table, - column, - unencodedInitialValue: unencodedInitialValue, - ), - ); - } else { - commands.add( - 'database.addColumn("${column.table!.name}", ${_getNewColumnExpression(column)});', - ); - } - } - - /// Validates and deletes a column in a table in [schema]. - /// - /// This method removes the specified [columnName] from the table with the given [tableName] in the current [schema] - /// and generates the necessary SQL or Dart code commands to delete the column. If [store] is not null, the generated - /// commands will be SQL commands for the underlying database. If [store] is null, the generated commands will be - /// Dart expressions that replicate the method call to delete the column. - /// - /// If the specified [tableName] does not exist in the [schema], a [SchemaException] will be thrown. If the specified - /// [columnName] does not exist in the table, a [SchemaException] will also be thrown. - void deleteColumn(String tableName, String columnName) { - final table = schema.tableForName(tableName); - if (table == null) { - throw SchemaException("Table $tableName does not exist."); - } - - final column = table.columnForName(columnName); - if (column == null) { - throw SchemaException("Column $columnName does not exists."); - } - - table.removeColumn(column); - - if (store != null) { - commands.addAll(store!.deleteColumn(table, column)); - } else { - commands.add('database.deleteColumn("$tableName", "$columnName");'); - } - } - - /// Validates and renames a column in a table in [schema]. - /// - /// This method renames the column with the [columnName] to the [newName] in the - /// table with the specified [tableName]. If the [tableName] does not exist in - /// the [schema], a [SchemaException] will be thrown. If the [columnName] does - /// not exist in the table, a [SchemaException] will also be thrown. - /// - /// If [store] is not null, the generated SQL commands to rename the column - /// will be added to the [commands] list. If [store] is null, a Dart expression - /// that replicates the column renaming will be added to the [commands] list. - void renameColumn(String tableName, String columnName, String newName) { - final table = schema.tableForName(tableName); - if (table == null) { - throw SchemaException("Table $tableName does not exist."); - } - - final column = table.columnForName(columnName); - if (column == null) { - throw SchemaException("Column $columnName does not exists."); - } - - table.renameColumn(column, newName); - - if (store != null) { - commands.addAll(store!.renameColumn(table, column, newName)); - } else { - commands.add( - "database.renameColumn('$tableName', '$columnName', '$newName');", - ); - } - } - - /// Validates and alters a column in a table in [schema]. - /// - /// Alterations are made by setting properties of the column passed to [modify]. If the column's nullability - /// changes from nullable to not nullable, all previously null values for that column - /// are set to the value of [unencodedInitialValue]. - /// - /// Example: - /// - /// database.alterColumn("table", "column", (c) { - /// c.isIndexed = true; - /// c.isNullable = false; - /// }), unencodedInitialValue: "0"); - void alterColumn( - String tableName, - String columnName, - void Function(SchemaColumn targetColumn) modify, { - String? unencodedInitialValue, - }) { - final table = schema.tableForName(tableName); - if (table == null) { - throw SchemaException("Table $tableName does not exist."); - } - - final existingColumn = table[columnName]; - if (existingColumn == null) { - throw SchemaException("Column $columnName does not exist."); - } - - final newColumn = SchemaColumn.from(existingColumn); - modify(newColumn); - - if (existingColumn.type != newColumn.type) { - throw SchemaException( - "May not change column type for '${existingColumn.name}' in '$tableName' (${existingColumn.typeString} -> ${newColumn.typeString})", - ); - } - - if (existingColumn.autoincrement != newColumn.autoincrement) { - throw SchemaException( - "May not change column autoincrementing behavior for '${existingColumn.name}' in '$tableName'", - ); - } - - if (existingColumn.isPrimaryKey != newColumn.isPrimaryKey) { - throw SchemaException( - "May not change column primary key status for '${existingColumn.name}' in '$tableName'", - ); - } - - if (existingColumn.relatedTableName != newColumn.relatedTableName) { - throw SchemaException( - "May not change reference table for foreign key column '${existingColumn.name}' in '$tableName' (${existingColumn.relatedTableName} -> ${newColumn.relatedTableName})", - ); - } - - if (existingColumn.relatedColumnName != newColumn.relatedColumnName) { - throw SchemaException( - "May not change reference column for foreign key column '${existingColumn.name}' in '$tableName' (${existingColumn.relatedColumnName} -> ${newColumn.relatedColumnName})", - ); - } - - if (existingColumn.name != newColumn.name) { - renameColumn(tableName, existingColumn.name, newColumn.name); - } - - table.replaceColumn(existingColumn, newColumn); - - final innerCommands = []; - if (existingColumn.isIndexed != newColumn.isIndexed) { - if (store != null) { - if (newColumn.isIndexed!) { - commands.addAll(store!.addIndexToColumn(table, newColumn)); - } else { - commands.addAll(store!.deleteIndexFromColumn(table, newColumn)); - } - } else { - innerCommands.add("c.isIndexed = ${newColumn.isIndexed}"); - } - } - - if (existingColumn.isUnique != newColumn.isUnique) { - if (store != null) { - commands.addAll(store!.alterColumnUniqueness(table, newColumn)); - } else { - innerCommands.add('c.isUnique = ${newColumn.isUnique}'); - } - } - - if (existingColumn.defaultValue != newColumn.defaultValue) { - if (store != null) { - commands.addAll(store!.alterColumnDefaultValue(table, newColumn)); - } else { - final value = newColumn.defaultValue == null - ? 'null' - : '"${newColumn.defaultValue}"'; - innerCommands.add('c.defaultValue = $value'); - } - } - - if (existingColumn.isNullable != newColumn.isNullable) { - if (store != null) { - commands.addAll( - store! - .alterColumnNullability(table, newColumn, unencodedInitialValue), - ); - } else { - innerCommands.add('c.isNullable = ${newColumn.isNullable}'); - } - } - - if (existingColumn.deleteRule != newColumn.deleteRule) { - if (store != null) { - commands.addAll(store!.alterColumnDeleteRule(table, newColumn)); - } else { - innerCommands.add('c.deleteRule = ${newColumn.deleteRule}'); - } - } - - if (store == null && innerCommands.isNotEmpty) { - commands.add( - 'database.alterColumn("$tableName", "$columnName", (c) {${innerCommands.join(";")};});', - ); - } - } - - /// Generates the necessary schema commands to apply the given [SchemaDifference]. - /// - /// This method is responsible for generating the SQL or Dart code commands - /// required to transform the input schema into the target schema represented - /// by the [SchemaDifference]. - /// - /// The generated commands are added to the [commands] list of this [SchemaBuilder] - /// instance. If [store] is not null, the commands will be SQL commands for the - /// underlying database. If [store] is null, the commands will be Dart expressions - /// that replicate the method calls to build the schema. - /// - /// The [changeList] parameter is an optional list that will be populated with - /// human-readable descriptions of the schema changes as they are generated. - /// - /// The [temporary] flag determines whether the generated schema changes should - /// create temporary tables instead of permanent tables. - void _generateSchemaCommands( - SchemaDifference difference, { - List? changeList, - bool temporary = false, - }) { - /// This code handles the case where a table being added to the schema - /// has a foreign key constraint. To avoid issues with the foreign key - /// constraint during the initial table creation, the foreign key - /// information is extracted and deferred until after all tables have - /// been created. This is done by creating a list of `SchemaTableDifference` - /// objects, which represent the differences between the actual and expected - /// tables, including the foreign key information. These differences are - /// then processed separately after the initial table creation. - final fkDifferences = []; - - /// Handles the case where a table being added to the schema has a foreign key constraint. - /// - /// To avoid issues with the foreign key constraint during the initial table creation, the foreign key - /// information is extracted and deferred until after all tables have been created. This is done by - /// creating a list of `SchemaTableDifference` objects, which represent the differences between the - /// actual and expected tables, including the foreign key information. These differences are then - /// processed separately after the initial table creation. - for (final t in difference.tablesToAdd) { - final copy = SchemaTable.from(t!); - if (copy.hasForeignKeyInUniqueSet) { - copy.uniqueColumnSet = null; - } - copy.columns.where((c) => c.isForeignKey).forEach(copy.removeColumn); - - changeList?.add("Adding table '${copy.name}'"); - createTable(copy); - - fkDifferences.add(SchemaTableDifference(copy, t)); - } - - /// Generates the necessary schema commands for the foreign key constraints in the given [SchemaDifference]. - /// - /// This method is called after all tables have been created to handle the case where a table being added to the schema - /// has a foreign key constraint. The foreign key information is extracted and deferred until after the initial table - /// creation to avoid issues with the foreign key constraint during the initial table creation process. - /// - /// The [fkDifferences] list contains `SchemaTableDifference` objects, which represent the differences between the - /// actual and expected tables, including the foreign key information. These differences are processed separately - /// after the initial table creation. - /// - /// The [changeList] parameter is an optional list that will be populated with human-readable descriptions of the - /// schema changes as they are generated. - for (final td in fkDifferences) { - _generateTableCommands(td, changeList: changeList); - } - - /// Deletes the tables specified in the [difference.tablesToDelete] list. - /// - /// For each table in the [difference.tablesToDelete] list, this method: - /// 1. Adds a human-readable description of the table deletion to the [changeList] (if provided). - /// 2. Calls the [deleteTable] method to delete the table from the schema. - for (final t in difference.tablesToDelete) { - changeList?.add("Deleting table '${t!.name}'"); - deleteTable(t!.name!); - } - - /// Generates the necessary schema commands for the tables specified in the given [SchemaDifference]. - /// - /// This method is responsible for generating the SQL or Dart code commands required to modify the - /// tables in the input schema according to the changes specified in the [SchemaDifference]. - /// - /// The generated commands are added to the [commands] list of the [SchemaBuilder] instance. If [store] - /// is not null, the commands will be SQL commands for the underlying database. If [store] is null, - /// the commands will be Dart expressions that replicate the method calls to build the schema. - /// - /// The [changeList] parameter is an optional list that will be populated with human-readable - /// descriptions of the schema changes as they are generated. - for (final t in difference.tablesToModify) { - _generateTableCommands(t, changeList: changeList); - } - } - - /// Generates the necessary schema commands for the tables specified in the given [SchemaDifference]. - /// - /// This method is responsible for generating the SQL or Dart code commands required to modify the - /// tables in the input schema according to the changes specified in the [SchemaDifference]. - /// - /// The generated commands are added to the [commands] list of the [SchemaBuilder] instance. If [store] - /// is not null, the commands will be SQL commands for the underlying database. If [store] is null, - /// the commands will be Dart expressions that replicate the method calls to build the schema. - /// - /// The [changeList] parameter is an optional list that will be populated with human-readable - /// descriptions of the schema changes as they are generated. - void _generateTableCommands( - SchemaTableDifference difference, { - List? changeList, - }) { - for (final c in difference.columnsToAdd) { - changeList?.add( - "Adding column '${c!.name}' to table '${difference.actualTable!.name}'", - ); - addColumn(difference.actualTable!.name!, c!); - - if (!c.isNullable! && c.defaultValue == null) { - changeList?.add( - "WARNING: This migration may fail if table '${difference.actualTable!.name}' already has rows. " - "Add an 'unencodedInitialValue' to the statement 'database.addColumn(\"${difference.actualTable!.name}\", " - "SchemaColumn(\"${c.name}\", ...)'."); - } - } - - for (final c in difference.columnsToRemove) { - changeList?.add( - "Deleting column '${c!.name}' from table '${difference.actualTable!.name}'", - ); - deleteColumn(difference.actualTable!.name!, c!.name); - } - - for (final columnDiff in difference.columnsToModify) { - changeList?.add( - "Modifying column '${columnDiff.actualColumn!.name}' in '${difference.actualTable!.name}'", - ); - alterColumn(difference.actualTable!.name!, columnDiff.actualColumn!.name, - (c) { - c.isIndexed = columnDiff.actualColumn!.isIndexed; - c.defaultValue = columnDiff.actualColumn!.defaultValue; - c.isUnique = columnDiff.actualColumn!.isUnique; - c.isNullable = columnDiff.actualColumn!.isNullable; - c.deleteRule = columnDiff.actualColumn!.deleteRule; - }); - - if (columnDiff.expectedColumn!.isNullable! && - !columnDiff.actualColumn!.isNullable! && - columnDiff.actualColumn!.defaultValue == null) { - changeList?.add( - "WARNING: This migration may fail if table '${difference.actualTable!.name}' already has rows. " - "Add an 'unencodedInitialValue' to the statement 'database.addColumn(\"${difference.actualTable!.name}\", " - "SchemaColumn(\"${columnDiff.actualColumn!.name}\", ...)'."); - } - } - - if (difference.uniqueSetDifference?.hasDifferences ?? false) { - changeList?.add( - "Setting unique column constraint of '${difference.actualTable!.name}' to ${difference.uniqueSetDifference!.actualColumnNames}.", - ); - alterTable(difference.actualTable!.name!, (t) { - if (difference.uniqueSetDifference!.actualColumnNames.isEmpty) { - t.uniqueColumnSet = null; - } else { - t.uniqueColumnSet = difference.uniqueSetDifference!.actualColumnNames; - } - }); - } - } - - /// Generates a Dart expression that creates a new [SchemaTable] instance with the specified columns and unique column set. - /// - /// This method is used by the [SchemaBuilder] class to generate Dart code that replicates the operations performed on the builder. - /// - /// The generated Dart expression will create a new [SchemaTable] instance with the specified table name and columns. If the table - /// has a unique column set, the expression will also include the unique column set names. - /// - /// The [table] parameter is the [SchemaTable] instance for which the Dart expression should be generated. - /// - /// Returns the generated Dart expression as a [String]. - static String _getNewTableExpression(SchemaTable table) { - final builder = StringBuffer(); - builder.write('database.createTable(SchemaTable("${table.name}", ['); - builder.write(table.columns.map(_getNewColumnExpression).join(",")); - builder.write("]"); - - if (table.uniqueColumnSet != null) { - final set = table.uniqueColumnSet!.map((p) => '"$p"').join(","); - builder.write(", uniqueColumnSetNames: [$set]"); - } - - builder.write('));'); - return builder.toString(); - } - - /// Generates a Dart expression that creates a new [SchemaColumn] instance with the specified properties. - /// - /// This method is used by the [SchemaBuilder] class to generate Dart code that replicates the operations performed - /// on the builder. - /// - /// The generated Dart expression will create a new [SchemaColumn] instance with the specified name, type, and other - /// properties. If the column is a foreign key, the expression will include the related table name, related column - /// name, and delete rule. - /// - /// The [column] parameter is the [SchemaColumn] instance for which the Dart expression should be generated. - /// - /// Returns the generated Dart expression as a [String]. - static String _getNewColumnExpression(SchemaColumn column) { - final builder = StringBuffer(); - if (column.relatedTableName != null) { - builder - .write('SchemaColumn.relationship("${column.name}", ${column.type}'); - builder.write(', relatedTableName: "${column.relatedTableName}"'); - builder.write(', relatedColumnName: "${column.relatedColumnName}"'); - builder.write(", rule: ${column.deleteRule}"); - } else { - builder.write('SchemaColumn("${column.name}", ${column.type}'); - if (column.isPrimaryKey!) { - builder.write(", isPrimaryKey: true"); - } else { - builder.write(", isPrimaryKey: false"); - } - if (column.autoincrement!) { - builder.write(", autoincrement: true"); - } else { - builder.write(", autoincrement: false"); - } - if (column.defaultValue != null) { - builder.write(', defaultValue: "${column.defaultValue}"'); - } - if (column.isIndexed!) { - builder.write(", isIndexed: true"); - } else { - builder.write(", isIndexed: false"); - } - } - - if (column.isNullable!) { - builder.write(", isNullable: true"); - } else { - builder.write(", isNullable: false"); - } - if (column.isUnique!) { - builder.write(", isUnique: true"); - } else { - builder.write(", isUnique: false"); - } - - builder.write(")"); - return builder.toString(); - } -} diff --git a/packages/database/lib/src/schema/schema_column.dart b/packages/database/lib/src/schema/schema_column.dart deleted file mode 100644 index 7735fef..0000000 --- a/packages/database/lib/src/schema/schema_column.dart +++ /dev/null @@ -1,669 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/schema/schema.dart'; - -/// A portable representation of a database column. -/// -/// Instances of this type contain the database-only details of a [ManagedPropertyDescription]. -class SchemaColumn { - /// Creates a new instance of [SchemaColumn] with the specified properties. - /// - /// The [name] parameter is the name of the column. - /// The [type] parameter is the [ManagedPropertyType] of the column. - /// The [isIndexed] parameter specifies whether the column should be indexed. - /// The [isNullable] parameter specifies whether the column can be null. - /// The [autoincrement] parameter specifies whether the column should be auto-incremented. - /// The [isUnique] parameter specifies whether the column should be unique. - /// The [defaultValue] parameter specifies the default value of the column. - /// The [isPrimaryKey] parameter specifies whether the column should be the primary key. - SchemaColumn( - this.name, - ManagedPropertyType type, { - this.isIndexed = false, - this.isNullable = false, - this.autoincrement = false, - this.isUnique = false, - this.defaultValue, - this.isPrimaryKey = false, - }) { - _type = typeStringForType(type); - } - - /// A convenience constructor for properties that represent foreign key relationships. - /// - /// This constructor creates a [SchemaColumn] instance with the specified properties for a foreign key relationship. - /// - /// The [name] parameter is the name of the column. - /// The [type] parameter is the [ManagedPropertyType] of the column. - /// The [isNullable] parameter specifies whether the column can be null. - /// The [isUnique] parameter specifies whether the column should be unique. - /// The [relatedTableName] parameter specifies the name of the related table. - /// The [relatedColumnName] parameter specifies the name of the related column. - /// The [rule] parameter specifies the [DeleteRule] for the foreign key constraint. - SchemaColumn.relationship( - this.name, - ManagedPropertyType type, { - this.isNullable = true, - this.isUnique = false, - this.relatedTableName, - this.relatedColumnName, - DeleteRule rule = DeleteRule.nullify, - }) { - isIndexed = true; - _type = typeStringForType(type); - _deleteRule = deleteRuleStringForDeleteRule(rule); - } - - /// Creates a new [SchemaColumn] instance that mirrors the properties of the provided [ManagedPropertyDescription]. - /// - /// This constructor is used to create a [SchemaColumn] instance that represents the same database column as the - /// provided [ManagedPropertyDescription]. The properties of the [SchemaColumn] instance are set based on the - /// properties of the [ManagedPropertyDescription]. - /// - /// If the [ManagedPropertyDescription] is a [ManagedRelationshipDescription], the [SchemaColumn] instance - /// will be set up as a foreign key column with the appropriate related table and column names, as well as the - /// delete rule. If the [ManagedPropertyDescription] is a [ManagedAttributeDescription], the [SchemaColumn] instance - /// will be set up with the appropriate type, nullability, autoincrement, uniqueness, and indexing properties, as well - /// as the default value if it exists. - /// - /// @param desc The [ManagedPropertyDescription] to mirror. - SchemaColumn.fromProperty(ManagedPropertyDescription desc) { - name = desc.name; - - if (desc is ManagedRelationshipDescription) { - isPrimaryKey = false; - relatedTableName = desc.destinationEntity.tableName; - relatedColumnName = desc.destinationEntity.primaryKey; - if (desc.deleteRule != null) { - _deleteRule = deleteRuleStringForDeleteRule(desc.deleteRule!); - } - } else if (desc is ManagedAttributeDescription) { - defaultValue = desc.defaultValue; - isPrimaryKey = desc.isPrimaryKey; - } - - _type = typeStringForType(desc.type!.kind); - isNullable = desc.isNullable; - autoincrement = desc.autoincrement; - isUnique = desc.isUnique; - isIndexed = desc.isIndexed; - } - - /// Creates a new instance of [SchemaColumn] that is a copy of [otherColumn]. - /// - /// This constructor creates a new [SchemaColumn] instance with the same properties as the provided [otherColumn]. - /// The new instance will have the same name, type, indexing, nullability, autoincrement, uniqueness, default value, - /// primary key status, related table name, related column name, and delete rule as the [otherColumn]. - SchemaColumn.from(SchemaColumn otherColumn) { - name = otherColumn.name; - _type = otherColumn._type; - isIndexed = otherColumn.isIndexed; - isNullable = otherColumn.isNullable; - autoincrement = otherColumn.autoincrement; - isUnique = otherColumn.isUnique; - defaultValue = otherColumn.defaultValue; - isPrimaryKey = otherColumn.isPrimaryKey; - relatedTableName = otherColumn.relatedTableName; - relatedColumnName = otherColumn.relatedColumnName; - _deleteRule = otherColumn._deleteRule; - } - - /// Creates an instance of [SchemaColumn] from the provided [map]. - /// - /// Where [map] is typically created by [asMap]. - SchemaColumn.fromMap(Map map) { - name = map["name"] as String; - _type = map["type"] as String?; - isIndexed = map["indexed"] as bool?; - isNullable = map["nullable"] as bool?; - autoincrement = map["autoincrement"] as bool?; - isUnique = map["unique"] as bool?; - defaultValue = map["defaultValue"] as String?; - isPrimaryKey = map["primaryKey"] as bool?; - relatedTableName = map["relatedTableName"] as String?; - relatedColumnName = map["relatedColumnName"] as String?; - _deleteRule = map["deleteRule"] as String?; - } - - /// Creates a new, empty instance of [SchemaColumn]. - /// - /// This constructor creates a new [SchemaColumn] instance with all properties set to their default values. - /// - /// The new instance will have no name, no type, no indexing, be nullable, not be autoincremented, not be unique, - /// have no default value, not be a primary key, have no related table or column names, and no delete rule. - SchemaColumn.empty(); - - /// The name of this column. - late String name; - - /// The [SchemaTable] this column belongs to. - /// - /// This property indicates the [SchemaTable] that the [SchemaColumn] instance is associated with. - /// If the [SchemaColumn] is not assigned to a specific table, this property will be `null`. - SchemaTable? table; - - /// The [String] representation of this column's type. - String? get typeString => _type; - - /// The type of this column in a [ManagedDataModel]. - ManagedPropertyType? get type => typeFromTypeString(_type); - - set type(ManagedPropertyType? t) { - _type = typeStringForType(t); - } - - /// Whether or not this column is indexed. - bool? isIndexed = false; - - /// Whether or not this column is nullable. - bool? isNullable = false; - - /// Whether or not this column is autoincremented. - bool? autoincrement = false; - - /// Whether or not this column is unique. - bool? isUnique = false; - - /// The default value for this column when inserted into a database. - String? defaultValue; - - /// Whether or not this column is the primary key of its [table]. - bool? isPrimaryKey = false; - - /// The related table name if this column is a foreign key column. - /// - /// If this column has a foreign key constraint, this property is the name - /// of the referenced table. - /// - /// Null if this column is not a foreign key reference. - String? relatedTableName; - - /// The related column if this column is a foreign key column. - /// - /// If this column has a foreign key constraint, this property is the name - /// of the reference column in [relatedTableName]. - String? relatedColumnName; - - /// The delete rule for this column if it is a foreign key column. - /// - /// Undefined if not a foreign key column. - DeleteRule? get deleteRule => - _deleteRule == null ? null : deleteRuleForDeleteRuleString(_deleteRule); - - set deleteRule(DeleteRule? t) { - if (t == null) { - _deleteRule = null; - } else { - _deleteRule = deleteRuleStringForDeleteRule(t); - } - } - - /// Whether or not this column is a foreign key column. - /// - /// This property returns `true` if the [relatedTableName] and [relatedColumnName] properties are not `null`, - /// indicating that this column represents a foreign key relationship. Otherwise, it returns `false`. - bool get isForeignKey { - return relatedTableName != null && relatedColumnName != null; - } - - /// The type of this column as a string. - String? _type; - - /// The delete rule for this column if it is a foreign key column. - /// - /// Undefined if not a foreign key column. - String? _deleteRule; - - /// Compares the current [SchemaColumn] instance with the provided [column] and returns a [SchemaColumnDifference] object - /// that represents the differences between the two columns. - /// - /// This method is used to determine the differences between the expected and actual database schema when performing - /// schema validation or database migrations. The returned [SchemaColumnDifference] object contains information about - /// any differences in the properties of the two columns, such as name, type, nullability, indexing, uniqueness, - /// default value, and delete rule. - /// - /// @param column The [SchemaColumn] instance to compare with the current instance. - /// @return A [SchemaColumnDifference] object that represents the differences between the two columns. - SchemaColumnDifference differenceFrom(SchemaColumn column) { - return SchemaColumnDifference(this, column); - } - - /// Returns the string representation of the provided [ManagedPropertyType]. - /// - /// This method takes a [ManagedPropertyType] instance and returns the corresponding string representation of the - /// property type. The mapping between the [ManagedPropertyType] and its string representation is as follows: - /// - /// - `ManagedPropertyType.integer` -> `"integer"` - /// - `ManagedPropertyType.doublePrecision` -> `"double"` - /// - `ManagedPropertyType.bigInteger` -> `"bigInteger"` - /// - `ManagedPropertyType.boolean` -> `"boolean"` - /// - `ManagedPropertyType.datetime` -> `"datetime"` - /// - `ManagedPropertyType.string` -> `"string"` - /// - `ManagedPropertyType.list` -> `null` - /// - `ManagedPropertyType.map` -> `null` - /// - `ManagedPropertyType.document` -> `"document"` - /// - /// If the provided [ManagedPropertyType] is not recognized, this method will return `null`. - /// - /// @param type The [ManagedPropertyType] to convert to a string representation. - /// @return The string representation of the provided [ManagedPropertyType], or `null` if it is not recognized. - static String? typeStringForType(ManagedPropertyType? type) { - switch (type) { - case ManagedPropertyType.integer: - return "integer"; - case ManagedPropertyType.doublePrecision: - return "double"; - case ManagedPropertyType.bigInteger: - return "bigInteger"; - case ManagedPropertyType.boolean: - return "boolean"; - case ManagedPropertyType.datetime: - return "datetime"; - case ManagedPropertyType.string: - return "string"; - case ManagedPropertyType.list: - return null; - case ManagedPropertyType.map: - return null; - case ManagedPropertyType.document: - return "document"; - default: - return null; - } - } - - /// Returns the [ManagedPropertyType] that corresponds to the provided string representation. - /// - /// This method takes a string representation of a property type and returns the corresponding - /// [ManagedPropertyType] instance. The mapping between the string representation and the - /// [ManagedPropertyType] is as follows: - /// - /// - `"integer"` -> `ManagedPropertyType.integer` - /// - `"double"` -> `ManagedPropertyType.doublePrecision` - /// - `"bigInteger"` -> `ManagedPropertyType.bigInteger` - /// - `"boolean"` -> `ManagedPropertyType.boolean` - /// - `"datetime"` -> `ManagedPropertyType.datetime` - /// - `"string"` -> `ManagedPropertyType.string` - /// - `"document"` -> `ManagedPropertyType.document` - /// - /// If the provided string representation is not recognized, this method will return `null`. - /// - /// @param type The string representation of the property type to convert to a [ManagedPropertyType]. - /// @return The [ManagedPropertyType] that corresponds to the provided string representation, or `null` if it is not recognized. - static ManagedPropertyType? typeFromTypeString(String? type) { - switch (type) { - case "integer": - return ManagedPropertyType.integer; - case "double": - return ManagedPropertyType.doublePrecision; - case "bigInteger": - return ManagedPropertyType.bigInteger; - case "boolean": - return ManagedPropertyType.boolean; - case "datetime": - return ManagedPropertyType.datetime; - case "string": - return ManagedPropertyType.string; - case "document": - return ManagedPropertyType.document; - default: - return null; - } - } - - /// Returns a string representation of the provided [DeleteRule]. - /// - /// This method takes a [DeleteRule] value and returns the corresponding string representation. - /// The mapping between the [DeleteRule] and its string representation is as follows: - /// - /// - [DeleteRule.cascade] -> `"cascade"` - /// - [DeleteRule.nullify] -> `"nullify"` - /// - [DeleteRule.restrict] -> `"restrict"` - /// - [DeleteRule.setDefault] -> `"default"` - /// - /// @param rule The [DeleteRule] value to convert to a string representation. - /// @return The string representation of the provided [DeleteRule], or `null` if the [DeleteRule] is not recognized. - static String? deleteRuleStringForDeleteRule(DeleteRule rule) { - switch (rule) { - case DeleteRule.cascade: - return "cascade"; - case DeleteRule.nullify: - return "nullify"; - case DeleteRule.restrict: - return "restrict"; - case DeleteRule.setDefault: - return "default"; - } - } - - /// Converts a string representation of a [DeleteRule] to the corresponding [DeleteRule] value. - /// - /// This method takes a string representation of a [DeleteRule] and returns the corresponding [DeleteRule] value. - /// The mapping between the string representation and the [DeleteRule] value is as follows: - /// - /// - `"cascade"` -> [DeleteRule.cascade] - /// - `"nullify"` -> [DeleteRule.nullify] - /// - `"restrict"` -> [DeleteRule.restrict] - /// - `"default"` -> [DeleteRule.setDefault] - /// - /// If the provided string representation is not recognized, this method will return `null`. - /// - /// @param rule The string representation of the [DeleteRule] to convert. - /// @return The [DeleteRule] value that corresponds to the provided string representation, or `null` if it is not recognized. - static DeleteRule? deleteRuleForDeleteRuleString(String? rule) { - switch (rule) { - case "cascade": - return DeleteRule.cascade; - case "nullify": - return DeleteRule.nullify; - case "restrict": - return DeleteRule.restrict; - case "default": - return DeleteRule.setDefault; - } - return null; - } - - /// Returns a map representation of the current [SchemaColumn] instance. - /// - /// The map contains the following key-value pairs: - /// - /// - "name": the name of the column - /// - "type": the string representation of the column's [ManagedPropertyType] - /// - "nullable": whether the column is nullable - /// - "autoincrement": whether the column is auto-incremented - /// - "unique": whether the column is unique - /// - "defaultValue": the default value of the column - /// - "primaryKey": whether the column is the primary key - /// - "relatedTableName": the name of the related table (for foreign key columns) - /// - "relatedColumnName": the name of the related column (for foreign key columns) - /// - "deleteRule": the delete rule for the foreign key constraint (for foreign key columns) - /// - "indexed": whether the column is indexed - /// - /// This method is used to create a portable representation of the [SchemaColumn] instance that can be easily - /// serialized and deserialized, for example, when storing schema information in a database or - /// transferring it over a network. - Map asMap() { - return { - "name": name, - "type": _type, - "nullable": isNullable, - "autoincrement": autoincrement, - "unique": isUnique, - "defaultValue": defaultValue, - "primaryKey": isPrimaryKey, - "relatedTableName": relatedTableName, - "relatedColumnName": relatedColumnName, - "deleteRule": _deleteRule, - "indexed": isIndexed - }; - } - - /// Returns a string representation of the SchemaColumn instance. - /// - /// The format of the string is "[name] (-> [relatedTableName].[relatedColumnName])", where: - /// - /// - [name] is the name of the column - /// - [relatedTableName] is the name of the related table, if the column is a foreign key - /// - [relatedColumnName] is the name of the related column, if the column is a foreign key - /// - /// If the column is not a foreign key, the string will only include the column name. - @override - String toString() => "$name (-> $relatedTableName.$relatedColumnName)"; -} - -/// The difference between two compared [SchemaColumn]s. -/// -/// This class is used for comparing database columns for validation and migration. -class SchemaColumnDifference { - /// Creates a new instance that represents the difference between [expectedColumn] and [actualColumn]. - /// - /// This constructor creates a new [SchemaColumnDifference] instance that represents the differences between the - /// provided [expectedColumn] and [actualColumn]. The constructor compares the properties of the two columns and - /// populates the [_differingProperties] list with any differences found. - /// - /// If the [actualColumn] and [expectedColumn] have different primary key, related column name, related table name, - /// type, or autoincrement behavior, a [SchemaException] is thrown with an appropriate error message. - /// - /// The following properties are compared between the [expectedColumn] and [actualColumn]: - /// - Name (case-insensitive) - /// - Indexing - /// - Uniqueness - /// - Nullability - /// - Default value - /// - Delete rule (for foreign key columns) - /// - /// @param expectedColumn The expected [SchemaColumn] instance. - /// @param actualColumn The actual [SchemaColumn] instance. - SchemaColumnDifference(this.expectedColumn, this.actualColumn) { - if (actualColumn != null && expectedColumn != null) { - if (actualColumn!.isPrimaryKey != expectedColumn!.isPrimaryKey) { - throw SchemaException( - "Cannot change primary key of '${expectedColumn!.table!.name}'", - ); - } - - if (actualColumn!.relatedColumnName != - expectedColumn!.relatedColumnName) { - throw SchemaException( - "Cannot change an existing column '${expectedColumn!.table!.name}.${expectedColumn!.name}' to an inverse Relationship", - ); - } - - if (actualColumn!.relatedTableName != expectedColumn!.relatedTableName) { - throw SchemaException( - "Cannot change type of '${expectedColumn!.table!.name}.${expectedColumn!.name}'", - ); - } - - if (actualColumn!.type != expectedColumn!.type) { - throw SchemaException( - "Cannot change type of '${expectedColumn!.table!.name}.${expectedColumn!.name}'", - ); - } - - if (actualColumn!.autoincrement != expectedColumn!.autoincrement) { - throw SchemaException( - "Cannot change autoincrement behavior of '${expectedColumn!.table!.name}.${expectedColumn!.name}'", - ); - } - - if (expectedColumn!.name.toLowerCase() != - actualColumn!.name.toLowerCase()) { - _differingProperties.add( - _PropertyDifference( - "name", - expectedColumn!.name, - actualColumn!.name, - ), - ); - } - - if (expectedColumn!.isIndexed != actualColumn!.isIndexed) { - _differingProperties.add( - _PropertyDifference( - "isIndexed", - expectedColumn!.isIndexed, - actualColumn!.isIndexed, - ), - ); - } - - if (expectedColumn!.isUnique != actualColumn!.isUnique) { - _differingProperties.add( - _PropertyDifference( - "isUnique", - expectedColumn!.isUnique, - actualColumn!.isUnique, - ), - ); - } - - if (expectedColumn!.isNullable != actualColumn!.isNullable) { - _differingProperties.add( - _PropertyDifference( - "isNullable", - expectedColumn!.isNullable, - actualColumn!.isNullable, - ), - ); - } - - if (expectedColumn!.defaultValue != actualColumn!.defaultValue) { - _differingProperties.add( - _PropertyDifference( - "defaultValue", - expectedColumn!.defaultValue, - actualColumn!.defaultValue, - ), - ); - } - - if (expectedColumn!.deleteRule != actualColumn!.deleteRule) { - _differingProperties.add( - _PropertyDifference( - "deleteRule", - expectedColumn!.deleteRule, - actualColumn!.deleteRule, - ), - ); - } - } - } - - /// The expected column. - /// - /// This property represents the expected [SchemaColumn] instance that is being compared to the [actualColumn]. - /// If there is no expected column, this property will be `null`. - final SchemaColumn? expectedColumn; - - /// The actual [SchemaColumn] instance being compared. - /// - /// May be null if there is no actual column. - final SchemaColumn? actualColumn; - - /// Whether or not [expectedColumn] and [actualColumn] are different. - /// - /// This property returns `true` if there are any differences between the [expectedColumn] and [actualColumn], - /// as determined by the [_differingProperties] list. It also returns `true` if one of the columns is `null` - /// while the other is not. - /// - /// The [_differingProperties] list contains the specific properties that differ between the two columns. - bool get hasDifferences => - _differingProperties.isNotEmpty || - (expectedColumn == null && actualColumn != null) || - (actualColumn == null && expectedColumn != null); - - /// Provides a human-readable list of differences between the expected and actual database columns. - /// - /// Empty is there are no differences. - List get errorMessages { - if (expectedColumn == null && actualColumn != null) { - return [ - "Column '${actualColumn!.name}' in table '${actualColumn!.table!.name}' should NOT exist, but is created by migration files" - ]; - } else if (expectedColumn != null && actualColumn == null) { - return [ - "Column '${expectedColumn!.name}' in table '${expectedColumn!.table!.name}' should exist, but is NOT created by migration files" - ]; - } - - return _differingProperties.map((property) { - return property.getErrorMessage( - expectedColumn!.table!.name, - expectedColumn!.name, - ); - }).toList(); - } - - /// A list that stores the differences between expected and actual database columns. - /// - /// This list stores the specific properties that differ between the expected [SchemaColumn] and the actual [SchemaColumn] - /// being compared. Each difference is represented by a [_PropertyDifference] instance, which contains the name of the - /// property, the expected value, and the actual value. - final List<_PropertyDifference> _differingProperties = []; -} - -/// Represents a difference between an expected and actual database column property. -/// -/// This class is used within the `SchemaColumnDifference` class to track the specific properties that differ -/// between an expected [SchemaColumn] and an actual [SchemaColumn] being compared. -/// -/// The [name] property represents the name of the property that is different, such as "name", "isIndexed", -/// "isUnique", "isNullable", "defaultValue", or "deleteRule". -/// -/// The [expectedValue] property represents the expected value of the property, as defined in the schema. -/// -/// The [actualValue] property represents the actual value of the property, as found in the database. -/// -/// The [getErrorMessage] method returns a human-readable error message that describes the difference between -/// the expected and actual values for the property, including the name of the table and column. -class _PropertyDifference { - /// Represents a difference between an expected and actual database column property. - /// - /// This class is used within the `SchemaColumnDifference` class to track the specific properties that differ - /// between an expected [SchemaColumn] and an actual [SchemaColumn] being compared. - /// - /// The [name] property represents the name of the property that is different, such as "name", "isIndexed", - /// "isUnique", "isNullable", "defaultValue", or "deleteRule". - /// - /// The [expectedValue] property represents the expected value of the property, as defined in the schema. - /// - /// The [actualValue] property represents the actual value of the property, as found in the database. - /// - /// The [getErrorMessage] method returns a human-readable error message that describes the difference between - /// the expected and actual values for the property, including the name of the table and column. - _PropertyDifference(this.name, this.expectedValue, this.actualValue); - - /// The name of the database column. - final String name; - - /// The expected value of the database column property. - /// - /// This represents the value that is expected for the database column property, - /// as defined in the schema. It is used to compare against the actual value - /// found in the database. - final dynamic expectedValue; - - /// The actual value of the database column property. - /// - /// This represents the value that is actually found in the database for the - /// column property. It is used to compare against the expected value defined - /// in the schema. - final dynamic actualValue; - - /// Generates an error message for a column mismatch in the database schema. - /// - /// This method constructs a detailed error message when there's a discrepancy - /// between the expected and actual values for a specific column property. - /// - /// Parameters: - /// - [actualTableName]: The name of the table where the mismatch occurred. - /// - [expectedColumnName]: The name of the column with the mismatched property. - /// - /// Returns: - /// A formatted error message string that includes: - /// - The table name - /// - The column name - /// - The expected value for the property - /// - The actual value found in the migration files - /// - /// The message follows the format: - /// "Column '[expectedColumnName]' in table '[actualTableName]' expected - /// '[expectedValue]' for '[name]', but migration files yield '[actualValue]'" - /// - /// This method is typically used during schema validation to provide clear - /// and actionable error messages for database administrators or developers. - String getErrorMessage(String? actualTableName, String? expectedColumnName) { - return "Column '$expectedColumnName' in table '$actualTableName' expected " - "'$expectedValue' for '$name', but migration files yield '$actualValue'"; - } -} diff --git a/packages/database/lib/src/schema/schema_table.dart b/packages/database/lib/src/schema/schema_table.dart deleted file mode 100644 index 4b9f303..0000000 --- a/packages/database/lib/src/schema/schema_table.dart +++ /dev/null @@ -1,360 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:collection/collection.dart' show IterableExtension; -import 'package:protevus_database/src/managed/managed.dart'; -import 'package:protevus_database/src/managed/relationship_type.dart'; -import 'package:protevus_database/src/schema/schema.dart'; - -/// A portable representation of a database table. -/// -/// Instances of this type contain the database-only details of a [ManagedEntity]. See also [Schema]. -class SchemaTable { - /// Creates an instance of this type with a [name], [columns] and [uniqueColumnSetNames]. - SchemaTable( - this.name, - List columns, { - List? uniqueColumnSetNames, - }) { - uniqueColumnSet = uniqueColumnSetNames; - _columns = columns; - } - - /// Creates an instance of this type to mirror [entity]. - SchemaTable.fromEntity(ManagedEntity entity) { - name = entity.tableName; - - final validProperties = entity.properties.values - .where( - (p) => - (p is ManagedAttributeDescription && !p.isTransient) || - (p is ManagedRelationshipDescription && - p.relationshipType == ManagedRelationshipType.belongsTo), - ) - .toList(); - - _columns = - validProperties.map((p) => SchemaColumn.fromProperty(p!)).toList(); - - uniqueColumnSet = entity.uniquePropertySet?.map((p) => p.name).toList(); - } - - /// Creates a deep copy of [otherTable]. - SchemaTable.from(SchemaTable otherTable) { - name = otherTable.name; - _columns = otherTable.columns.map((col) => SchemaColumn.from(col)).toList(); - _uniqueColumnSet = otherTable._uniqueColumnSet; - } - - /// Creates an empty table. - SchemaTable.empty(); - - /// Creates an instance of this type from [map]. - /// - /// This [map] is typically generated from [asMap]; - SchemaTable.fromMap(Map map) { - name = map["name"] as String?; - _columns = (map["columns"] as List>) - .map((c) => SchemaColumn.fromMap(c)) - .toList(); - uniqueColumnSet = (map["unique"] as List?)?.cast(); - } - - /// The [Schema] this table belongs to. - /// - /// May be null if not assigned to a [Schema]. - Schema? schema; - - /// The name of the database table. - String? name; - - /// The names of a set of columns that must be unique for each row in this table. - /// - /// Are sorted alphabetically. Not modifiable. - List? get uniqueColumnSet => - _uniqueColumnSet != null ? List.unmodifiable(_uniqueColumnSet!) : null; - - set uniqueColumnSet(List? columnNames) { - if (columnNames != null) { - _uniqueColumnSet = List.from(columnNames); - _uniqueColumnSet?.sort((String a, String b) => a.compareTo(b)); - } else { - _uniqueColumnSet = null; - } - } - - /// An unmodifiable list of [SchemaColumn]s in this table. - List get columns => List.unmodifiable(_columnStorage ?? []); - - bool get hasForeignKeyInUniqueSet => columns - .where((c) => c.isForeignKey) - .any((c) => uniqueColumnSet?.contains(c.name) ?? false); - - List? _columnStorage; - List? _uniqueColumnSet; - - set _columns(List columns) { - _columnStorage = columns; - for (final c in _columnStorage!) { - c.table = this; - } - } - - /// Returns a [SchemaColumn] in this instance by its name. - /// - /// See [columnForName] for more details. - SchemaColumn? operator [](String columnName) => columnForName(columnName); - - /// The differences between two tables. - SchemaTableDifference differenceFrom(SchemaTable table) { - return SchemaTableDifference(this, table); - } - - /// Adds [column] to this table. - /// - /// Sets [column]'s [SchemaColumn.table] to this instance. - void addColumn(SchemaColumn column) { - if (this[column.name] != null) { - throw SchemaException("Column ${column.name} already exists."); - } - - _columnStorage!.add(column); - column.table = this; - } - - void renameColumn(SchemaColumn column, String? newName) { - throw SchemaException("Renaming a column not yet implemented!"); - -// if (!columns.contains(column)) { -// throw new SchemaException("Column ${column.name} does not exist on ${name}."); -// } -// -// if (columnForName(newName) != null) { -// throw new SchemaException("Column ${newName} already exists."); -// } -// -// if (column.isPrimaryKey) { -// throw new SchemaException("May not rename primary key column (${column.name} -> ${newName})"); -// } -// -// // We also must rename indices -// column.name = newName; - } - - /// Removes [column] from this table. - /// - /// Exact [column] must be in this table, else an exception is thrown. - /// Sets [column]'s [SchemaColumn.table] to null. - void removeColumn(SchemaColumn column) { - if (!columns.contains(column)) { - throw SchemaException("Column ${column.name} does not exist on $name."); - } - - _columnStorage!.remove(column); - column.table = null; - } - - /// Replaces [existingColumn] with [newColumn] in this table. - void replaceColumn(SchemaColumn existingColumn, SchemaColumn newColumn) { - if (!columns.contains(existingColumn)) { - throw SchemaException( - "Column ${existingColumn.name} does not exist on $name.", - ); - } - - final index = _columnStorage!.indexOf(existingColumn); - _columnStorage![index] = newColumn; - newColumn.table = this; - existingColumn.table = null; - } - - /// Returns a [SchemaColumn] with [name]. - /// - /// Case-insensitively compares names of [columns] with [name]. Returns null if no column exists - /// with [name]. - SchemaColumn? columnForName(String name) { - final lowercaseName = name.toLowerCase(); - return columns - .firstWhereOrNull((col) => col.name.toLowerCase() == lowercaseName); - } - - /// Returns portable representation of this table. - Map asMap() { - return { - "name": name, - "columns": columns.map((c) => c.asMap()).toList(), - "unique": uniqueColumnSet - }; - } - - @override - String toString() => name!; -} - -/// The difference between two [SchemaTable]s. -/// -/// This class is used for comparing schemas for validation and migration. -class SchemaTableDifference { - /// Creates a new instance that represents the difference between [expectedTable] and [actualTable]. - SchemaTableDifference(this.expectedTable, this.actualTable) { - if (expectedTable != null && actualTable != null) { - for (final expectedColumn in expectedTable!.columns) { - final actualColumn = - actualTable != null ? actualTable![expectedColumn.name] : null; - if (actualColumn == null) { - _differingColumns.add(SchemaColumnDifference(expectedColumn, null)); - } else { - final diff = expectedColumn.differenceFrom(actualColumn); - if (diff.hasDifferences) { - _differingColumns.add(diff); - } - } - } - - _differingColumns.addAll( - actualTable!.columns - .where((t) => expectedTable![t.name] == null) - .map((unexpectedColumn) { - return SchemaColumnDifference(null, unexpectedColumn); - }), - ); - - uniqueSetDifference = - SchemaTableUniqueSetDifference(expectedTable!, actualTable!); - } - } - - /// The expected table. - /// - /// May be null if no table is expected. - final SchemaTable? expectedTable; - - /// The actual table. - /// - /// May be null if there is no table. - final SchemaTable? actualTable; - - /// The difference between [SchemaTable.uniqueColumnSet]s. - /// - /// Null if either [expectedTable] or [actualTable] are null. - SchemaTableUniqueSetDifference? uniqueSetDifference; - - /// Whether or not [expectedTable] and [actualTable] are the same. - bool get hasDifferences => - _differingColumns.isNotEmpty || - expectedTable?.name?.toLowerCase() != actualTable?.name?.toLowerCase() || - (expectedTable == null && actualTable != null) || - (actualTable == null && expectedTable != null) || - (uniqueSetDifference?.hasDifferences ?? false); - - /// Human-readable list of differences between [expectedTable] and [actualTable]. - List get errorMessages { - if (expectedTable == null && actualTable != null) { - return [ - "Table '$actualTable' should NOT exist, but is created by migration files." - ]; - } else if (expectedTable != null && actualTable == null) { - return [ - "Table '$expectedTable' should exist, but it is NOT created by migration files." - ]; - } - - final diffs = - _differingColumns.expand((diff) => diff.errorMessages).toList(); - diffs.addAll(uniqueSetDifference?.errorMessages ?? []); - - return diffs; - } - - List get columnDifferences => _differingColumns; - - List get columnsToAdd { - return _differingColumns - .where( - (diff) => diff.expectedColumn == null && diff.actualColumn != null, - ) - .map((diff) => diff.actualColumn) - .toList(); - } - - List get columnsToRemove { - return _differingColumns - .where( - (diff) => diff.expectedColumn != null && diff.actualColumn == null, - ) - .map((diff) => diff.expectedColumn) - .toList(); - } - - List get columnsToModify { - return _differingColumns - .where( - (columnDiff) => - columnDiff.expectedColumn != null && - columnDiff.actualColumn != null, - ) - .toList(); - } - - final List _differingColumns = []; -} - -/// Difference between two [SchemaTable.uniqueColumnSet]s. -class SchemaTableUniqueSetDifference { - SchemaTableUniqueSetDifference( - SchemaTable expectedTable, - SchemaTable actualTable, - ) : expectedColumnNames = expectedTable.uniqueColumnSet ?? [], - actualColumnNames = actualTable.uniqueColumnSet ?? [], - _tableName = actualTable.name; - - /// The expected set of unique column names. - final List expectedColumnNames; - - /// The actual set of unique column names. - final List actualColumnNames; - - final String? _tableName; - - /// Whether or not [expectedColumnNames] and [actualColumnNames] are equivalent. - bool get hasDifferences { - if (expectedColumnNames.length != actualColumnNames.length) { - return true; - } - - return !expectedColumnNames.every(actualColumnNames.contains); - } - - /// Human-readable list of differences between [expectedColumnNames] and [actualColumnNames]. - List get errorMessages { - if (expectedColumnNames.isEmpty && actualColumnNames.isNotEmpty) { - return [ - "Multi-column unique constraint on table '$_tableName' " - "should NOT exist, but is created by migration files." - ]; - } else if (expectedColumnNames.isNotEmpty && actualColumnNames.isEmpty) { - return [ - "Multi-column unique constraint on table '$_tableName' " - "should exist, but it is NOT created by migration files." - ]; - } - - if (hasDifferences) { - final expectedColumns = expectedColumnNames.map((c) => "'$c'").join(", "); - final actualColumns = actualColumnNames.map((c) => "'$c'").join(", "); - - return [ - "Multi-column unique constraint on table '$_tableName' " - "is expected to be for properties $expectedColumns, but is actually $actualColumns" - ]; - } - - return []; - } -} diff --git a/packages/database/pubspec.yaml b/packages/database/pubspec.yaml deleted file mode 100644 index 8c8d8f5..0000000 --- a/packages/database/pubspec.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: protevus_database -description: The Databse Package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.2 - -# Add regular dependencies here. -dependencies: - protevus_http: ^0.0.1 - protevus_openapi: ^0.0.1 - protevus_runtime: ^0.0.1 - collection: ^1.18.0 - meta: ^1.12.0 - # path: ^1.8.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/database/test/.gitkeep b/packages/database/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/hashing/.gitignore b/packages/hashing/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/hashing/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/hashing/CHANGELOG.md b/packages/hashing/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/hashing/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/hashing/LICENSE.md b/packages/hashing/LICENSE.md deleted file mode 100644 index 0fd0d03..0000000 --- a/packages/hashing/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) - -The Laravel Framework is Copyright (c) Taylor Otwell -The Fabric Framework is Copyright (c) Vieo, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/hashing/README.md b/packages/hashing/README.md deleted file mode 100644 index 8b55e73..0000000 --- a/packages/hashing/README.md +++ /dev/null @@ -1,39 +0,0 @@ - - -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. - -## Features - -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. - -## Usage - -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. diff --git a/packages/hashing/analysis_options.yaml b/packages/hashing/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/hashing/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/hashing/lib/hashing.dart b/packages/hashing/lib/hashing.dart deleted file mode 100644 index 5cc20b7..0000000 --- a/packages/hashing/lib/hashing.dart +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library provides hashing functionality for the Protevus Platform. -/// -/// It exports two main components: -/// - PBKDF2 (Password-Based Key Derivation Function 2) implementation -/// - Salt generation utilities -/// -/// These components are essential for secure password hashing and storage. -library; - -export 'package:protevus_hashing/src/pbkdf2.dart'; -export 'package:protevus_hashing/src/salt.dart'; diff --git a/packages/hashing/lib/src/pbkdf2.dart b/packages/hashing/lib/src/pbkdf2.dart deleted file mode 100644 index 1fc0bd3..0000000 --- a/packages/hashing/lib/src/pbkdf2.dart +++ /dev/null @@ -1,197 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:convert'; -import 'dart:math'; -import 'dart:typed_data'; -import 'package:crypto/crypto.dart'; - -/// Implements the PBKDF2 (Password-Based Key Derivation Function 2) algorithm. -/// -/// This class is used to derive a key from a password, salt, and hash function. -/// It's particularly useful for secure password storage and key generation. -/// -/// https://en.wikipedia.org/wiki/PBKDF2 -class PBKDF2 { - /// Creates an instance of PBKDF2 capable of generating a key. - /// - /// [hashAlgorithm] specifies the hash function to use. Defaults to [sha256]. - PBKDF2({Hash? hashAlgorithm}) { - this.hashAlgorithm = hashAlgorithm ?? sha256; - } - - /// Gets the current hash algorithm used by this PBKDF2 instance. - Hash get hashAlgorithm => _hashAlgorithm; - - /// Sets the hash algorithm to be used by this PBKDF2 instance. - /// - /// This also updates the internal block size based on the new algorithm. - set hashAlgorithm(Hash algorithm) { - _hashAlgorithm = algorithm; - _blockSize = _hashAlgorithm.convert([1, 2, 3]).bytes.length; - } - - /// The hash algorithm used for key derivation. - /// - /// This is marked as 'late' because it's initialized in the constructor or - /// when the setter is called, but not at the point of declaration. - late Hash _hashAlgorithm; - - /// The block size used in the PBKDF2 algorithm. - /// - /// This value is determined by the output size of the hash function being used. - /// It's initialized when the hash algorithm is set, either in the constructor - /// or when the hashAlgorithm setter is called. - late int _blockSize; - - /// Generates a key from the given password and salt. - /// - /// [password] is the password to hash. - /// [salt] is the salt to use in the hashing process. - /// [rounds] is the number of iterations to perform. - /// [keyLength] is the desired length of the output key in bytes. - /// - /// Returns a [List] representing the generated key. - /// - /// Throws a [PBKDF2Exception] if the derived key would be too long. - List generateKey( - String password, - String salt, - int rounds, - int keyLength, - ) { - if (keyLength > (pow(2, 32) - 1) * _blockSize) { - throw PBKDF2Exception("Derived key too long"); - } - - final numberOfBlocks = (keyLength / _blockSize).ceil(); - final hmac = Hmac(hashAlgorithm, utf8.encode(password)); - final key = ByteData(keyLength); - var offset = 0; - - final saltBytes = utf8.encode(salt); - final saltLength = saltBytes.length; - final inputBuffer = ByteData(saltBytes.length + 4) - ..buffer.asUint8List().setRange(0, saltBytes.length, saltBytes); - - for (var blockNumber = 1; blockNumber <= numberOfBlocks; blockNumber++) { - inputBuffer.setUint8(saltLength, blockNumber >> 24); - inputBuffer.setUint8(saltLength + 1, blockNumber >> 16); - inputBuffer.setUint8(saltLength + 2, blockNumber >> 8); - inputBuffer.setUint8(saltLength + 3, blockNumber); - - final block = _XORDigestSink.generate(inputBuffer, hmac, rounds); - var blockLength = _blockSize; - if (offset + blockLength > keyLength) { - blockLength = keyLength - offset; - } - key.buffer.asUint8List().setRange(offset, offset + blockLength, block); - - offset += blockLength; - } - - return key.buffer.asUint8List(); - } - - /// Generates a base64-encoded key from the given password and salt. - /// - /// This method invokes [generateKey] and base64 encodes the result. - /// - /// [password] is the password to hash. - /// [salt] is the salt to use in the hashing process. - /// [rounds] is the number of iterations to perform. - /// [keyLength] is the desired length of the output key in bytes. - /// - /// Returns a [String] representing the base64-encoded generated key. - String generateBase64Key( - String password, - String salt, - int rounds, - int keyLength, - ) { - const converter = Base64Encoder(); - - return converter.convert(generateKey(password, salt, rounds, keyLength)); - } -} - -/// Exception thrown when an error occurs during PBKDF2 key generation. -class PBKDF2Exception implements Exception { - /// Creates a new PBKDF2Exception with the given error message. - PBKDF2Exception(this.message); - - /// The error message describing the exception. - String message; - - /// Returns a string representation of the PBKDF2Exception. - /// - /// This method overrides the default [Object.toString] method to provide - /// a more descriptive string representation of the exception. The returned - /// string includes the exception type ("PBKDF2Exception") followed by the - /// error message. - /// - /// Returns a [String] in the format "PBKDF2Exception: [error message]". - @override - String toString() => "PBKDF2Exception: $message"; -} - -/// A helper class for XOR operations on digests during PBKDF2 key generation. -class _XORDigestSink implements Sink { - /// Creates a new _XORDigestSink with the given input buffer and HMAC. - _XORDigestSink(ByteData inputBuffer, Hmac hmac) { - lastDigest = hmac.convert(inputBuffer.buffer.asUint8List()).bytes; - bytes = ByteData(lastDigest.length) - ..buffer.asUint8List().setRange(0, lastDigest.length, lastDigest); - } - - /// Generates a hash by repeatedly applying HMAC and XOR operations. - /// - /// [inputBuffer] is the initial input data. - /// [hmac] is the HMAC instance to use for hashing. - /// [rounds] is the number of iterations to perform. - /// - /// Returns a [Uint8List] representing the generated hash. - static Uint8List generate(ByteData inputBuffer, Hmac hmac, int rounds) { - final hashSink = _XORDigestSink(inputBuffer, hmac); - - // If rounds == 1, we have already run the first hash in the constructor - // so this loop won't run. - for (var round = 1; round < rounds; round++) { - final hmacSink = hmac.startChunkedConversion(hashSink); - hmacSink.add(hashSink.lastDigest); - hmacSink.close(); - } - - return hashSink.bytes.buffer.asUint8List(); - } - - /// Stores the intermediate XOR results. - late ByteData bytes; - - /// Stores the last computed digest. - late List lastDigest; - - /// Adds a new digest to the sink by performing an XOR operation. - /// - /// [digest] is the digest to add to the sink. - @override - void add(Digest digest) { - lastDigest = digest.bytes; - for (var i = 0; i < digest.bytes.length; i++) { - bytes.setUint8(i, bytes.getUint8(i) ^ lastDigest[i]); - } - } - - /// Closes the sink and performs any necessary cleanup. - /// - /// This method is required by the [Sink] interface but does not perform - /// any additional actions in this implementation. - @override - void close() {} -} diff --git a/packages/hashing/lib/src/salt.dart b/packages/hashing/lib/src/salt.dart deleted file mode 100644 index 2e5ca8d..0000000 --- a/packages/hashing/lib/src/salt.dart +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:convert'; -import 'dart:math'; -import 'dart:typed_data'; - -/// Generates a random salt of [length] bytes from a cryptographically secure random number generator. -/// -/// Each element of this list is a byte. -List generate(int length) { - final buffer = Uint8List(length); - final rng = Random.secure(); - for (var i = 0; i < length; i++) { - buffer[i] = rng.nextInt(256); - } - - return buffer; -} - -/// Generates a random salt of [length] bytes from a cryptographically secure random number generator and encodes it to Base64. -/// -/// [length] is the number of bytes generated, not the [length] of the base64 encoded string returned. Decoding -/// the base64 encoded string will yield [length] number of bytes. -String generateAsBase64String(int length) { - const encoder = Base64Encoder(); - return encoder.convert(generate(length)); -} diff --git a/packages/hashing/pubspec.yaml b/packages/hashing/pubspec.yaml deleted file mode 100644 index 3c13239..0000000 --- a/packages/hashing/pubspec.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: protevus_hashing -description: The Hashing Package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://github.com/protevus/platformo - -environment: - sdk: ^3.4.2 - -# Add regular dependencies here. -dependencies: - crypto: ^3.0.3 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/hashing/test/.gitkeep b/packages/hashing/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/http/.gitignore b/packages/http/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/http/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/http/CHANGELOG.md b/packages/http/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/http/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/http/LICENSE.md b/packages/http/LICENSE.md deleted file mode 100644 index 0fd0d03..0000000 --- a/packages/http/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -The MIT License (MIT) - -The Laravel Framework is Copyright (c) Taylor Otwell -The Fabric Framework is Copyright (c) Vieo, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/packages/http/README.md b/packages/http/README.md deleted file mode 100644 index 757f4c9..0000000 --- a/packages/http/README.md +++ /dev/null @@ -1 +0,0 @@ -

\ No newline at end of file diff --git a/packages/http/analysis_options.yaml b/packages/http/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/http/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/http/lib/http.dart b/packages/http/lib/http.dart deleted file mode 100644 index 23f7d0d..0000000 --- a/packages/http/lib/http.dart +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library exports various components and utilities for handling HTTP requests and responses, -/// including controllers, request/response processing, routing, and serialization. -/// -/// It provides a comprehensive set of tools for building web applications and APIs, including: -/// - Request and response handling -/// - Body decoding and encoding -/// - Caching and CORS policies -/// - File handling -/// - Database object controllers -/// - Resource controllers with bindings and scopes -/// - Routing and request path processing -/// - Serialization utilities -library; - -export 'src/body_decoder.dart'; -export 'src/cache_policy.dart'; -export 'src/controller.dart'; -export 'src/cors_policy.dart'; -export 'src/file_controller.dart'; -export 'src/handler_exception.dart'; -export 'src/http_codec_repository.dart'; -export 'src/managed_object_controller.dart'; -export 'src/query_controller.dart'; -export 'src/request.dart'; -export 'src/request_body.dart'; -export 'src/request_path.dart'; -export 'src/resource_controller.dart'; -export 'src/resource_controller_bindings.dart'; -export 'src/resource_controller_interfaces.dart'; -export 'src/resource_controller_scope.dart'; -export 'src/response.dart'; -export 'src/route_node.dart'; -export 'src/route_specification.dart'; -export 'src/router.dart'; -export 'src/serializable.dart'; diff --git a/packages/http/lib/src/body_decoder.dart b/packages/http/lib/src/body_decoder.dart deleted file mode 100644 index 6595b77..0000000 --- a/packages/http/lib/src/body_decoder.dart +++ /dev/null @@ -1,164 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// A class that decodes bytes according to a specific content type. -/// -/// This abstract class provides the base functionality for decoding byte streams -/// based on their content type. -abstract class BodyDecoder { - /// Creates a new [BodyDecoder] instance. - /// - /// [bodyByteStream] is the stream of bytes to be decoded. - BodyDecoder(Stream> bodyByteStream) - : _originalByteStream = bodyByteStream; - - /// The stream of bytes to decode. - /// - /// This stream is consumed during decoding. - Stream> get bytes => _originalByteStream; - - /// Determines how [bytes] get decoded. - /// - /// A decoder is chosen from [CodecRegistry] according to this value. - ContentType? get contentType; - - /// Whether or not [bytes] is empty. - /// - /// No decoding will occur if this flag is true. - /// - /// Concrete implementations provide an implementation for this method without inspecting - /// [bytes]. - bool get isEmpty; - - /// Whether or not [bytes] are available as a list after decoding has occurred. - /// - /// By default, invoking [decode] will discard - /// the initial bytes and only keep the decoded value. Setting this flag to true - /// will keep a copy of the original bytes in [originalBytes]. - bool retainOriginalBytes = false; - - /// Whether or not [bytes] have been decoded yet. - /// - /// If [isEmpty] is true, this value is always true. - bool get hasBeenDecoded => _decodedData != null || isEmpty; - - /// The type of data [bytes] was decoded into. - /// - /// Will throw an error if [bytes] have not been decoded yet. - Type get decodedType { - if (!hasBeenDecoded) { - throw StateError( - "Invalid body decoding. Must decode data prior to calling 'decodedType'.", - ); - } - - return _decodedData.runtimeType; - } - - /// The raw bytes of this request body. - /// - /// This value is valid if [retainOriginalBytes] was set to true prior to [decode] being invoked. - List? get originalBytes { - if (retainOriginalBytes == false) { - throw StateError( - "'originalBytes' were not retained. Set 'retainOriginalBytes' to true prior to decoding.", - ); - } - return _bytes; - } - - /// The original byte stream to be decoded. - final Stream> _originalByteStream; - - /// The decoded data after processing. - dynamic _decodedData; - - /// The original bytes, if retained. - List? _bytes; - - /// Decodes this object's bytes as [T]. - /// - /// This method will select the [Codec] for [contentType] from the [CodecRegistry]. - /// The bytes of this object will be decoded according to that codec. If the codec - /// produces a value that is not [T], a bad request error [Response] is thrown. - /// - /// [T] must be a primitive type (String, int, double, bool, or a List or Map containing only these types). - /// An error is not thrown if T is not one of these types, but compiled Conduit applications may fail at runtime. - /// - /// Performance considerations: - /// - /// The decoded value is retained, and subsequent invocations of this method return the - /// retained value to avoid performing the decoding process again. - Future decode() async { - if (hasBeenDecoded) { - return _cast(_decodedData); - } - - final codec = - CodecRegistry.defaultInstance.codecForContentType(contentType); - final originalBytes = await _readBytes(bytes); - - if (retainOriginalBytes) { - _bytes = originalBytes; - } - - if (codec == null) { - _decodedData = originalBytes; - return _cast(_decodedData); - } - - try { - _decodedData = codec.decoder.convert(originalBytes); - } on Response { - rethrow; - } catch (_) { - throw Response.badRequest( - body: {"error": "request entity could not be decoded"}, - ); - } - - return _cast(_decodedData); - } - - /// Returns previously decoded object as [T]. - /// - /// This method is the synchronous version of [decode]. However, [decode] must have been called - /// prior to invoking this method or an error is thrown. - T as() { - if (!hasBeenDecoded) { - throw StateError("Attempted to access request body without decoding it."); - } - - return _cast(_decodedData); - } - - /// Casts the decoded body to the specified type [T]. - /// - /// Throws a [Response.badRequest] if the casting fails. - T _cast(dynamic body) { - try { - return RuntimeContext.current.coerce(body); - } on TypeCoercionException { - throw Response.badRequest( - body: {"error": "request entity was unexpected type"}, - ); - } - } - - /// Reads all bytes from the given [stream] and returns them as a [List]. - Future> _readBytes(Stream> stream) async { - return (await stream.toList()).expand((e) => e).toList(); - } -} diff --git a/packages/http/lib/src/cache_policy.dart b/packages/http/lib/src/cache_policy.dart deleted file mode 100644 index fa37ed0..0000000 --- a/packages/http/lib/src/cache_policy.dart +++ /dev/null @@ -1,83 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// Instances of this type provide configuration for the 'Cache-Control' header. -/// -/// Typically used by [FileController]. See [FileController.addCachePolicy]. -class CachePolicy { - /// Creates a new cache policy. - /// - /// Policies applied to [Response.cachePolicy] will add the appropriate - /// headers to that response. See properties for definitions of arguments - /// to this constructor. - /// - /// [preventIntermediateProxyCaching] - If true, prevents caching by intermediate proxies. - /// [preventCaching] - If true, prevents any caching of the response. - /// [requireConditionalRequest] - If true, requires a conditional GET for cached responses. - /// [expirationFromNow] - Sets the duration for which the resource is valid. - const CachePolicy({ - this.preventIntermediateProxyCaching = false, - this.preventCaching = false, - this.requireConditionalRequest = false, - this.expirationFromNow, - }); - - /// Prevents a response from being cached by an intermediate proxy. - /// - /// This sets 'Cache-Control: private' if true. Otherwise, 'Cache-Control: public' is used. - final bool preventIntermediateProxyCaching; - - /// Prevents any caching of a response by a proxy or client. - /// - /// If true, sets 'Cache-Control: no-cache, no-store'. If this property is true, - /// no other properties are evaluated. - final bool preventCaching; - - /// Requires a client to send a conditional GET to use a cached response. - /// - /// If true, sets 'Cache-Control: no-cache'. - final bool requireConditionalRequest; - - /// Sets how long a resource is valid for. - /// - /// Sets 'Cache-Control: max-age=x', where 'x' is [expirationFromNow] in seconds. - final Duration? expirationFromNow; - - /// Constructs a header value configured from this instance. - /// - /// This value is used for the 'Cache-Control' header. - /// - /// Returns a string representation of the cache control header based on the - /// configuration of this CachePolicy instance. - String get headerValue { - if (preventCaching) { - return "no-cache, no-store"; - } - - final items = []; - - if (preventIntermediateProxyCaching) { - items.add("private"); - } else { - items.add("public"); - } - - if (expirationFromNow != null) { - items.add("max-age=${expirationFromNow!.inSeconds}"); - } - - if (requireConditionalRequest) { - items.add("no-cache"); - } - - return items.join(", "); - } -} diff --git a/packages/http/lib/src/controller.dart b/packages/http/lib/src/controller.dart deleted file mode 100644 index 0bdbcc7..0000000 --- a/packages/http/lib/src/controller.dart +++ /dev/null @@ -1,679 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:logging/logging.dart'; - -/// The unifying protocol for [Request] and [Response] classes. -/// -/// A [Controller] must return an instance of this type from its [Controller.handle] method. -abstract class RequestOrResponse {} - -/// An interface that [Controller] subclasses implement to generate a controller for each request. -/// -/// If a [Controller] implements this interface, a [Controller] is created for each request. Controllers -/// must implement this interface if they declare setters or non-final properties, as those properties could -/// change during request handling. -/// -/// A controller that implements this interface can store information that is not tied to the request -/// to be reused across each instance of the controller type by implementing [recycledState] and [restore]. -/// Use these methods when a controller needs to construct runtime information that only needs to occur once -/// per controller type. -abstract class Recyclable implements Controller { - /// Returns state information that is reused across instances of this type. - /// - /// This method is called once when this instance is first created. It is passed - /// to each instance of this type via [restore]. - T? get recycledState; - - /// Provides a instance of this type with the [recycledState] of this type. - /// - /// Use this method it provide compiled runtime information to a instance. - void restore(T? state); -} - -/// An interface for linking controllers. -/// -/// All [Controller]s implement this interface. -abstract class Linkable { - /// See [Controller.link]. - Linkable? link(Controller Function() instantiator); - - /// See [Controller.linkFunction]. - Linkable? linkFunction( - FutureOr Function(Request request) handle, - ); -} - -/// Base class for request handling objects. -/// -/// A controller is a discrete processing unit for requests. These units are linked -/// together to form a series of steps that fully handle a request. -/// -/// Subclasses must implement [handle] to respond to, modify or forward requests. -/// This class must be subclassed. [Router] and [ResourceController] are common subclasses. -abstract class Controller - implements APIComponentDocumenter, APIOperationDocumenter, Linkable { - /// Returns a stacktrace and additional details about how the request's processing in the HTTP response. - /// - /// By default, this is false. During debugging, setting this to true can help debug Conduit applications - /// from the HTTP client. - static bool includeErrorDetailsInServerErrorResponses = false; - - /// Whether or not to allow uncaught exceptions escape request controllers. - /// - /// When this value is false - the default - all [Controller] instances handle - /// unexpected exceptions by catching and logging them, and then returning a 500 error. - /// - /// While running tests, it is useful to know where unexpected exceptions come from because - /// they are an error in your code. By setting this value to true, all [Controller]s - /// will rethrow unexpected exceptions in addition to the base behavior. This allows the stack - /// trace of the unexpected exception to appear in test results and halt the tests with failure. - /// - /// By default, this value is false. Do not set this value to true outside of tests. - static bool letUncaughtExceptionsEscape = false; - - /// Receives requests that this controller does not respond to. - /// - /// This value is set by [link] or [linkFunction]. - Controller? get nextController => _nextController; - - /// An instance of the 'conduit' logger. - Logger get logger => Logger("conduit"); - - /// The CORS policy of this controller. - CORSPolicy? policy = CORSPolicy(); - - Controller? _nextController; - - /// Links a controller to the receiver to form a request channel. - /// - /// Establishes a channel containing the receiver and the controller returned by [instantiator]. If - /// the receiver does not handle a request, the controller created by [instantiator] will get an opportunity to do so. - /// - /// [instantiator] is called immediately when invoking this function. If the returned [Controller] does not implement - /// [Recyclable], this is the only time [instantiator] is called. The returned controller must only have properties that - /// are marked as final. - /// - /// If the returned controller has properties that are not marked as final, it must implement [Recyclable]. - /// When a controller implements [Recyclable], [instantiator] is called for each request that - /// reaches this point of the channel. See [Recyclable] for more details. - /// - /// See [linkFunction] for a variant of this method that takes a closure instead of an object. - @override - Linkable link(Controller Function() instantiator) { - final instance = instantiator(); - if (instance is Recyclable) { - _nextController = _ControllerRecycler(instantiator, instance); - } else { - _nextController = instantiator(); - } - - return _nextController!; - } - - /// Links a function controller to the receiver to form a request channel. - /// - /// If the receiver does not respond to a request, [handle] receives the request next. - /// - /// See [link] for a variant of this method that takes an object instead of a closure. - @override - Linkable? linkFunction( - FutureOr Function(Request request) handle, - ) { - return _nextController = _FunctionController(handle); - } - - /// Lifecycle callback, invoked after added to channel, but before any requests are served. - /// - /// Subclasses override this method to provide final, one-time initialization after it has been added to a channel, - /// but before any requests are served. This is useful for performing any caching or optimizations for this instance. - /// For example, [Router] overrides this method to optimize its list of routes into a more efficient data structure. - /// - /// This method is invoked immediately after [ApplicationChannel.entryPoint] completes, for each - /// instance in the channel created by [ApplicationChannel.entryPoint]. This method will only be called once per instance. - /// - /// Controllers added to the channel via [link] may use this method, but any values this method stores - /// must be stored in a static structure, not the instance itself, since that instance will only be used to handle one request - /// before it is garbage collected. - /// - /// If you override this method you should call the superclass' implementation so that linked controllers invoke this same method. - /// If you do not invoke the superclass' implementation, you must ensure that any linked controllers invoked this method through other means. - void didAddToChannel() { - _nextController?.didAddToChannel(); - } - - /// Delivers [req] to this instance to be processed. - /// - /// This method is the entry point of a [Request] into this [Controller]. - /// By default, it invokes this controller's [handle] method within a try-catch block - /// that guarantees an HTTP response will be sent for [Request]. - Future? receive(Request req) async { - if (req.isPreflightRequest) { - return _handlePreflightRequest(req); - } - - Request? next; - try { - try { - final result = await handle(req); - if (result is Response) { - await _sendResponse(req, result, includeCORSHeaders: true); - logger.info(req.toDebugString()); - return null; - } else if (result is Request) { - next = result; - } - } on Response catch (response) { - await _sendResponse(req, response, includeCORSHeaders: true); - logger.info(req.toDebugString()); - return null; - } on HandlerException catch (e) { - await _sendResponse(req, e.response, includeCORSHeaders: true); - logger.info(req.toDebugString()); - return null; - } - } catch (any, stacktrace) { - handleError(req, any, stacktrace); - - if (letUncaughtExceptionsEscape) { - rethrow; - } - - return null; - } - - if (next == null) { - return null; - } - - return nextController?.receive(next); - } - - /// The primary request handling method of this object. - /// - /// Subclasses implement this method to provide their request handling logic. - /// - /// If this method returns a [Response], it will be sent as the response for [request] linked controllers will not handle it. - /// - /// If this method returns [request], the linked controller handles the request. - /// - /// If this method returns null, [request] is not passed to any other controller and is not responded to. You must respond to [request] - /// through [Request.raw]. - FutureOr handle(Request request); - - /// Executed prior to [Response] being sent. - /// - /// This method is used to post-process [response] just before it is sent. By default, does nothing. - /// The [response] may be altered prior to being sent. This method will be executed for all requests, - /// including server errors. - void willSendResponse(Response response) {} - - /// Sends an HTTP response for a request that yields an exception or error. - /// - /// When this controller encounters an exception or error while handling [request], this method is called to send the response. - /// By default, it attempts to send a 500 Server Error response and logs the error and stack trace to [logger]. - /// - /// Note: If [caughtValue]'s implements [HandlerException], this method is not called. - /// - /// If you override this method, it must not throw. - Future handleError( - Request request, - dynamic caughtValue, - StackTrace trace, - ) async { - if (caughtValue is HTTPStreamingException) { - logger.severe( - request.toDebugString(includeHeaders: true), - caughtValue.underlyingException, - caughtValue.trace, - ); - - request.response.close().catchError((_) => null); - - return; - } - - try { - final body = includeErrorDetailsInServerErrorResponses - ? { - "controller": "$runtimeType", - "error": "$caughtValue.", - "stacktrace": trace.toString() - } - : null; - - final response = Response.serverError(body: body) - ..contentType = ContentType.json; - - await _sendResponse(request, response, includeCORSHeaders: true); - - logger.severe( - request.toDebugString(includeHeaders: true), - caughtValue, - trace, - ); - } catch (e) { - logger.severe("Failed to send response, draining request. Reason: $e"); - - request.raw.drain().catchError((_) => null); - } - } - - /// Applies CORS headers to the response if necessary. - /// - /// This method checks if the request is a CORS request and not a preflight request. - /// If so, it applies the appropriate CORS headers to the response based on the policy - /// of the last controller in the chain. - void applyCORSHeadersIfNecessary(Request req, Response resp) { - if (req.isCORSRequest && !req.isPreflightRequest) { - final lastPolicyController = _lastController; - final p = lastPolicyController.policy; - if (p != null) { - if (p.isRequestOriginAllowed(req.raw)) { - resp.headers.addAll(p.headersForRequest(req)); - } - } - } - } - - /// Documents the API paths for this controller. - /// - /// This method delegates the documentation of API paths to the next controller - /// in the chain, if one exists. If there is no next controller, it returns an - /// empty map. - /// - /// [context] is the API documentation context. - /// - /// Returns a map where the keys are path strings and the values are [APIPath] - /// objects describing the paths. - @override - Map documentPaths(APIDocumentContext context) => - nextController?.documentPaths(context) ?? {}; - - /// Documents the API operations for this controller. - /// - /// This method is responsible for generating documentation for the API operations - /// associated with this controller. It delegates the documentation process to - /// the next controller in the chain, if one exists. - /// - /// Parameters: - /// - [context]: The API documentation context. - /// - [route]: The route string for the current path. - /// - [path]: The APIPath object representing the current path. - /// - /// Returns: - /// A map where the keys are operation identifiers (typically HTTP methods) - /// and the values are [APIOperation] objects describing the operations. - /// If there is no next controller, it returns an empty map. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - if (nextController == null) { - return {}; - } - - return nextController!.documentOperations(context, route, path); - } - - /// Documents the API components for this controller. - /// - /// This method delegates the documentation of API components to the next controller - /// in the chain, if one exists. If there is no next controller, this method does nothing. - /// - /// [context] is the API documentation context. - @override - void documentComponents(APIDocumentContext context) => - nextController?.documentComponents(context); - - /// Handles preflight requests for CORS. - /// - /// This method is called when a preflight request is received. It determines - /// which controller should handle the preflight request and delegates the - /// handling to that controller. - Future? _handlePreflightRequest(Request req) async { - Controller controllerToDictatePolicy; - try { - final lastControllerInChain = _lastController; - if (lastControllerInChain != this) { - controllerToDictatePolicy = lastControllerInChain; - } else { - if (policy != null) { - if (!policy!.validatePreflightRequest(req.raw)) { - await _sendResponse(req, Response.forbidden()); - logger.info(req.toDebugString(includeHeaders: true)); - } else { - await _sendResponse(req, policy!.preflightResponse(req)); - logger.info(req.toDebugString()); - } - - return null; - } else { - // If we don't have a policy, then a preflight request makes no sense. - await _sendResponse(req, Response.forbidden()); - logger.info(req.toDebugString(includeHeaders: true)); - return null; - } - } - } catch (any, stacktrace) { - return handleError(req, any, stacktrace); - } - - return controllerToDictatePolicy.receive(req); - } - - /// Sends the response for a request. - /// - /// This method applies CORS headers if necessary, calls [willSendResponse], - /// and then sends the response. - Future _sendResponse( - Request request, - Response response, { - bool includeCORSHeaders = false, - }) { - if (includeCORSHeaders) { - applyCORSHeadersIfNecessary(request, response); - } - willSendResponse(response); - - return request.respond(response); - } - - /// Returns the last controller in the chain. - /// - /// This method traverses the linked controllers to find the last one in the chain. - Controller get _lastController { - Controller controller = this; - while (controller.nextController != null) { - controller = controller.nextController!; - } - return controller; - } -} - -/// A controller that recycles instances of another controller. -/// -/// This controller is used internally to handle controllers that implement [Recyclable]. -@PreventCompilation() -class _ControllerRecycler extends Controller { - _ControllerRecycler(this.generator, Recyclable instance) { - recycleState = instance.recycledState; - nextInstanceToReceive = instance; - } - - /// Function to generate new instances of the recyclable controller. - Controller Function() generator; - - /// Override for the CORS policy. - CORSPolicy? policyOverride; - - /// State to be recycled between instances. - T? recycleState; - - Recyclable? _nextInstanceToReceive; - - /// The next instance to receive requests. - Recyclable? get nextInstanceToReceive => _nextInstanceToReceive; - - /// Sets the next instance to receive requests and initializes it. - set nextInstanceToReceive(Recyclable? instance) { - _nextInstanceToReceive = instance; - instance?.restore(recycleState); - instance?._nextController = nextController; - if (policyOverride != null) { - instance?.policy = policyOverride; - } - } - - /// Returns the CORS policy of the next instance to receive requests. - /// - /// This getter delegates to the [policy] of the [nextInstanceToReceive]. - /// If [nextInstanceToReceive] is null, this will return null. - /// - /// Returns: - /// The [CORSPolicy] of the next instance, or null if there is no next instance. - @override - CORSPolicy? get policy { - return nextInstanceToReceive?.policy; - } - - /// Sets the CORS policy for this controller recycler. - /// - /// This setter overrides the CORS policy for the recycled controllers. - /// When set, it updates the [policyOverride] property, which is used - /// to apply the policy to newly generated controller instances. - /// - /// Parameters: - /// p: The [CORSPolicy] to be set. Can be null to remove the override. - @override - set policy(CORSPolicy? p) { - policyOverride = p; - } - - /// Links a controller to this recycler and updates the next instance's next controller. - /// - /// This method extends the base [link] functionality by also setting the - /// [_nextController] of the [nextInstanceToReceive] to the newly linked controller. - /// - /// Parameters: - /// instantiator: A function that returns a new [Controller] instance. - /// - /// Returns: - /// The newly linked [Linkable] controller. - @override - Linkable link(Controller Function() instantiator) { - final c = super.link(instantiator); - nextInstanceToReceive?._nextController = c as Controller; - return c; - } - - /// Links a function controller to this recycler and updates the next instance's next controller. - /// - /// This method extends the base [linkFunction] functionality by also setting the - /// [_nextController] of the [nextInstanceToReceive] to the newly linked function controller. - /// - /// Parameters: - /// handle: A function that takes a [Request] and returns a [FutureOr]. - /// - /// Returns: - /// The newly linked [Linkable] controller, or null if the linking failed. - @override - Linkable? linkFunction( - FutureOr Function(Request request) handle, - ) { - final c = super.linkFunction(handle); - nextInstanceToReceive?._nextController = c as Controller?; - return c; - } - - /// Receives and processes an incoming request. - /// - /// This method is responsible for handling the request by delegating it to the next - /// instance in the recycling chain. It performs the following steps: - /// 1. Retrieves the current next instance to receive the request. - /// 2. Generates a new instance to be the next receiver. - /// 3. Delegates the request handling to the current next instance. - /// - /// This approach ensures that each request is handled by a fresh instance, - /// while maintaining the recycling pattern for efficient resource usage. - /// - /// Parameters: - /// req: The incoming [Request] to be processed. - /// - /// Returns: - /// A [Future] that completes when the request has been handled. - @override - Future? receive(Request req) { - final next = nextInstanceToReceive; - nextInstanceToReceive = generator() as Recyclable; - return next!.receive(req); - } - - /// This method should never be called directly on a _ControllerRecycler. - /// - /// The _ControllerRecycler is designed to delegate request handling to its - /// recycled instances. If this method is invoked, it indicates a bug in the - /// controller recycling mechanism. - /// - /// @param request The incoming request (unused in this implementation). - /// @throws StateError Always throws an error to indicate improper usage. - @override - FutureOr handle(Request request) { - throw StateError("_ControllerRecycler invoked handle. This is a bug."); - } - - /// Prepares the controller for handling requests after being added to the channel. - /// - /// This method is called after the controller is added to the request handling channel, - /// but before any requests are processed. It initializes the next instance to receive - /// requests by calling its [didAddToChannel] method. - /// - /// Note: This implementation does not call the superclass method because the - /// [nextInstanceToReceive]'s [nextController] is set to the same instance, and it must - /// call [nextController.didAddToChannel] itself to avoid duplicate preparation. - @override - void didAddToChannel() { - // don't call super, since nextInstanceToReceive's nextController is set to the same instance, - // and it must call nextController.prepare - nextInstanceToReceive?.didAddToChannel(); - } - - /// Delegates the documentation of API components to the next instance to receive requests. - /// - /// This method is part of the API documentation process. It calls the [documentComponents] - /// method on the [nextInstanceToReceive] if it exists, passing along the [components] - /// context. This allows the documentation to be generated for the next controller in the - /// recycling chain. - /// - /// If [nextInstanceToReceive] is null, this method does nothing. - /// - /// Parameters: - /// components: The [APIDocumentContext] used for generating API documentation. - @override - void documentComponents(APIDocumentContext components) => - nextInstanceToReceive?.documentComponents(components); - - /// Delegates the documentation of API paths to the next instance to receive requests. - /// - /// This method is part of the API documentation process. It calls the [documentPaths] - /// method on the [nextInstanceToReceive] if it exists, passing along the [components] - /// context. This allows the documentation to be generated for the next controller in the - /// recycling chain. - /// - /// If [nextInstanceToReceive] is null or its [documentPaths] returns null, an empty map is returned. - /// - /// Parameters: - /// components: The [APIDocumentContext] used for generating API documentation. - /// - /// Returns: - /// A [Map] where keys are path strings and values are [APIPath] objects, - /// or an empty map if no paths are documented. - @override - Map documentPaths(APIDocumentContext components) => - nextInstanceToReceive?.documentPaths(components) ?? {}; - - /// Delegates the documentation of API operations to the next instance to receive requests. - /// - /// This method is part of the API documentation process. It calls the [documentOperations] - /// method on the [nextInstanceToReceive] if it exists, passing along the [components], - /// [route], and [path] parameters. This allows the documentation to be generated for - /// the next controller in the recycling chain. - /// - /// If [nextInstanceToReceive] is null or its [documentOperations] returns null, an empty map is returned. - /// - /// Parameters: - /// components: The [APIDocumentContext] used for generating API documentation. - /// route: A string representing the route for which operations are being documented. - /// path: An [APIPath] object representing the path for which operations are being documented. - /// - /// Returns: - /// A [Map] where keys are operation identifiers (typically HTTP methods) and values are - /// [APIOperation] objects, or an empty map if no operations are documented. - @override - Map documentOperations( - APIDocumentContext components, - String route, - APIPath path, - ) => - nextInstanceToReceive?.documentOperations(components, route, path) ?? {}; -} - -/// A controller that wraps a function to handle requests. -@PreventCompilation() -class _FunctionController extends Controller { - _FunctionController(this._handler); - - /// The function that handles requests. - final FutureOr Function(Request) _handler; - - /// Handles the incoming request by invoking the function controller. - /// - /// This method is the core of the _FunctionController, responsible for - /// processing incoming requests. It delegates the request handling to - /// the function (_handler) that was provided when this controller was created. - /// - /// Parameters: - /// request: The incoming [Request] object to be handled. - /// - /// Returns: - /// A [FutureOr] that resolves to a [RequestOrResponse] object or null. - /// The return value depends on the implementation of the _handler function: - /// - If it returns a [Response], that will be the result. - /// - If it returns a [Request], that request will be forwarded to the next controller. - /// - If it returns null, the request is considered handled, and no further processing occurs. - @override - FutureOr handle(Request request) { - return _handler(request); - } - - /// Documents the API operations for this controller. - /// - /// This method is responsible for generating documentation for the API operations - /// associated with this controller. It delegates the documentation process to - /// the next controller in the chain, if one exists. - /// - /// Parameters: - /// - [context]: The API documentation context. - /// - [route]: The route string for the current path. - /// - [path]: The APIPath object representing the current path. - /// - /// Returns: - /// A map where the keys are operation identifiers (typically HTTP methods) - /// and the values are [APIOperation] objects describing the operations. - /// If there is no next controller, it returns an empty map. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - if (nextController == null) { - return {}; - } - - return nextController!.documentOperations(context, route, path); - } -} - -/// Abstract class representing the runtime of a controller. -abstract class ControllerRuntime { - /// Whether the controller is mutable. - bool get isMutable; - - /// The resource controller runtime, if applicable. - ResourceControllerRuntime? get resourceController; -} diff --git a/packages/http/lib/src/cors_policy.dart b/packages/http/lib/src/cors_policy.dart deleted file mode 100644 index 8db49cb..0000000 --- a/packages/http/lib/src/cors_policy.dart +++ /dev/null @@ -1,221 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'package:protevus_http/http.dart'; - -/// Describes a CORS policy for a [Controller]. -/// -/// A CORS policy describes allowed origins, accepted HTTP methods and headers, exposed response headers -/// and other values used by browsers to manage XHR requests to a Conduit application. -/// -/// Every [Controller] has a [Controller.policy]. By default, this value is [defaultPolicy], which is quite permissive. -/// -/// Modifications to policy for a specific [Controller] can be accomplished in the initializer of the controller. -/// -/// Application-wide defaults can be managed by modifying [defaultPolicy] in a [ApplicationChannel]'s constructor. -class CORSPolicy { - /// Create a new instance of [CORSPolicy]. - /// - /// Values are set to match [defaultPolicy]. - CORSPolicy() { - final def = defaultPolicy; - allowedOrigins = List.from(def.allowedOrigins); - allowCredentials = def.allowCredentials; - exposedResponseHeaders = List.from(def.exposedResponseHeaders); - allowedMethods = List.from(def.allowedMethods); - allowedRequestHeaders = List.from(def.allowedRequestHeaders); - cacheInSeconds = def.cacheInSeconds; - } - - /// Creates a new instance of [CORSPolicy] with default values. - CORSPolicy._defaults() { - allowedOrigins = ["*"]; - allowCredentials = true; - exposedResponseHeaders = []; - allowedMethods = ["POST", "PUT", "DELETE", "GET"]; - allowedRequestHeaders = [ - "origin", - "authorization", - "x-requested-with", - "x-forwarded-for", - "content-type" - ]; - cacheInSeconds = 86400; - } - - /// The default CORS policy. - /// - /// You may modify this default policy. All instances of [CORSPolicy] are instantiated - /// using the values of this default policy. Do not modify this property - /// unless you want the defaults to change application-wide. - static CORSPolicy get defaultPolicy { - return _defaultPolicy ??= CORSPolicy._defaults(); - } - - /// Internal storage for the default policy. - static CORSPolicy? _defaultPolicy; - - /// List of 'Simple' CORS headers. - /// - /// These are headers that are considered acceptable as part of any CORS request and cannot be changed. - static const List simpleRequestHeaders = [ - "accept", - "accept-language", - "content-language", - "content-type" - ]; - - /// List of 'Simple' CORS Response headers. - /// - /// These headers can be returned in a response without explicitly exposing them and cannot be changed. - static const List simpleResponseHeaders = [ - "cache-control", - "content-language", - "content-type", - "content-type", - "expires", - "last-modified", - "pragma" - ]; - - /// The list of case-sensitive allowed origins. - /// - /// Defaults to '*'. Case-sensitive. In the specification (http://www.w3.org/TR/cors/), this is 'list of origins'. - late List allowedOrigins; - - /// Whether or not to allow use of credentials, including Authorization and cookies. - /// - /// Defaults to true. In the specification (http://www.w3.org/TR/cors/), this is 'supports credentials'. - late bool allowCredentials; - - /// Which response headers to expose to the client. - /// - /// Defaults to empty. In the specification (http://www.w3.org/TR/cors/), this is 'list of exposed headers'. - late List exposedResponseHeaders; - - /// Which HTTP methods are allowed. - /// - /// Defaults to POST, PUT, DELETE, and GET. Case-sensitive. In the specification (http://www.w3.org/TR/cors/), this is 'list of methods'. - late List allowedMethods; - - /// The allowed request headers. - /// - /// Defaults to authorization, x-requested-with, x-forwarded-for. Must be lowercase. - /// Use in conjunction with [simpleRequestHeaders]. In the specification (http://www.w3.org/TR/cors/), this is 'list of headers'. - late List allowedRequestHeaders; - - /// The number of seconds to cache a pre-flight request for a requesting client. - int? cacheInSeconds; - - /// Returns a map of HTTP headers for a request based on this policy. - /// - /// This will add Access-Control-Allow-Origin, Access-Control-Expose-Headers and Access-Control-Allow-Credentials - /// depending on the this policy. - /// - /// [request] The incoming request. - /// Returns a map of HTTP headers. - Map headersForRequest(Request request) { - final origin = request.raw.headers.value("origin"); - - final headers = {}; - headers["Access-Control-Allow-Origin"] = origin; - - if (exposedResponseHeaders.isNotEmpty) { - headers["Access-Control-Expose-Headers"] = - exposedResponseHeaders.join(", "); - } - - if (allowCredentials) { - headers["Access-Control-Allow-Credentials"] = "true"; - } - - return headers; - } - - /// Whether or not this policy allows the Origin of the [request]. - /// - /// Will return true if [allowedOrigins] contains the case-sensitive Origin of the [request], - /// or that [allowedOrigins] contains *. - /// This method is invoked internally by [Controller]s that have a [Controller.policy]. - /// - /// [request] The incoming HTTP request. - /// Returns true if the request origin is allowed, false otherwise. - bool isRequestOriginAllowed(HttpRequest request) { - if (allowedOrigins.contains("*")) { - return true; - } - - final origin = request.headers.value("origin"); - if (allowedOrigins.contains(origin)) { - return true; - } - - return false; - } - - /// Validates whether or not a preflight request matches this policy. - /// - /// Will return true if the policy agrees with the Access-Control-Request-* headers of the request, otherwise, false. - /// This method is invoked internally by [Controller]s that have a [Controller.policy]. - /// - /// [request] The incoming HTTP request. - /// Returns true if the preflight request is valid according to this policy, false otherwise. - bool validatePreflightRequest(HttpRequest request) { - if (!isRequestOriginAllowed(request)) { - return false; - } - - final method = request.headers.value("access-control-request-method"); - if (!allowedMethods.contains(method)) { - return false; - } - - final requestedHeaders = request.headers - .value("access-control-request-headers") - ?.split(",") - .map((str) => str.trim().toLowerCase()) - .toList(); - if (requestedHeaders?.isNotEmpty ?? false) { - final nonSimpleHeaders = - requestedHeaders!.where((str) => !simpleRequestHeaders.contains(str)); - if (nonSimpleHeaders.any((h) => !allowedRequestHeaders.contains(h))) { - return false; - } - } - - return true; - } - - /// Returns a preflight response for a given [Request]. - /// - /// Contains the Access-Control-Allow-* headers for a CORS preflight request according - /// to this policy. - /// This method is invoked internally by [Controller]s that have a [Controller.policy]. - /// - /// [req] The incoming request. - /// Returns a Response object with the appropriate CORS headers. - Response preflightResponse(Request req) { - final headers = { - "Access-Control-Allow-Origin": req.raw.headers.value("origin"), - "Access-Control-Allow-Methods": allowedMethods.join(", "), - "Access-Control-Allow-Headers": allowedRequestHeaders.join(", ") - }; - - if (allowCredentials) { - headers["Access-Control-Allow-Credentials"] = "true"; - } - - if (cacheInSeconds != null) { - headers["Access-Control-Max-Age"] = "$cacheInSeconds"; - } - - return Response.ok(null, headers: headers); - } -} diff --git a/packages/http/lib/src/file_controller.dart b/packages/http/lib/src/file_controller.dart deleted file mode 100644 index 31f74b2..0000000 --- a/packages/http/lib/src/file_controller.dart +++ /dev/null @@ -1,269 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:path/path.dart' as path; - -/// A typedef for a function that handles file controller operations. -typedef FileControllerClosure = FutureOr Function( - FileController controller, - Request req, -); - -/// Serves files from a directory on the filesystem. -/// -/// See the constructor for usage. -class FileController extends Controller { - /// Creates a controller that serves files from [pathOfDirectoryToServe]. - /// - /// File controllers append the path of an HTTP request to [pathOfDirectoryToServe] and attempt to read the file at that location. - /// - /// If the file exists, its contents are sent in the HTTP Response body. If the file does not exist, a 404 Not Found error is returned by default. - /// - /// A route to this controller must contain the match-all segment (`*`). For example: - /// - /// router - /// .route("/site/*") - /// .link(() => FileController("build/web")); - /// - /// In the above, `GET /site/index.html` would return the file `build/web/index.html`. - /// - /// If [pathOfDirectoryToServe] contains a leading slash, it is an absolute path. Otherwise, it is relative to the current working directory - /// of the running application. - /// - /// If no file is found, the default behavior is to return a 404 Not Found. (If the [Request] accepts 'text/html', a simple 404 page is returned.) You may - /// override this behavior by providing [onFileNotFound]. - /// - /// The content type of the response is determined by the file extension of the served file. There are many built-in extension-to-content-type mappings and you may - /// add more with [setContentTypeForExtension]. Unknown file extension will result in `application/octet-stream` content-type responses. - /// - /// The contents of a file will be compressed with 'gzip' if the request allows for it and the content-type of the file can be compressed - /// according to [CodecRegistry]. - /// - /// Note that the 'Last-Modified' header is always applied to a response served from this instance. - FileController( - String pathOfDirectoryToServe, { - FileControllerClosure? onFileNotFound, - }) : _servingDirectory = Uri.directory(pathOfDirectoryToServe), - _onFileNotFound = onFileNotFound; - - /// A map of default file extensions to their corresponding ContentTypes. - static final Map _defaultExtensionMap = { - /* Web content */ - "html": ContentType("text", "html", charset: "utf-8"), - "css": ContentType("text", "css", charset: "utf-8"), - "js": ContentType("application", "javascript", charset: "utf-8"), - "json": ContentType("application", "json", charset: "utf-8"), - - /* Images */ - "jpg": ContentType("image", "jpeg"), - "jpeg": ContentType("image", "jpeg"), - "eps": ContentType("application", "postscript"), - "png": ContentType("image", "png"), - "gif": ContentType("image", "gif"), - "bmp": ContentType("image", "bmp"), - "tiff": ContentType("image", "tiff"), - "tif": ContentType("image", "tiff"), - "ico": ContentType("image", "x-icon"), - "svg": ContentType("image", "svg+xml"), - - /* Documents */ - "rtf": ContentType("application", "rtf"), - "pdf": ContentType("application", "pdf"), - "csv": ContentType("text", "plain", charset: "utf-8"), - "md": ContentType("text", "plain", charset: "utf-8"), - - /* Fonts */ - "ttf": ContentType("font", "ttf"), - "eot": ContentType("application", "vnd.ms-fontobject"), - "woff": ContentType("font", "woff"), - "otf": ContentType("font", "otf"), - }; - - /// A map of file extensions to their corresponding ContentTypes. - final Map _extensionMap = Map.from(_defaultExtensionMap); - - /// A list of policy pairs for caching. - final List<_PolicyPair?> _policyPairs = []; - - /// The URI of the directory being served. - final Uri _servingDirectory; - - /// A function to handle file not found errors. - final FutureOr Function( - FileController, - Request, - )? _onFileNotFound; - - /// Returns a [ContentType] for a file extension. - /// - /// Returns the associated content type for [extension], if one exists. Extension may have leading '.', - /// e.g. both '.jpg' and 'jpg' are valid inputs to this method. - /// - /// Returns null if there is no entry for [extension]. Entries can be added with [setContentTypeForExtension]. - ContentType? contentTypeForExtension(String extension) { - if (extension.startsWith(".")) { - return _extensionMap[extension.substring(1)]; - } - return _extensionMap[extension]; - } - - /// Sets the associated content type for a file extension. - /// - /// When a file with [extension] file extension is served by any instance of this type, - /// the [contentType] will be sent as the response's Content-Type header. - void setContentTypeForExtension(String extension, ContentType contentType) { - _extensionMap[extension] = contentType; - } - - /// Add a cache policy for file paths that return true for [shouldApplyToPath]. - /// - /// When this instance serves a file, the headers determined by [policy] - /// will be applied to files whose path returns true for [shouldApplyToPath]. - /// - /// If a path would meet the criteria for multiple [shouldApplyToPath] functions added to this instance, - /// the policy added earliest to this instance will be applied. - /// - /// For example, the following adds a set of cache policies that will apply 'Cache-Control: no-cache, no-store' to '.widget' files, - /// and 'Cache-Control: public' for any other files: - /// - /// fileController.addCachePolicy(const CachePolicy(preventCaching: true), - /// (p) => p.endsWith(".widget")); - /// fileController.addCachePolicy(const CachePolicy(), - /// (p) => true); - /// - /// Whereas the following incorrect example would apply 'Cache-Control: public' to '.widget' files because the first policy - /// would always apply to it and the second policy would be ignored: - /// - /// fileController.addCachePolicy(const CachePolicy(), - /// (p) => true); - /// fileController.addCachePolicy(const CachePolicy(preventCaching: true), - /// (p) => p.endsWith(".widget")); - /// - /// Note that the 'Last-Modified' header is always applied to a response served from this instance. - /// - void addCachePolicy( - CachePolicy policy, - bool Function(String path) shouldApplyToPath, - ) { - _policyPairs.add(_PolicyPair(policy, shouldApplyToPath)); - } - - /// Returns the [CachePolicy] for [path]. - /// - /// Evaluates each policy added by [addCachePolicy] against the [path] and - /// returns it if exists. - CachePolicy? cachePolicyForPath(String path) { - return _policyPairs - .firstWhere( - (pair) => pair?.shouldApplyToPath(path) ?? false, - orElse: () => null, - ) - ?.policy; - } - - /// Handles incoming requests and serves the appropriate file. - @override - Future handle(Request request) async { - if (request.method != "GET") { - return Response(HttpStatus.methodNotAllowed, null, null); - } - - final relativePath = request.path.remainingPath; - final fileUri = _servingDirectory.resolve(relativePath ?? ""); - File file; - if (FileSystemEntity.isDirectorySync(fileUri.toFilePath())) { - file = File.fromUri(fileUri.resolve("index.html")); - } else { - file = File.fromUri(fileUri); - } - - if (!file.existsSync()) { - if (_onFileNotFound != null) { - return _onFileNotFound(this, request); - } - - final response = Response.notFound(); - if (request.acceptsContentType(ContentType.html)) { - response - ..body = "

404 Not Found

" - ..contentType = ContentType.html; - } - return response; - } - - final lastModifiedDate = file.lastModifiedSync(); - final ifModifiedSince = - request.raw.headers.value(HttpHeaders.ifModifiedSinceHeader); - if (ifModifiedSince != null) { - final date = HttpDate.parse(ifModifiedSince); - if (!lastModifiedDate.isAfter(date)) { - return Response.notModified(lastModifiedDate, _policyForFile(file)); - } - } - - final lastModifiedDateStringValue = HttpDate.format(lastModifiedDate); - final contentType = contentTypeForExtension(path.extension(file.path)) ?? - ContentType("application", "octet-stream"); - final byteStream = file.openRead(); - - return Response.ok( - byteStream, - headers: {HttpHeaders.lastModifiedHeader: lastModifiedDateStringValue}, - ) - ..cachePolicy = _policyForFile(file) - ..encodeBody = false - ..contentType = contentType; - } - - /// Documents the operations of this controller for API documentation. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - return { - "get": APIOperation( - "getFile", - { - "200": APIResponse( - "Successful file fetch.", - content: {"*/*": APIMediaType(schema: APISchemaObject.file())}, - ), - "404": APIResponse("No file exists at path.") - }, - description: "Content-Type is determined by the suffix of the file.", - summary: "Returns the contents of a file on the server's filesystem.", - ) - }; - } - - /// Returns the cache policy for a given file. - CachePolicy? _policyForFile(File file) => cachePolicyForPath(file.path); -} - -/// A class to pair a cache policy with a function that determines if it should be applied. -class _PolicyPair { - /// Creates a new policy pair. - /// - /// [policy] is the cache policy to apply. - /// [shouldApplyToPath] is a function that determines if the policy should be applied to a given path. - _PolicyPair(this.policy, this.shouldApplyToPath); - - /// A function that determines if the policy should be applied to a given path. - final bool Function(String) shouldApplyToPath; - - /// The cache policy to apply. - final CachePolicy policy; -} diff --git a/packages/http/lib/src/handler_exception.dart b/packages/http/lib/src/handler_exception.dart deleted file mode 100644 index d7d2576..0000000 --- a/packages/http/lib/src/handler_exception.dart +++ /dev/null @@ -1,31 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// A custom exception class for handling HTTP-related errors. -/// -/// This exception is typically thrown when an HTTP handler encounters an error -/// and needs to provide a specific [Response] object as part of the exception. -class HandlerException implements Exception { - /// Constructs a [HandlerException] with the given [Response]. - /// - /// @param _response The HTTP response associated with this exception. - HandlerException(this._response); - - /// Gets the [Response] object associated with this exception. - /// - /// This getter provides read-only access to the internal [_response] field. - /// - /// @return The [Response] object containing details about the HTTP error. - Response get response => _response; - - /// The private field storing the HTTP response associated with this exception. - final Response _response; -} diff --git a/packages/http/lib/src/http_codec_repository.dart b/packages/http/lib/src/http_codec_repository.dart deleted file mode 100644 index 1f348e0..0000000 --- a/packages/http/lib/src/http_codec_repository.dart +++ /dev/null @@ -1,338 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:convert'; -import 'dart:io'; -import 'package:protevus_http/http.dart'; - -/// Provides encoding and decoding services based on the [ContentType] of a [Request] or [Response]. -/// -/// The [defaultInstance] provides a lookup table of [ContentType] to [Codec]. By default, -/// 'application/json', 'application/x-www-form-urlencoded' and 'text/*' content types have codecs and can -/// transform a [Response.body] into a list of bytes that can be transferred as an HTTP response body. -/// -/// Additional mappings are added via [add]. This method must be called per-isolate and it is recommended -/// to add mappings in an application's [ApplicationChannel] subclass constructor. -class CodecRegistry { - /// Private constructor to prevent direct instantiation. - CodecRegistry._() { - add( - ContentType("application", "json", charset: "utf-8"), - const JsonCodec(), - ); - add( - ContentType("application", "x-www-form-urlencoded", charset: "utf-8"), - const _FormCodec(), - ); - setAllowsCompression(ContentType("text", "*"), true); - setAllowsCompression(ContentType("application", "javascript"), true); - setAllowsCompression(ContentType("text", "event-stream"), false); - } - - /// The instance used by Conduit to encode and decode HTTP bodies. - /// - /// Custom codecs must be added to this instance. This value is guaranteed to be non-null. - static CodecRegistry get defaultInstance => _defaultInstance; - static final CodecRegistry _defaultInstance = CodecRegistry._(); - - /// Map of primary content types to their respective codecs. - final Map _primaryTypeCodecs = {}; - - /// Map of fully specified content types to their respective codecs. - final Map> _fullySpecificedCodecs = {}; - - /// Map of primary content types to their compression settings. - final Map _primaryTypeCompressionMap = {}; - - /// Map of fully specified content types to their compression settings. - final Map> _fullySpecifiedCompressionMap = {}; - - /// Map of content types to their default charsets. - final Map> _defaultCharsetMap = {}; - - /// Adds a custom [codec] for [contentType]. - /// - /// The body of a [Response] sent with [contentType] will be transformed by [codec]. A [Request] with [contentType] Content-Type - /// will be decode its [Request.body] with [codec]. - /// - /// [codec] must produce a [List] (or used chunked conversion to create a `Stream>`). - /// - /// [contentType]'s subtype may be `*`; all Content-Type's with a matching [ContentType.primaryType] will be - /// encoded or decoded by [codec], regardless of [ContentType.subType]. For example, if [contentType] is `text/*`, then all - /// `text/` (`text/html`, `text/plain`, etc.) content types are converted by [codec]. - /// - /// The most specific codec for a content type is chosen when converting an HTTP body. For example, if both `text/*` - /// and `text/html` have been added through this method, a [Response] with content type `text/html` will select the codec - /// associated with `text/html` and not `text/*`. - /// - /// [allowCompression] chooses whether or not response bodies are compressed with [gzip] when using [contentType]. - /// Media types like images and audio files should avoid setting [allowCompression] because they are already compressed. - /// - /// A response with a content type not in this instance will be sent unchanged to the HTTP client (and therefore must be [List] - /// - /// The [ContentType.charset] is not evaluated when selecting the codec for a content type. However, a charset indicates the default - /// used when a request's Content-Type header omits a charset. For example, in order to decode JSON data, the request body must first be decoded - /// from a list of bytes into a [String]. If a request omits the charset, this first step is would not be applied and the JSON codec would attempt - /// to decode a list of bytes instead of a [String] and would fail. Thus, `application/json` is added through the following: - /// - /// CodecRegistry.defaultInstance.add( - /// ContentType("application", "json", charset: "utf-8"), const JsonCodec(), allowsCompression: true); - /// - /// In the event that a request is sent without a charset, the codec will automatically apply a UTF8 decode step because of this default. - /// - /// Only use default charsets when the codec must first be decoded into a [String]. - void add( - ContentType contentType, - Codec codec, { - bool allowCompression = true, - }) { - if (contentType.subType == "*") { - _primaryTypeCodecs[contentType.primaryType] = codec; - _primaryTypeCompressionMap[contentType.primaryType] = allowCompression; - } else { - final innerCodecs = _fullySpecificedCodecs[contentType.primaryType] ?? {}; - innerCodecs[contentType.subType] = codec; - _fullySpecificedCodecs[contentType.primaryType] = innerCodecs; - - final innerCompress = - _fullySpecifiedCompressionMap[contentType.primaryType] ?? {}; - innerCompress[contentType.subType] = allowCompression; - _fullySpecifiedCompressionMap[contentType.primaryType] = innerCompress; - } - - if (contentType.charset != null) { - final innerCodecs = _defaultCharsetMap[contentType.primaryType] ?? {}; - innerCodecs[contentType.subType] = contentType.charset; - _defaultCharsetMap[contentType.primaryType] = innerCodecs; - } - } - - /// Toggles whether HTTP bodies of [contentType] are compressed with GZIP. - /// - /// Use this method when wanting to compress a [Response.body], but there is no need for a [Codec] to transform - /// the body object. - void setAllowsCompression(ContentType contentType, bool allowed) { - if (contentType.subType == "*") { - _primaryTypeCompressionMap[contentType.primaryType] = allowed; - } else { - final innerCompress = - _fullySpecifiedCompressionMap[contentType.primaryType] ?? {}; - innerCompress[contentType.subType] = allowed; - _fullySpecifiedCompressionMap[contentType.primaryType] = innerCompress; - } - } - - /// Whether or not [contentType] has been configured to be compressed. - /// - /// See also [setAllowsCompression]. - bool isContentTypeCompressable(ContentType? contentType) { - final subtypeCompress = - _fullySpecifiedCompressionMap[contentType?.primaryType]; - if (subtypeCompress != null) { - if (subtypeCompress.containsKey(contentType?.subType)) { - return subtypeCompress[contentType?.subType] ?? false; - } - } - - return _primaryTypeCompressionMap[contentType?.primaryType] ?? false; - } - - /// Returns a [Codec] for [contentType]. - /// - /// See [add]. - Codec>? codecForContentType(ContentType? contentType) { - if (contentType == null) { - return null; - } - - Codec? contentCodec; - Codec>? charsetCodec; - - final subtypes = _fullySpecificedCodecs[contentType.primaryType]; - if (subtypes != null) { - contentCodec = subtypes[contentType.subType]; - } - - contentCodec ??= _primaryTypeCodecs[contentType.primaryType]; - - if ((contentType.charset?.length ?? 0) > 0) { - charsetCodec = _codecForCharset(contentType.charset); - } else if (contentType.primaryType == "text" && contentCodec == null) { - charsetCodec = latin1; - } else { - charsetCodec = _defaultCharsetCodecForType(contentType); - } - - if (contentCodec != null) { - if (charsetCodec != null) { - return contentCodec.fuse(charsetCodec); - } - if (contentCodec is! Codec>) { - throw StateError("Invalid codec selected. Does not emit 'List'."); - } - return contentCodec; - } - - if (charsetCodec != null) { - return charsetCodec; - } - - return null; - } - - /// Returns a [Codec] for the given [charset]. - Codec> _codecForCharset(String? charset) { - final encoding = Encoding.getByName(charset); - if (encoding == null) { - throw Response(415, null, {"error": "invalid charset '$charset'"}); - } - - return encoding; - } - - /// Returns the default charset [Codec] for the given [ContentType]. - Codec>? _defaultCharsetCodecForType(ContentType type) { - final inner = _defaultCharsetMap[type.primaryType]; - if (inner == null) { - return null; - } - - final encodingName = inner[type.subType] ?? inner["*"]; - if (encodingName == null) { - return null; - } - - return Encoding.getByName(encodingName); - } -} - -/// A [Codec] for encoding and decoding form data. -class _FormCodec extends Codec?, dynamic> { - const _FormCodec(); - - @override - Converter, String> get encoder => const _FormEncoder(); - - @override - Converter> get decoder => const _FormDecoder(); -} - -/// A [Converter] for encoding form data. -class _FormEncoder extends Converter, String> { - const _FormEncoder(); - - @override - String convert(Map data) { - return data.keys.map((k) => _encodePair(k, data[k])).join("&"); - } - - /// Encodes a key-value pair for form data. - String _encodePair(String key, dynamic value) { - String encode(String v) => "$key=${Uri.encodeQueryComponent(v)}"; - if (value is List) { - return value.map(encode).join("&"); - } else if (value is String) { - return encode(value); - } - - throw ArgumentError( - "Cannot encode value '$value' for key '$key'. Must be 'String' or 'List'", - ); - } -} - -/// A [Converter] for decoding form data. -class _FormDecoder extends Converter> { - // This class may take input as either String or List. If charset is not defined in request, - // then data is List (from CodecRegistry) and will default to being UTF8 decoded first. - // Otherwise, if String, the request body has been decoded according to charset already. - - const _FormDecoder(); - - /// Converts a URL-encoded form data string into a Map of key-value pairs. - /// - /// This method takes a [String] `data` containing URL-encoded form data - /// and returns a [Map] where the keys are the form field names - /// and the values are either a single String or a List for multiple values. - /// - /// The conversion is performed by creating a [Uri] object with the input data - /// as its query string, then accessing its [Uri.queryParametersAll] property. - /// - /// Example: - /// Input: "name=John&age=30&hobby=reading&hobby=gaming" - /// Output: { - /// "name": ["John"], - /// "age": ["30"], - /// "hobby": ["reading", "gaming"] - /// } - @override - Map convert(String data) { - return Uri(query: data).queryParametersAll; - } - - /// Starts a chunked conversion process for form data. - /// - /// This method initializes and returns a [_FormSink] object, which is used to - /// handle the chunked conversion of form data. The [_FormSink] accumulates - /// incoming data chunks and performs the final conversion when the data stream - /// is closed. - /// - /// [outSink] is the output sink where the converted Map will - /// be added after the conversion is complete. - /// - /// Returns a [_FormSink] object that can be used to add string chunks of form - /// data for conversion. - @override - _FormSink startChunkedConversion(Sink> outSink) { - return _FormSink(outSink); - } -} - -/// A [ChunkedConversionSink] for form data. -class _FormSink implements ChunkedConversionSink { - _FormSink(this._outSink); - - /// The decoder used to convert the form data. - final _FormDecoder decoder = const _FormDecoder(); - - /// The output sink for the converted data. - final Sink> _outSink; - - /// Buffer to accumulate incoming data. - final StringBuffer _buffer = StringBuffer(); - - /// Adds a chunk of form data to the buffer. - /// - /// This method is part of the chunked conversion process for form data. - /// It appends the given [data] string to an internal buffer, which will be - /// processed when the [close] method is called. - /// - /// [data] is a String containing a portion of the form data to be converted. - @override - void add(String data) { - _buffer.write(data); - } - - /// Completes the chunked conversion process for form data. - /// - /// This method is called when all chunks of the form data have been added - /// to the buffer. It performs the following steps: - /// 1. Converts the accumulated buffer content to a string. - /// 2. Uses the decoder to convert this string into a Map. - /// 3. Adds the resulting map to the output sink. - /// 4. Closes the output sink. - /// - /// This method should be called after all add() operations are complete - /// to finalize the conversion process and clean up resources. - @override - void close() { - _outSink.add(decoder.convert(_buffer.toString())); - _outSink.close(); - } -} diff --git a/packages/http/lib/src/managed_object_controller.dart b/packages/http/lib/src/managed_object_controller.dart deleted file mode 100644 index 9672075..0000000 --- a/packages/http/lib/src/managed_object_controller.dart +++ /dev/null @@ -1,553 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_database/db.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// A [Controller] that implements basic CRUD operations for a [ManagedObject]. -/// -/// Instances of this class map a REST API call -/// directly to a database [Query]. For example, this [Controller] handles an HTTP PUT request by executing an update [Query]; the path variable in the request -/// indicates the value of the primary key for the updated row and the HTTP request body are the values updated. -/// -/// When routing to a [ManagedObjectController], you must provide the following route pattern, where can be any string: -/// -/// router.route("//[:id]") -/// -/// You may optionally use the static method [ManagedObjectController.routePattern] to create this string for you. -/// -/// The mapping for HTTP request to action is as follows: -/// -/// - GET //:id -> Fetch Object by ID -/// - PUT //:id -> Update Object by ID, HTTP Request Body contains update values. -/// - DELETE //:id -> Delete Object by ID -/// - POST / -> Create new Object, HTTP Request Body contains update values. -/// - GET / -> Fetch instances of Object -/// -/// You may use this class without subclassing, but you may also subclass it to modify the executed [Query] prior to its execution, or modify the returned [Response] after the query has been completed. -/// -/// The HTTP response body is encoded according to [responseContentType]. -/// -/// GET requests with no path parameter can take extra query parameters to modify the request. The following are the available query parameters: -/// -/// - count (integer): restricts the number of objects fetched to count. By default, this is null, which means no restrictions. -/// - offset (integer): offsets the fetch by offset amount of objects. By default, this is null, which means no offset. -/// - pageBy (string): indicates the key in which to page by. See [Query.pageBy] for more information on paging. If this value is passed as part of the query, either pageAfter or pagePrior must also be passed, but only one of those. -/// - pageAfter (string): indicates the page value and direction of the paging. pageBy must also be set. See [Query.pageBy] for more information. -/// - pagePrior (string): indicates the page value and direction of the paging. pageBy must also be set. See [Query.pageBy] for more information. -/// - sortBy (string): indicates the sort order. The syntax is 'sortBy=key,order' where key is a property of [InstanceType] and order is either 'asc' or 'desc'. You may specify multiple sortBy parameters. -class ManagedObjectController - extends ResourceController { - /// Creates an instance of a [ManagedObjectController]. - /// - /// [context] is the [ManagedContext] used for database operations. - ManagedObjectController(ManagedContext context) : super() { - _query = Query(context); - } - - /// Creates a new [ManagedObjectController] without a static type. - /// - /// This method is used when generating instances of this type dynamically from runtime values, - /// where the static type argument cannot be defined. Behaves just like the unnamed constructor. - /// - /// [entity] is the [ManagedEntity] for the object type being controlled. - /// [context] is the [ManagedContext] used for database operations. - ManagedObjectController.forEntity( - ManagedEntity entity, - ManagedContext context, - ) : super() { - _query = Query.forEntity(entity, context); - } - - /// Returns a route pattern for using [ManagedObjectController]s. - /// - /// Returns the string "/$name/[:id]", to be used as a route pattern in a [Router] for instances of [ResourceController] and subclasses. - /// - /// [name] is the name to be used in the route pattern. - static String routePattern(String name) { - return "/$name/[:id]"; - } - - /// The query used for database operations. - Query? _query; - - /// Executed prior to a fetch by ID query. - /// - /// You may modify the [query] prior to its execution in this method. The [query] will have a single matcher, where the [InstanceType]'s primary key - /// is equal to the first path argument in the [Request]. You may also return a new [Query], - /// but it must have the same [InstanceType] as this controller. If you return null from this method, no [Query] will be executed - /// and [didNotFindObject] will immediately be called. - FutureOr?> willFindObjectWithQuery( - Query? query, - ) { - return query; - } - - /// Executed after a fetch by ID query that found a matching instance. - /// - /// By default, returns a [Response.ok] with the encoded instance. The [result] is the fetched [InstanceType]. You may override this method - /// to provide some other behavior. - FutureOr didFindObject(InstanceType result) { - return Response.ok(result); - } - - /// Executed after a fetch by ID query that did not find a matching instance. - /// - /// By default, returns [Response.notFound]. You may override this method to provide some other behavior. - FutureOr didNotFindObject() { - return Response.notFound(); - } - - /// Handles GET requests for a single object by ID. - /// - /// [id] is the ID of the object to fetch. - @Operation.get("id") - Future getObject(@Bind.path("id") String id) async { - final primaryKey = _query!.entity.primaryKey; - final parsedIdentifier = - _getIdentifierFromPath(id, _query!.entity.properties[primaryKey]); - _query!.where((o) => o[primaryKey]).equalTo(parsedIdentifier); - - _query = await willFindObjectWithQuery(_query); - - final InstanceType? result = await _query?.fetchOne(); - - if (result == null) { - return didNotFindObject(); - } else { - return didFindObject(result); - } - } - - /// Executed prior to an insert query being executed. - /// - /// You may modify the [query] prior to its execution in this method. You may also return a new [Query], - /// but it must have the same type argument as this controller. If you return null from this method, - /// no values will be inserted and [didInsertObject] will immediately be called with the value null. - FutureOr?> willInsertObjectWithQuery( - Query? query, - ) { - return query; - } - - /// Executed after an insert query is successful. - /// - /// By default, returns [Response.ok]. The [object] is the newly inserted [InstanceType]. You may override this method to provide some other behavior. - FutureOr didInsertObject(InstanceType object) { - return Response.ok(object); - } - - /// Handles POST requests to create a new object. - @Operation.post() - Future createObject() async { - final instance = _query!.entity.instanceOf() as InstanceType; - instance.readFromMap(request!.body.as()); - _query!.values = instance; - - _query = await willInsertObjectWithQuery(_query); - final InstanceType result = (await _query?.insert())!; - - return didInsertObject(result); - } - - /// Executed prior to a delete query being executed. - /// - /// You may modify the [query] prior to its execution in this method. You may also return a new [Query], - /// but it must have the same type argument as this controller. If you return null from this method, - /// no delete operation will be performed and [didNotFindObjectToDeleteWithID] will immediately be called with the value null. - FutureOr?> willDeleteObjectWithQuery( - Query? query, - ) { - return query; - } - - /// Executed after an object was deleted. - /// - /// By default, returns [Response.ok] with no response body. You may override this method to provide some other behavior. - FutureOr didDeleteObjectWithID(dynamic id) { - return Response.ok(null); - } - - /// Executed when no object was deleted during a delete query. - /// - /// Defaults to return [Response.notFound]. You may override this method to provide some other behavior. - FutureOr didNotFindObjectToDeleteWithID(dynamic id) { - return Response.notFound(); - } - - /// Handles DELETE requests to delete an object by ID. - /// - /// [id] is the ID of the object to delete. - @Operation.delete("id") - Future deleteObject(@Bind.path("id") String id) async { - final primaryKey = _query!.entity.primaryKey; - final parsedIdentifier = - _getIdentifierFromPath(id, _query!.entity.properties[primaryKey]); - _query!.where((o) => o[primaryKey]).equalTo(parsedIdentifier); - - _query = await willDeleteObjectWithQuery(_query); - - final result = await _query?.delete(); - - if (result == 0) { - return didNotFindObjectToDeleteWithID(id); - } else { - return didDeleteObjectWithID(id); - } - } - - /// Executed prior to a update query being executed. - /// - /// You may modify the [query] prior to its execution in this method. You may also return a new [Query], - /// but it must have the same type argument as this controller. If you return null from this method, - /// no values will be inserted and [didNotFindObjectToUpdateWithID] will immediately be called with the value null. - FutureOr?> willUpdateObjectWithQuery( - Query? query, - ) { - return query; - } - - /// Executed after an object was updated. - /// - /// By default, returns [Response.ok] with the encoded, updated object. You may override this method to provide some other behavior. - FutureOr didUpdateObject(InstanceType object) { - return Response.ok(object); - } - - /// Executed after an object not found during an update query. - /// - /// By default, returns [Response.notFound]. You may override this method to provide some other behavior. - FutureOr didNotFindObjectToUpdateWithID(dynamic id) { - return Response.notFound(); - } - - /// Handles PUT requests to update an object by ID. - /// - /// [id] is the ID of the object to update. - @Operation.put("id") - Future updateObject(@Bind.path("id") String id) async { - final primaryKey = _query!.entity.primaryKey; - final parsedIdentifier = - _getIdentifierFromPath(id, _query!.entity.properties[primaryKey]); - _query!.where((o) => o[primaryKey]).equalTo(parsedIdentifier); - - final instance = _query!.entity.instanceOf() as InstanceType; - instance.readFromMap(request!.body.as()); - _query!.values = instance; - - _query = await willUpdateObjectWithQuery(_query); - - final InstanceType? results = await _query?.updateOne(); - if (results == null) { - return didNotFindObjectToUpdateWithID(id); - } else { - return didUpdateObject(results); - } - } - - /// Executed prior to a fetch query being executed. - /// - /// You may modify the [query] prior to its execution in this method. You may also return a new [Query], - /// but it must have the same type argument as this controller. If you return null from this method, - /// no objects will be fetched and [didFindObjects] will immediately be called with the value null. - FutureOr?> willFindObjectsWithQuery( - Query? query, - ) { - return query; - } - - /// Executed after a list of objects has been fetched. - /// - /// By default, returns [Response.ok] with the encoded list of founds objects (which may be the empty list). - FutureOr didFindObjects(List objects) { - return Response.ok(objects); - } - - /// Handles GET requests to fetch multiple objects. - /// - /// Supports pagination, sorting, and filtering through query parameters. - @Operation.get() - Future getObjects({ - /// Limits the number of objects returned. - @Bind.query("count") int count = 0, - - /// An integer offset into an ordered list of objects. - /// - /// Use with count. - /// - /// See pageBy for an alternative form of offsetting. - @Bind.query("offset") int offset = 0, - - /// The property of this object to page by. - /// - /// Must be a key in the object type being fetched. Must - /// provide either pageAfter or pagePrior. Use with count. - @Bind.query("pageBy") String? pageBy, - - /// A value-based offset into an ordered list of objects. - /// - /// Objects are returned if their - /// value for the property named by pageBy is greater than - /// the value of pageAfter. Must provide pageBy, and the type - /// of the property designated by pageBy must be the same as pageAfter. - @Bind.query("pageAfter") String? pageAfter, - - /// A value-based offset into an ordered list of objects. - /// - /// Objects are returned if their - /// value for the property named by pageBy is less than - /// the value of pageAfter. Must provide pageBy, and the type - /// of the property designated by pageBy must be the same as pageAfter. - @Bind.query("pagePrior") String? pagePrior, - - /// Designates a sorting strategy for the returned objects. - /// - /// This value must take the form 'name,asc' or 'name,desc', where name - /// is the property of the returned objects to sort on. - @Bind.query("sortBy") List? sortBy, - }) async { - _query!.fetchLimit = count; - _query!.offset = offset; - - if (pageBy != null) { - QuerySortOrder direction; - String pageValue; - if (pageAfter != null) { - direction = QuerySortOrder.ascending; - pageValue = pageAfter; - } else if (pagePrior != null) { - direction = QuerySortOrder.descending; - pageValue = pagePrior; - } else { - return Response.badRequest( - body: { - "error": - "missing required parameter 'pageAfter' or 'pagePrior' when 'pageBy' is given" - }, - ); - } - - final pageByProperty = _query!.entity.properties[pageBy]; - if (pageByProperty == null) { - throw Response.badRequest(body: {"error": "cannot page by '$pageBy'"}); - } - - final parsed = _parseValueForProperty(pageValue, pageByProperty); - _query!.pageBy( - (t) => t[pageBy], - direction, - boundingValue: parsed == "null" ? null : parsed, - ); - } - - if (sortBy != null) { - for (final sort in sortBy) { - final split = sort.split(",").map((str) => str.trim()).toList(); - if (split.length != 2) { - throw Response.badRequest( - body: { - "error": - "invalid 'sortyBy' format. syntax: 'name,asc' or 'name,desc'." - }, - ); - } - if (_query!.entity.properties[split.first] == null) { - throw Response.badRequest( - body: {"error": "cannot sort by '$sortBy'"}, - ); - } - if (split.last != "asc" && split.last != "desc") { - throw Response.badRequest( - body: { - "error": - "invalid 'sortBy' format. syntax: 'name,asc' or 'name,desc'." - }, - ); - } - final sortOrder = split.last == "asc" - ? QuerySortOrder.ascending - : QuerySortOrder.descending; - _query!.sortBy((t) => t[split.first], sortOrder); - } - } - - _query = await willFindObjectsWithQuery(_query); - - final results = (await _query?.fetch())!; - - return didFindObjects(results); - } - - /// Documents the request body for POST and PUT operations. - @override - APIRequestBody? documentOperationRequestBody( - APIDocumentContext context, - Operation? operation, - ) { - if (operation!.method == "POST" || operation.method == "PUT") { - return APIRequestBody.schema( - context.schema.getObjectWithType(InstanceType), - contentTypes: ["application/json"], - isRequired: true, - ); - } - - return null; - } - - /// Documents the responses for each operation type. - @override - Map documentOperationResponses( - APIDocumentContext context, - Operation? operation, - ) { - switch (operation!.method) { - case "GET": - if (operation.pathVariables.isEmpty) { - return { - "200": APIResponse.schema( - "Returns a list of objects.", - APISchemaObject.array( - ofSchema: context.schema.getObjectWithType(InstanceType), - ), - ), - "400": APIResponse.schema( - "Invalid request.", - APISchemaObject.object({"error": APISchemaObject.string()}), - ) - }; - } - - return { - "200": APIResponse.schema( - "Returns a single object.", - context.schema.getObjectWithType(InstanceType), - ), - "404": APIResponse("No object found.") - }; - case "PUT": - return { - "200": APIResponse.schema( - "Returns updated object.", - context.schema.getObjectWithType(InstanceType), - ), - "404": APIResponse("No object found."), - "400": APIResponse.schema( - "Invalid request.", - APISchemaObject.object({"error": APISchemaObject.string()}), - ), - "409": APIResponse.schema( - "Object already exists", - APISchemaObject.object({"error": APISchemaObject.string()}), - ), - }; - case "POST": - return { - "200": APIResponse.schema( - "Returns created object.", - context.schema.getObjectWithType(InstanceType), - ), - "400": APIResponse.schema( - "Invalid request.", - APISchemaObject.object({"error": APISchemaObject.string()}), - ), - "409": APIResponse.schema( - "Object already exists", - APISchemaObject.object({"error": APISchemaObject.string()}), - ) - }; - case "DELETE": - return { - "200": APIResponse("Object successfully deleted."), - "404": APIResponse("No object found."), - }; - } - - return {}; - } - - /// Documents the operations for this controller. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - final ops = super.documentOperations(context, route, path); - - final entityName = _query!.entity.name; - - if (path.parameters - .where((p) => p!.location == APIParameterLocation.path) - .isNotEmpty) { - ops["get"]!.id = "get$entityName"; - ops["put"]!.id = "update$entityName"; - ops["delete"]!.id = "delete$entityName"; - } else { - ops["get"]!.id = "get${entityName}s"; - ops["post"]!.id = "create$entityName"; - } - - return ops; - } - - /// Parses the identifier from the path. - /// - /// [value] is the string value from the path. - /// [desc] is the property description for the identifier. - dynamic _getIdentifierFromPath( - String value, - ManagedPropertyDescription? desc, - ) { - return _parseValueForProperty(value, desc, onError: Response.notFound()); - } - - /// Parses a value for a specific property. - /// - /// [value] is the string value to parse. - /// [desc] is the property description. - /// [onError] is the response to return if parsing fails. - dynamic _parseValueForProperty( - String value, - ManagedPropertyDescription? desc, { - Response? onError, - }) { - if (value == "null") { - return null; - } - - try { - switch (desc!.type!.kind) { - case ManagedPropertyType.string: - return value; - case ManagedPropertyType.bigInteger: - return int.parse(value); - case ManagedPropertyType.integer: - return int.parse(value); - case ManagedPropertyType.datetime: - return DateTime.parse(value); - case ManagedPropertyType.doublePrecision: - return double.parse(value); - case ManagedPropertyType.boolean: - return value == "true"; - case ManagedPropertyType.list: - return null; - case ManagedPropertyType.map: - return null; - case ManagedPropertyType.document: - return null; - } - } on FormatException { - throw onError ?? Response.badRequest(); - } - } -} diff --git a/packages/http/lib/src/query_controller.dart b/packages/http/lib/src/query_controller.dart deleted file mode 100644 index 40f1183..0000000 --- a/packages/http/lib/src/query_controller.dart +++ /dev/null @@ -1,94 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_database/db.dart'; -import 'package:protevus_http/http.dart'; - -/// A partial class for implementing an [ResourceController] that has a few conveniences -/// for executing [Query]s. -/// -/// Instances of [QueryController] are [ResourceController]s that have a pre-baked [Query] available. This [Query]'s type - -/// the [ManagedObject] type is operates on - is defined by [InstanceType]. -/// -/// The values of [query] are set based on the HTTP method, HTTP path and request body. -/// Prior to executing an operation method in subclasses of [QueryController], the [query] -/// will have the following attributes under the following conditions: -/// -/// 1. The [Query] will always have a type argument that matches [InstanceType]. -/// 2. If the request contains a path variable that matches the name of the primary key of [InstanceType], the [Query] will set -/// its [Query.where] to match on the [ManagedObject] whose primary key is that value of the path parameter. -/// 3. If the [Request] contains a body, it will be decoded per the [acceptedContentTypes] and deserialized into the [Query.values] property via [ManagedObject.readFromMap]. -abstract class QueryController - extends ResourceController { - /// Create an instance of [QueryController]. - /// - /// [context] is the [ManagedContext] used for database operations. - QueryController(ManagedContext context) : super() { - query = Query(context); - } - - /// A query representing the values received from the [request] being processed. - /// - /// You may execute this [query] as is or modify it. The following is true of this property: - /// - /// 1. The [Query] will always have a type argument that matches [InstanceType]. - /// 2. If the request contains a path variable that matches the name of the primary key of [InstanceType], the [Query] will set - /// its [Query.where] to match on the [ManagedObject] whose primary key is that value of the path parameter. - /// 3. If the [Request] contains a body, it will be decoded per the [acceptedContentTypes] and deserialized into the [Query.values] property via [ManagedObject.readFromMap]. - Query? query; - - /// Overrides [ResourceController.willProcessRequest] to set up the [query] based on the request. - /// - /// This method checks if there's a path variable matching the primary key of [InstanceType], - /// and if so, sets up the [query] to filter by this primary key value. - /// - /// Returns a [Future] that completes with either the [Request] or a [Response]. - @override - FutureOr willProcessRequest(Request req) { - if (req.path.orderedVariableNames.isNotEmpty) { - final firstVarName = req.path.orderedVariableNames.first; - final idValue = req.path.variables[firstVarName]; - - if (idValue != null) { - final primaryKeyDesc = - query!.entity.attributes[query!.entity.primaryKey]!; - if (primaryKeyDesc.isAssignableWith(idValue)) { - query!.where((o) => o[query!.entity.primaryKey]).equalTo(idValue); - } else if (primaryKeyDesc.type!.kind == - ManagedPropertyType.bigInteger || - primaryKeyDesc.type!.kind == ManagedPropertyType.integer) { - try { - query! - .where((o) => o[query!.entity.primaryKey]) - .equalTo(int.parse(idValue)); - } on FormatException { - return Response.notFound(); - } - } else { - return Response.notFound(); - } - } - } - - return super.willProcessRequest(req); - } - - /// Overrides [ResourceController.didDecodeRequestBody] to populate [query.values] with the decoded request body. - /// - /// This method reads the decoded request body into [query.values] and removes the primary key - /// from the backing map to prevent accidental updates to the primary key. - /// - /// [body] is the decoded request body. - @override - void didDecodeRequestBody(RequestBody body) { - query!.values.readFromMap(body.as()); - query!.values.removePropertyFromBackingMap(query!.values.entity.primaryKey); - } -} diff --git a/packages/http/lib/src/request.dart b/packages/http/lib/src/request.dart deleted file mode 100644 index ec8a690..0000000 --- a/packages/http/lib/src/request.dart +++ /dev/null @@ -1,471 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; - -/// A single HTTP request. -/// -/// Instances of this class travel through a [Controller] chain to be responded to, sometimes acquiring values -/// as they go through controllers. Each instance of this class has a standard library [HttpRequest]. You should not respond -/// directly to the [HttpRequest], as [Controller]s take that responsibility. -class Request implements RequestOrResponse { - /// Creates an instance of [Request], no need to do so manually. - Request(this.raw) - : path = RequestPath(raw.uri.pathSegments), - body = RequestBody(raw); - - /// The underlying [HttpRequest] of this instance. - /// - /// Use this property to access values from the HTTP request that aren't accessible through this instance. - /// - /// You should typically not manipulate this property's [HttpRequest.response]. By default, Conduit controls - /// the response through its [Controller]s. - /// - /// If you wish to respond to a request manually - and prohibit Conduit from responding to the request - you must - /// remove this instance from the request channel. To remove a request from the channel, return null from a [Controller] - /// handler method instead of a [Response] or [Request]. For example: - /// - /// router.route("/raw").linkFunction((req) async { - /// req.response.statusCode = 200; - /// await req.response.close(); // Respond manually to request - /// return null; // Take request out of channel; no subsequent controllers will see this request. - /// }); - final HttpRequest raw; - - /// HTTP method of this request. - /// - /// Always uppercase. e.g., GET, POST, PUT. - String get method => raw.method.toUpperCase(); - - /// The path of the request URI. - /// - /// Provides convenient access to the request URI path. Also provides path variables and wildcard path values - /// after this instance is handled by a [Router]. - final RequestPath path; - - /// The request body object. - /// - /// This object contains the request body if one exists and behavior for decoding it according - /// to this instance's content-type. See [RequestBody] for details on decoding the body into - /// an object (or objects). - /// - /// This value is is always non-null. If there is no request body, [RequestBody.isEmpty] is true. - final RequestBody body; - - /// Information about the client connection. - /// - /// Note: accessing this property incurs a significant performance penalty. - HttpConnectionInfo? get connectionInfo => raw.connectionInfo; - - /// The response object of this [Request]. - /// - /// Do not write to this value manually. [Controller]s are responsible for - /// using a [Response] instance to fill out this property. - HttpResponse get response => raw.response; - - /// Authorization information associated with this request. - /// - /// When this request goes through an [Authorizer], this value will be set with - /// permission information from the authenticator. Use this to determine client, resource owner - /// or other properties of the authentication information in the request. This value will be - /// null if no permission has been set. - Authorization? authorization; - - /// List of response modifiers to be applied before sending the response. - List? _responseModifiers; - - /// The acceptable content types for a [Response] returned for this instance. - /// - /// This list is determined by parsing the `Accept` header (or the concatenation - /// of multiple `Accept` headers). The list is ordered such the more desirable - /// content-types appear earlier in the list. Desirability is determined by - /// a q-value (if one exists) and the specificity of the content-type. - /// - /// See also [acceptsContentType]. - List get acceptableContentTypes { - if (_cachedAcceptableTypes == null) { - try { - final contentTypes = raw.headers[HttpHeaders.acceptHeader] - ?.expand((h) => h.split(",").map((s) => s.trim())) - .where((h) => h.isNotEmpty) - .map(ContentType.parse) - .toList() ?? - []; - - contentTypes.sort((c1, c2) { - final num q1 = num.parse(c1.parameters["q"] ?? "1.0"); - final q2 = num.parse(c2.parameters["q"] ?? "1.0"); - - final comparison = q1.compareTo(q2); - if (comparison == 0) { - if (c1.primaryType == "*" && c2.primaryType != "*") { - return 1; - } else if (c1.primaryType != "*" && c2.primaryType == "*") { - return -1; - } - - if (c1.subType == "*" && c2.subType != "*") { - return 1; - } else if (c1.subType != "*" && c2.subType == "*") { - return -1; - } - } - - return -comparison; - }); - - _cachedAcceptableTypes = contentTypes; - } catch (_) { - throw Response.badRequest( - body: {"error": "accept header is malformed"}, - ); - } - } - return _cachedAcceptableTypes!; - } - - /// Cached list of acceptable content types. - List? _cachedAcceptableTypes; - - /// Whether a [Response] may contain a body of type [contentType]. - /// - /// This method searches [acceptableContentTypes] for a match with [contentType]. If one exists, - /// this method returns true. Otherwise, it returns false. - /// - /// Note that if no Accept header is present, this method always returns true. - bool acceptsContentType(ContentType contentType) { - if (acceptableContentTypes.isEmpty) { - return true; - } - - return acceptableContentTypes.any((acceptable) { - if (acceptable.primaryType == "*") { - return true; - } - - if (acceptable.primaryType == contentType.primaryType) { - if (acceptable.subType == "*") { - return true; - } - - if (acceptable.subType == contentType.subType) { - return true; - } - } - - return false; - }); - } - - /// Whether or not this request is a CORS request. - /// - /// This is true if there is an Origin header. - bool get isCORSRequest => raw.headers.value("origin") != null; - - /// Whether or not this is a CORS preflight request. - /// - /// This is true if the request HTTP method is OPTIONS and the headers contains Access-Control-Request-Method. - bool get isPreflightRequest { - return isCORSRequest && - raw.method == "OPTIONS" && - raw.headers.value("access-control-request-method") != null; - } - - /// Container for any data a [Controller] wants to attach to this request for the purpose of being used by a later [Controller]. - /// - /// Use this property to attach data to a [Request] for use by later [Controller]s. - Map attachments = {}; - - /// The timestamp for when this request was received. - DateTime receivedDate = DateTime.now().toUtc(); - - /// The timestamp for when this request was responded to. - /// - /// Used for logging. - DateTime? respondDate; - - /// Allows a [Controller] to modify the response eventually created for this request, without creating that response itself. - /// - /// Executes [modifier] prior to sending the HTTP response for this request. Modifiers are executed in the order they were added and may contain - /// modifiers from other [Controller]s. Modifiers are executed prior to any data encoded or is written to the network socket. - /// - /// This is valuable for middleware that wants to include some information in the response, but some other controller later in the channel - /// will create the response. [modifier] will run prior to - /// - /// Usage: - /// - /// Future handle(Request request) async { - /// request.addResponseModifier((r) { - /// r.headers["x-rate-limit-remaining"] = 200; - /// }); - /// return request; - /// } - void addResponseModifier(void Function(Response response) modifier) { - _responseModifiers ??= []; - _responseModifiers!.add(modifier); - } - - /// Returns a sanitized version of the request headers as a string. - String get _sanitizedHeaders { - final StringBuffer buf = StringBuffer("{"); - - raw.headers.forEach((k, v) { - buf.write("${_truncatedString(k)} : ${_truncatedString(v.join(","))}\\n"); - }); - buf.write("}"); - - return buf.toString(); - } - - /// Truncates a string to a specified length, adding an ellipsis if truncated. - String _truncatedString(String originalString, {int charSize = 128}) { - if (originalString.length <= charSize) { - return originalString; - } - return "${originalString.substring(0, charSize)} ... (${originalString.length - charSize} truncated bytes)"; - } - - /// Sends a [Response] to this [Request]'s client. - /// - /// Do not invoke this method directly. - /// - /// [Controller]s invoke this method to respond to this request. - /// - /// Once this method has executed, the [Request] is no longer valid. All headers from [conduitResponse] are - /// added to the HTTP response. If [conduitResponse] has a [Response.body], this request will attempt to encode the body data according to the - /// Content-Type in the [conduitResponse]'s [Response.headers]. - /// - Future respond(Response conduitResponse) { - respondDate = DateTime.now().toUtc(); - - final modifiers = _responseModifiers; - _responseModifiers = null; - modifiers?.forEach((modifier) { - modifier(conduitResponse); - }); - - final _Reference compressionType = _Reference(null); - var body = conduitResponse.body; - if (body is! Stream) { - // Note: this pre-encodes the body in memory, such that encoding fails this will throw and we can return a 500 - // because we have yet to write to the response. - body = _responseBodyBytes(conduitResponse, compressionType); - } - - response.statusCode = conduitResponse.statusCode!; - conduitResponse.headers.forEach((k, v) { - response.headers.add(k, v as Object); - }); - - if (conduitResponse.cachePolicy != null) { - response.headers.add( - HttpHeaders.cacheControlHeader, - conduitResponse.cachePolicy!.headerValue, - ); - } - - if (body == null) { - response.headers.removeAll(HttpHeaders.contentTypeHeader); - return response.close(); - } - - response.headers.add( - HttpHeaders.contentTypeHeader, - conduitResponse.contentType.toString(), - ); - - if (body is List) { - if (compressionType.value != null) { - response.headers - .add(HttpHeaders.contentEncodingHeader, compressionType.value!); - } - response.headers.add(HttpHeaders.contentLengthHeader, body.length); - - response.add(body); - - return response.close(); - } else if (body is Stream) { - // Otherwise, body is stream - final bodyStream = _responseBodyStream(conduitResponse, compressionType); - if (compressionType.value != null) { - response.headers - .add(HttpHeaders.contentEncodingHeader, compressionType.value!); - } - response.headers.add(HttpHeaders.transferEncodingHeader, "chunked"); - response.bufferOutput = conduitResponse.bufferOutput; - - return response.addStream(bodyStream).then((_) { - return response.close(); - }).catchError((e, StackTrace st) { - throw HTTPStreamingException(e, st); - }); - } - - throw StateError("Invalid response body. Could not encode."); - } - - /// Encodes the response body as bytes, applying compression if necessary. - List? _responseBodyBytes( - Response resp, - _Reference compressionType, - ) { - if (resp.body == null) { - return null; - } - - Codec>? codec; - if (resp.encodeBody) { - codec = - CodecRegistry.defaultInstance.codecForContentType(resp.contentType); - } - - // todo(joeconwaystk): Set minimum threshold on number of bytes needed to perform gzip, do not gzip otherwise. - // There isn't a great way of doing this that I can think of except splitting out gzip from the fused codec, - // have to measure the value of fusing vs the cost of gzipping smaller data. - final canGzip = CodecRegistry.defaultInstance - .isContentTypeCompressable(resp.contentType) && - _acceptsGzipResponseBody; - - if (codec == null) { - if (resp.body is! List) { - throw StateError( - "Invalid response body. Body of type '${resp.body.runtimeType}' cannot be encoded as content-type '${resp.contentType}'.", - ); - } - - final bytes = resp.body as List; - if (canGzip) { - compressionType.value = "gzip"; - return gzip.encode(bytes); - } - return bytes; - } - - if (canGzip) { - compressionType.value = "gzip"; - codec = codec.fuse(gzip); - } - - return codec.encode(resp.body); - } - - /// Encodes the response body as a stream, applying compression if necessary. - Stream> _responseBodyStream( - Response resp, - _Reference compressionType, - ) { - Codec>? codec; - if (resp.encodeBody) { - codec = - CodecRegistry.defaultInstance.codecForContentType(resp.contentType); - } - - final canGzip = CodecRegistry.defaultInstance - .isContentTypeCompressable(resp.contentType) && - _acceptsGzipResponseBody; - if (codec == null) { - if (resp.body is! Stream>) { - throw StateError( - "Invalid response body. Body of type '${resp.body.runtimeType}' cannot be encoded as content-type '${resp.contentType}'.", - ); - } - - final stream = resp.body as Stream>; - if (canGzip) { - compressionType.value = "gzip"; - return gzip.encoder.bind(stream); - } - - return stream; - } - - if (canGzip) { - compressionType.value = "gzip"; - codec = codec.fuse(gzip); - } - - return codec.encoder.bind(resp.body as Stream); - } - - /// Whether the client accepts gzip-encoded response bodies. - bool get _acceptsGzipResponseBody { - return raw.headers[HttpHeaders.acceptEncodingHeader] - ?.any((v) => v.split(",").any((s) => s.trim() == "gzip")) ?? - false; - } - - @override - String toString() { - return "${raw.method} ${raw.uri} (${receivedDate.millisecondsSinceEpoch})"; - } - - /// A string that represents more details about the request, typically used for logging. - /// - /// Note: Setting includeRequestIP to true creates a significant performance penalty. - String toDebugString({ - bool includeElapsedTime = true, - bool includeRequestIP = false, - bool includeMethod = true, - bool includeResource = true, - bool includeStatusCode = true, - bool includeContentSize = false, - bool includeHeaders = false, - }) { - final builder = StringBuffer(); - if (includeRequestIP) { - builder.write("${raw.connectionInfo?.remoteAddress.address} "); - } - if (includeMethod) { - builder.write("${raw.method} "); - } - if (includeResource) { - builder.write("${raw.uri} "); - } - if (includeElapsedTime && respondDate != null) { - builder - .write("${respondDate!.difference(receivedDate).inMilliseconds}ms "); - } - if (includeStatusCode) { - builder.write("${raw.response.statusCode} "); - } - if (includeContentSize) { - builder.write("${raw.response.contentLength} "); - } - if (includeHeaders) { - builder.write("$_sanitizedHeaders "); - } - - return builder.toString(); - } -} - -/// Exception thrown when there's an error during HTTP streaming. -class HTTPStreamingException implements Exception { - /// Creates a new [HTTPStreamingException] with the given underlying exception and stack trace. - HTTPStreamingException(this.underlyingException, this.trace); - - /// The underlying exception that caused the streaming error. - dynamic underlyingException; - - /// The stack trace associated with the underlying exception. - StackTrace trace; -} - -/// A reference wrapper class for holding mutable values. -class _Reference { - /// Creates a new [_Reference] with the given initial value. - _Reference(this.value); - - /// The wrapped value. - T? value; -} diff --git a/packages/http/lib/src/request_body.dart b/packages/http/lib/src/request_body.dart deleted file mode 100644 index 9e68a20..0000000 --- a/packages/http/lib/src/request_body.dart +++ /dev/null @@ -1,142 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'package:protevus_http/http.dart'; - -/// Objects that represent a request body, and can be decoded into Dart objects. -/// -/// Every instance of [Request] has a [Request.body] property of this type. Use -/// [decode] to convert the contents of this object into a Dart type (e.g, [Map] or [List]). -/// -/// See also [CodecRegistry] for how decoding occurs. -class RequestBody extends BodyDecoder { - /// Creates a new instance of this type. - /// - /// Instances of this type decode [request]'s body based on its content-type. - /// - /// See [CodecRegistry] for more information about how data is decoded. - /// - /// Decoded data is cached the after it is decoded. - /// - /// [request] The HttpRequest object to be decoded. - RequestBody(HttpRequest super.request) - : _request = request, - _originalByteStream = request; - - /// The maximum size of a request body. - /// - /// A request with a body larger than this size will be rejected. Value is in bytes. Defaults to 10MB (1024 * 1024 * 10). - static int maxSize = 1024 * 1024 * 10; - - /// The original HttpRequest object. - final HttpRequest _request; - - /// Checks if the request has content. - /// - /// Returns true if the request has a content length or uses chunked transfer encoding. - bool get _hasContent => - _hasContentLength || _request.headers.chunkedTransferEncoding; - - /// Checks if the request has a content length. - /// - /// Returns true if the request has a content length greater than 0. - bool get _hasContentLength => (_request.headers.contentLength) > 0; - - /// Gets the byte stream of the request body. - /// - /// If the content length is specified and doesn't exceed [maxSize], returns the original stream. - /// Otherwise, buffers the stream and checks for size limits. - /// - /// Throws a [Response] with status 413 if the body size exceeds [maxSize]. - @override - Stream> get bytes { - // If content-length is specified, then we can check it for maxSize - // and just return the original stream. - if (_hasContentLength) { - if (_request.headers.contentLength > maxSize) { - throw Response( - HttpStatus.requestEntityTooLarge, - null, - {"error": "entity length exceeds maximum"}, - ); - } - - return _originalByteStream; - } - - // If content-length is not specified (e.g., chunked), - // then we need to check how many bytes we've read to ensure we haven't - // crossed maxSize - if (_bufferingController == null) { - _bufferingController = StreamController>(sync: true); - - _originalByteStream.listen( - (chunk) { - _bytesRead += chunk.length; - if (_bytesRead > maxSize) { - _bufferingController!.addError( - Response( - HttpStatus.requestEntityTooLarge, - null, - {"error": "entity length exceeds maximum"}, - ), - ); - _bufferingController!.close(); - return; - } - - _bufferingController!.add(chunk); - }, - onDone: () { - _bufferingController!.close(); - }, - onError: (Object e, StackTrace st) { - if (!_bufferingController!.isClosed) { - _bufferingController!.addError(e, st); - _bufferingController!.close(); - } - }, - cancelOnError: true, - ); - } - - return _bufferingController!.stream; - } - - /// Gets the content type of the request. - /// - /// Returns null if no content type is specified. - @override - ContentType? get contentType => _request.headers.contentType; - - /// Checks if the request body is empty. - /// - /// Returns true if the request has no content. - @override - bool get isEmpty => !_hasContent; - - /// Checks if the request body is form data. - /// - /// Returns true if the content type is "application/x-www-form-urlencoded". - bool get isFormData => - contentType != null && - contentType!.primaryType == "application" && - contentType!.subType == "x-www-form-urlencoded"; - - /// The original byte stream of the request. - final Stream> _originalByteStream; - - /// A buffering controller for the byte stream when content length is not specified. - StreamController>? _bufferingController; - - /// The number of bytes read from the request body. - int _bytesRead = 0; -} diff --git a/packages/http/lib/src/request_path.dart b/packages/http/lib/src/request_path.dart deleted file mode 100644 index 8104224..0000000 --- a/packages/http/lib/src/request_path.dart +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// Stores path info for a [Request]. -/// -/// Contains the raw path string, the path as segments and values created by routing a request. -/// -/// Note: The properties [variables], [orderedVariableNames] and [remainingPath] are not set until -/// after the owning request has passed through a [Router]. -class RequestPath { - /// Default constructor for [RequestPath]. - /// - /// There is no need to invoke this constructor manually. - /// - /// [segments] is a list of path segments. - RequestPath(this.segments); - - /// Sets the route specification for this request path. - /// - /// [spec] is the [RouteSpecification] to set. - /// [segmentOffset] is the offset to start processing segments from (default is 0). - void setSpecification(RouteSpecification spec, {int segmentOffset = 0}) { - final requestIterator = segments.iterator; - for (var i = 0; i < segmentOffset; i++) { - requestIterator.moveNext(); - } - - for (final segment in spec.segments) { - if (!requestIterator.moveNext()) { - remainingPath = ""; - return; - } - final requestSegment = requestIterator.current; - - if (segment.isVariable) { - variables[segment.variableName.toString()] = requestSegment; - orderedVariableNames.add(segment.variableName!); - } else if (segment.isRemainingMatcher) { - final remaining = []; - remaining.add(requestIterator.current); - while (requestIterator.moveNext()) { - remaining.add(requestIterator.current); - } - remainingPath = remaining.join("/"); - return; - } - } - } - - /// A [Map] of path variables. - /// - /// If a path has variables (indicated by the :variable syntax), - /// the matching segments for the path variables will be stored in the map. The key - /// will be the variable name (without the colon) and the value will be the - /// path segment as a string. - /// - /// Consider a match specification /users/:id. If the evaluated path is - /// /users/2 - /// This property will be {'id' : '2'}. - Map variables = {}; - - /// A list of the segments in a matched path. - /// - /// This property will contain every segment of the matched path, including - /// constant segments. It will not contain any part of the path caught by - /// the asterisk 'match all' token (*), however. Those are in [remainingPath]. - final List segments; - - /// If a match specification uses the 'match all' token (*), - /// the part of the path matched by that token will be stored in this property. - /// - /// The remaining path will will be a single string, including any path delimiters (/), - /// but will not have a leading path delimiter. - String? remainingPath; - - /// An ordered list of variable names (the keys in [variables]) based on their position in the path. - /// - /// If no path variables are present in the request, this list is empty. Only path variables that are - /// available for the specific request are in this list. For example, if a route has two path variables, - /// but the incoming request this [RequestPath] represents only has one variable, only that one variable - /// will appear in this property. - List orderedVariableNames = []; - - /// The path of the requested URI. - /// - /// Always contains a leading '/', but never a trailing '/'. - String get string => "/${segments.join("/")}"; -} diff --git a/packages/http/lib/src/resource_controller.dart b/packages/http/lib/src/resource_controller.dart deleted file mode 100755 index 0df6dfc..0000000 --- a/packages/http/lib/src/resource_controller.dart +++ /dev/null @@ -1,413 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:ffi'; -import 'dart:io'; -import 'package:collection/collection.dart' show IterableExtension; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:logging/logging.dart'; -import 'package:meta/meta.dart'; - -/// Controller for operating on an HTTP Resource. -/// -/// [ResourceController]s provide a means to organize the logic for all operations on an HTTP resource. They also provide conveniences for handling these operations. -/// -/// This class must be subclassed. Its instance methods handle operations on an HTTP resource. For example, the following -/// are operations: 'GET /employees', 'GET /employees/:id' and 'POST /employees'. An instance method is assigned to handle one of these operations. For example: -/// -/// class EmployeeController extends ResourceController { -/// @Operation.post() -/// Future createEmployee(...) async => Response.ok(null); -/// } -/// -/// Instance methods must have [Operation] annotation to respond to a request (see also [Operation.get], [Operation.post], [Operation.put] and [Operation.delete]). These -/// methods are called *operation methods*. Operation methods also take a variable list of path variables. An operation method is called if the incoming request's method and -/// present path variables match the operation annotation. -/// -/// For example, the route `/employees/[:id]` contains an optional route variable named `id`. -/// A subclass can implement two operation methods, one for when `id` was present and the other for when it was not: -/// -/// class EmployeeController extends ResourceController { -/// // This method gets invoked when the path is '/employees' -/// @Operation.get() -/// Future getEmployees() async { -/// return Response.ok(employees); -/// } -/// -/// // This method gets invoked when the path is '/employees/id' -/// @Operation.get('id') -/// Future getEmployees(@Bind.path("id") int id) async { -/// return Response.ok(employees[id]); -/// } -/// } -/// -/// If there isn't an operation method for a request, an 405 Method Not Allowed error response is sent to the client and no operation methods are called. -/// -/// For operation methods to correctly function, a request must have previously been handled by a [Router] to parse path variables. -/// -/// Values from a request may be bound to operation method parameters. Parameters must be annotated with [Bind.path], [Bind.query], [Bind.header], or [Bind.body]. -/// For example, the following binds an optional query string parameter 'name' to the 'name' argument: -/// -/// class EmployeeController extends ResourceController { -/// @Operation.get() -/// Future getEmployees({@Bind.query("name") String name}) async { -/// if (name == null) { -/// return Response.ok(employees); -/// } -/// -/// return Response.ok(employees.where((e) => e.name == name).toList()); -/// } -/// } -/// -/// Bindings will automatically parse values into other types and validate that requests have the desired values. See [Bind] for all possible bindings and https://conduit.io/docs/http/resource_controller/ for more details. -/// -/// To access the request directly, use [request]. Note that the [Request.body] of [request] will be decoded prior to invoking an operation method. -abstract class ResourceController extends Controller - implements Recyclable { - /// Constructor for ResourceController. - ResourceController() { - _runtime = - (RuntimeContext.current.runtimes[runtimeType] as ControllerRuntime?) - ?.resourceController; - } - - /// Getter for the recycled state of the controller. - @override - void get recycledState => nullptr; - - /// The runtime for this ResourceController. - ResourceControllerRuntime? _runtime; - - /// The request being processed by this [ResourceController]. - /// - /// It is this [ResourceController]'s responsibility to return a [Response] object for this request. Operation methods - /// may access this request to determine how to respond to it. - Request? request; - - /// Parameters parsed from the URI of the request, if any exist. - /// - /// These values are attached by a [Router] instance that precedes this [Controller]. Is null - /// if no [Router] preceded the controller and is the empty map if there are no values. The keys - /// are the case-sensitive name of the path variables as defined by [Router.route]. - Map get pathVariables => request!.path.variables; - - /// Types of content this [ResourceController] will accept. - /// - /// If a request is sent to this instance and has an HTTP request body and the Content-Type of the body is in this list, - /// the request will be accepted and the body will be decoded according to that Content-Type. - /// - /// If the Content-Type of the request isn't within this list, the [ResourceController] - /// will automatically respond with an Unsupported Media Type response. - /// - /// By default, an instance will accept HTTP request bodies with 'application/json; charset=utf-8' encoding. - List acceptedContentTypes = [ContentType.json]; - - /// The default content type of responses from this [ResourceController]. - /// - /// If the [Response.contentType] has not explicitly been set by a operation method in this controller, the controller will set - /// that property with this value. Defaults to "application/json". - ContentType responseContentType = ContentType.json; - - /// Executed prior to handling a request, but after the [request] has been set. - /// - /// This method is used to do pre-process setup and filtering. The [request] will be set, but its body will not be decoded - /// nor will the appropriate operation method be selected yet. By default, returns the request. If this method returns a [Response], this - /// controller will stop processing the request and immediately return the [Response] to the HTTP client. - /// - /// May not return any other [Request] than [req]. - FutureOr willProcessRequest(Request req) => req; - - /// Callback invoked prior to decoding a request body. - /// - /// This method is invoked prior to decoding the request body. - void willDecodeRequestBody(RequestBody body) {} - - /// Callback to indicate when a request body has been processed. - /// - /// This method is called after the body has been processed by the decoder, but prior to the request being - /// handled by the selected operation method. If there is no HTTP request body, - /// this method is not called. - void didDecodeRequestBody(RequestBody body) {} - - /// Restores the state of the controller. - @override - void restore(void state) { - /* no op - fetched from static cache in Runtime */ - } - - /// Handles the incoming request. - @override - FutureOr handle(Request request) async { - this.request = request; - - final preprocessedResult = await willProcessRequest(request); - if (preprocessedResult is Request) { - return _process(); - } else if (preprocessedResult is Response) { - return preprocessedResult; - } - - throw StateError( - "'$runtimeType' returned invalid object from 'willProcessRequest'. Must return 'Request' or 'Response'.", - ); - } - - /// Returns a documented list of [APIParameter] for [operation]. - /// - /// This method will automatically create [APIParameter]s for any bound properties and operation method arguments. - /// If an operation method requires additional parameters that cannot be bound using [Bind] annotations, override - /// this method. When overriding this method, call the superclass' implementation and add the additional parameters - /// to the returned list before returning the combined list. - @mustCallSuper - List? documentOperationParameters( - APIDocumentContext context, - Operation? operation, - ) { - return _runtime!.documenter - ?.documentOperationParameters(this, context, operation); - } - - /// Returns a documented summary for [operation]. - /// - /// By default, this method returns null and the summary is derived from documentation comments - /// above the operation method. You may override this method to manually add a summary to an operation. - String? documentOperationSummary( - APIDocumentContext context, - Operation? operation, - ) { - return null; - } - - /// Returns a documented description for [operation]. - /// - /// By default, this method returns null and the description is derived from documentation comments - /// above the operation method. You may override this method to manually add a description to an operation. - String? documentOperationDescription( - APIDocumentContext context, - Operation? operation, - ) { - return null; - } - - /// Returns a documented request body for [operation]. - /// - /// If an operation method binds an [Bind.body] argument or accepts form data, this method returns a [APIRequestBody] - /// that describes the bound body type. You may override this method to take an alternative approach or to augment the - /// automatically generated request body documentation. - APIRequestBody? documentOperationRequestBody( - APIDocumentContext context, - Operation? operation, - ) { - return _runtime!.documenter - ?.documentOperationRequestBody(this, context, operation); - } - - /// Returns a map of possible responses for [operation]. - /// - /// To provide documentation for an operation, you must override this method and return a map of - /// possible responses. The key is a [String] representation of a status code (e.g., "200") and the value - /// is an [APIResponse] object. - Map documentOperationResponses( - APIDocumentContext context, - Operation operation, - ) { - return {"200": APIResponse("Successful response.")}; - } - - /// Returns a list of tags for [operation]. - /// - /// By default, this method will return the name of the class. This groups each operation - /// defined by this controller in the same tag. You may override this method - /// to provide additional tags. You should call the superclass' implementation to retain - /// the controller grouping tag. - List documentOperationTags( - APIDocumentContext context, - Operation? operation, - ) { - final tag = "$runtimeType".replaceAll("Controller", ""); - return [tag]; - } - - /// Documents the operations for this controller. - @override - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ) { - return _runtime!.documenter!.documentOperations(this, context, route, path); - } - - /// Documents the components for this controller. - @override - void documentComponents(APIDocumentContext context) { - _runtime!.documenter?.documentComponents(this, context); - } - - /// Checks if the request content type is supported. - bool _requestContentTypeIsSupported(Request? req) { - final incomingContentType = request!.raw.headers.contentType; - return acceptedContentTypes.firstWhereOrNull((ct) { - return ct.primaryType == incomingContentType!.primaryType && - ct.subType == incomingContentType.subType; - }) != - null; - } - - /// Returns a list of allowed HTTP methods for the given path variables. - List _allowedMethodsForPathVariables( - Iterable pathVariables, - ) { - return _runtime!.operations - .where((op) => op.isSuitableForRequest(null, pathVariables.toList())) - .map((op) => op.httpMethod) - .toList(); - } - - /// Processes the request and returns a response. - Future _process() async { - if (!request!.body.isEmpty) { - if (!_requestContentTypeIsSupported(request)) { - return Response(HttpStatus.unsupportedMediaType, null, null); - } - } - - final operation = _runtime!.getOperationRuntime( - request!.raw.method, - request!.path.variables.keys.toList(), - ); - if (operation == null) { - throw Response( - 405, - { - "Allow": _allowedMethodsForPathVariables(request!.path.variables.keys) - .join(", ") - }, - null, - ); - } - - if (operation.scopes != null) { - if (request!.authorization == null) { - // todo: this should be done compile-time - Logger("conduit").warning( - "'$runtimeType' must be linked to channel that contains an 'Authorizer', because " - "it uses 'Scope' annotation for one or more of its operation methods."); - throw Response.serverError(); - } - - if (!AuthScope.verify(operation.scopes, request!.authorization!.scopes)) { - throw Response.forbidden( - body: { - "error": "insufficient_scope", - "scope": operation.scopes!.map((s) => s.toString()).join(" ") - }, - ); - } - } - - if (!request!.body.isEmpty) { - willDecodeRequestBody(request!.body); - await request!.body.decode(); - didDecodeRequestBody(request!.body); - } - - /* Begin decoding bindings */ - final args = ResourceControllerOperationInvocationArgs(); - final errors = []; - dynamic errorCatchWrapper(ResourceControllerParameter p, f) { - try { - return f(); - } on ArgumentError catch (e) { - errors.add( - "${e.message ?? 'ArgumentError'} for ${p.locationName} value '${p.name}'", - ); - } - return null; - } - - void checkIfMissingRequiredAndEmitErrorIfSo( - ResourceControllerParameter p, - dynamic v, - ) { - if (v == null && p.isRequired) { - if (p.location == BindingType.body) { - errors.add("missing required ${p.locationName}"); - } else { - errors.add("missing required ${p.locationName} '${p.name ?? ""}'"); - } - return; - } - } - - args.positionalArguments = operation.positionalParameters - .map((p) { - return errorCatchWrapper(p, () { - final value = p.decode(request); - - checkIfMissingRequiredAndEmitErrorIfSo(p, value); - - return value; - }); - }) - .where((p) => p != null) - .toList(); - - final namedEntries = operation.namedParameters - .map((p) { - return errorCatchWrapper(p, () { - final value = p.decode(request); - if (value == null) { - return null; - } - - return MapEntry(p.symbolName, value); - }); - }) - .where((p) => p != null) - .cast>(); - - args.namedArguments = Map.fromEntries(namedEntries); - - final ivarEntries = _runtime!.ivarParameters! - .map((p) { - return errorCatchWrapper(p, () { - final value = p.decode(request); - - checkIfMissingRequiredAndEmitErrorIfSo(p, value); - - return MapEntry(p.symbolName, value); - }); - }) - .where((e) => e != null) - .cast>(); - - args.instanceVariables = Map.fromEntries(ivarEntries); - - /* finished decoding bindings, checking for errors */ - - if (errors.isNotEmpty) { - return Response.badRequest(body: {"error": errors.join(", ")}); - } - - /* bind and invoke */ - _runtime!.applyRequestProperties(this, args); - final response = await operation.invoker(this, args); - if (!response.hasExplicitlySetContentType) { - response.contentType = responseContentType; - } - - return response; - } -} diff --git a/packages/http/lib/src/resource_controller_bindings.dart b/packages/http/lib/src/resource_controller_bindings.dart deleted file mode 100644 index bb90062..0000000 --- a/packages/http/lib/src/resource_controller_bindings.dart +++ /dev/null @@ -1,288 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// Binds an instance method in [ResourceController] to an operation. -/// -/// An operation is a request method (e.g., GET, POST) and a list of path variables. A [ResourceController] implements -/// an operation method for each operation it handles (e.g., GET /users/:id, POST /users). A method with this annotation -/// will be invoked when a [ResourceController] handles a request where [method] matches the request's method and -/// *all* [pathVariables] are present in the request's path. For example: -/// -/// class MyController extends ResourceController { -/// @Operation.get('id') -/// Future getOne(@Bind.path('id') int id) async { -/// return Response.ok(objects[id]); -/// } -/// } -class Operation { - /// Creates an [Operation] with the specified [method] and optional path variables. - const Operation( - this.method, [ - String? pathVariable1, - String? pathVariable2, - String? pathVariable3, - String? pathVariable4, - ]) : _pathVariable1 = pathVariable1, - _pathVariable2 = pathVariable2, - _pathVariable3 = pathVariable3, - _pathVariable4 = pathVariable4; - - /// Creates a GET [Operation] with optional path variables. - const Operation.get([ - String? pathVariable1, - String? pathVariable2, - String? pathVariable3, - String? pathVariable4, - ]) : method = "GET", - _pathVariable1 = pathVariable1, - _pathVariable2 = pathVariable2, - _pathVariable3 = pathVariable3, - _pathVariable4 = pathVariable4; - - /// Creates a PUT [Operation] with optional path variables. - const Operation.put([ - String? pathVariable1, - String? pathVariable2, - String? pathVariable3, - String? pathVariable4, - ]) : method = "PUT", - _pathVariable1 = pathVariable1, - _pathVariable2 = pathVariable2, - _pathVariable3 = pathVariable3, - _pathVariable4 = pathVariable4; - - /// Creates a POST [Operation] with optional path variables. - const Operation.post([ - String? pathVariable1, - String? pathVariable2, - String? pathVariable3, - String? pathVariable4, - ]) : method = "POST", - _pathVariable1 = pathVariable1, - _pathVariable2 = pathVariable2, - _pathVariable3 = pathVariable3, - _pathVariable4 = pathVariable4; - - /// Creates a DELETE [Operation] with optional path variables. - const Operation.delete([ - String? pathVariable1, - String? pathVariable2, - String? pathVariable3, - String? pathVariable4, - ]) : method = "DELETE", - _pathVariable1 = pathVariable1, - _pathVariable2 = pathVariable2, - _pathVariable3 = pathVariable3, - _pathVariable4 = pathVariable4; - - /// The HTTP method for this operation. - final String method; - - /// The first path variable (if any). - final String? _pathVariable1; - - /// The second path variable (if any). - final String? _pathVariable2; - - /// The third path variable (if any). - final String? _pathVariable3; - - /// The fourth path variable (if any). - final String? _pathVariable4; - - /// Returns a list of all path variables required for this operation. - List get pathVariables { - return [_pathVariable1, _pathVariable2, _pathVariable3, _pathVariable4] - .fold([], (acc, s) { - if (s != null) { - acc.add(s); - } - return acc; - }); - } -} - -/// Binds elements of an HTTP request to a [ResourceController]'s operation method arguments and properties. -/// -/// See individual constructors and [ResourceController] for more details. -class Bind { - /// Binds an HTTP query parameter to an [ResourceController] property or operation method argument. - /// - /// When the incoming request's [Uri] - /// has a query key that matches [name], the argument or property value is set to the query parameter's value. For example, - /// the request /users?foo=bar would bind the value `bar` to the variable `foo`: - /// - /// @Operation.get() - /// Future getUsers(@Bind.query("foo") String foo) async => ...; - /// - /// [name] is compared case-sensitively, i.e. `Foo` and `foo` are different. - /// - /// Note that if the request is a POST with content-type 'application/x-www-form-urlencoded', - /// the query string in the request body is bound to arguments with this metadata. - /// - /// Parameters with this metadata may be [String], [bool], or any type that implements `parse` (e.g., [int.parse] or [DateTime.parse]). It may also - /// be a [List] of any of the allowed types, for which each query key-value pair in the request [Uri] be available in the list. - /// - /// If the bound parameter is a positional argument in a operation method, it is required for that method. A 400 Bad Request - /// will be sent and the operation method will not be invoked if the request does not contain the query key. - /// - /// If the bound parameter is an optional argument in a operation method, it is optional for that method. The value of - /// the bound property will be null if it was not present in the request. - /// - /// If the bound parameter is a property without any additional metadata, it is optional for all methods in an [ResourceController]. - /// If the bound parameter is a property with [requiredBinding], it is required for all methods in an [ResourceController]. - const Bind.query(this.name) - : bindingType = BindingType.query, - accept = null, - require = null, - ignore = null, - reject = null; - - /// Binds an HTTP request header to an [ResourceController] property or operation method argument. - /// - /// When the incoming request has a header with the name [name], - /// the argument or property is set to the headers's value. For example, - /// a request with the header `Authorization: Basic abcdef` would bind the value `Basic abcdef` to the `authHeader` argument: - /// - /// @Operation.get() - /// Future getUsers(@Bind.header("Authorization") String authHeader) async => ...; - /// - /// [name] is compared case-insensitively; both `Authorization` and `authorization` will match the same header. - /// - /// Parameters with this metadata may be [String], [bool], or any type that implements `parse` (e.g., [int.parse] or [DateTime.parse]). - /// - /// If the bound parameter is a positional argument in a operation method, it is required for that method. A 400 Bad Request - /// will be sent and the operation method will not be invoked if the request does not contain the header. - /// - /// If the bound parameter is an optional argument in a operation method, it is optional for that method. The value of - /// the bound property will be null if it was not present in the request. - /// - /// If the bound parameter is a property without any additional metadata, it is optional for all methods in an [ResourceController]. - /// If the bound parameter is a property with [requiredBinding], it is required for all methods in an [ResourceController]. - const Bind.header(this.name) - : bindingType = BindingType.header, - accept = null, - require = null, - ignore = null, - reject = null; - - /// Binds an HTTP request body to an [ResourceController] property or operation method argument. - /// - /// The body of an incoming - /// request is decoded into the bound argument or property. The argument or property *must* implement [Serializable] or be - /// a [List]. If the property or argument is a [List], the request body must be able to be decoded into - /// a [List] of objects (i.e., a JSON array) and [Serializable.read] is invoked for each object (see this method for parameter details). - /// - /// Example: - /// - /// - /// class UserController extends ResourceController { - /// @Operation.post() - /// Future createUser(@Bind.body() User user) async { - /// final username = user.name; - /// ... - /// } - /// } - /// - /// - /// If the bound parameter is a positional argument in a operation method, it is required for that method. - /// If the bound parameter is an optional argument in a operation method, it is optional for that method. - /// If the bound parameter is a property without any additional metadata, it is optional for all methods in an [ResourceController]. - /// If the bound parameter is a property with [requiredBinding], it is required for all methods in an [ResourceController]. - /// - /// Requirements that are not met will be throw a 400 Bad Request response with the name of the missing header in the JSON error body. - /// No operation method will be called in this case. - /// - /// If not required and not present in a request, the bound arguments and properties will be null when the operation method is invoked. - const Bind.body({this.accept, this.ignore, this.reject, this.require}) - : name = null, - bindingType = BindingType.body; - - /// Binds a route variable from [RequestPath.variables] to an [ResourceController] operation method argument. - /// - /// Routes may have path variables, e.g., a route declared as follows has an optional path variable named 'id': - /// - /// router.route("/users/[:id]"); - /// - /// A operation - /// method is invoked if it has exactly the same path bindings as the incoming request's path variables. For example, - /// consider the above route and a controller with the following operation methods: - /// - /// class UserController extends ResourceController { - /// @Operation.get() - /// Future getUsers() async => Response.ok(getAllUsers()); - /// @Operation.get('id') - /// Future getOneUser(@Bind.path("id") int id) async => Response.ok(getUser(id)); - /// } - /// - /// If the request path is /users/1, /users/2, etc., `getOneUser` is invoked because the path variable `id` is present and matches - /// the [Bind.path] argument. If no path variables are present, `getUsers` is invoked. - const Bind.path(this.name) - : bindingType = BindingType.path, - accept = null, - require = null, - ignore = null, - reject = null; - - /// The name of the binding (for query, header, and path bindings). - final String? name; - - /// The type of binding (query, header, body, or path). - final BindingType bindingType; - - /// List of keys to accept in the request body (for body bindings). - final List? accept; - - /// List of keys to ignore in the request body (for body bindings). - final List? ignore; - - /// List of keys to reject in the request body (for body bindings). - final List? reject; - - /// List of keys required in the request body (for body bindings). - final List? require; -} - -/// Enum representing the types of bindings available. -enum BindingType { query, header, body, path } - -/// Marks an [ResourceController] property binding as required. -/// -/// Bindings are often applied to operation method arguments, in which required vs. optional -/// is determined by whether or not the argument is in required or optional in the method signature. -/// -/// When properties are bound, they are optional by default. Adding this metadata to a bound controller -/// property requires that it for all operation methods. -/// -/// For example, the following controller requires the header 'X-Request-ID' for both of its operation methods: -/// -/// class UserController extends ResourceController { -/// @requiredBinding -/// @Bind.header("x-request-id") -/// String requestID; -/// -/// @Operation.get('id') -/// Future getUser(@Bind.path("id") int id) async -/// => return Response.ok(await getUserByID(id)); -/// -/// @Operation.get() -/// Future getAllUsers() async -/// => return Response.ok(await getUsers()); -/// } -const RequiredBinding requiredBinding = RequiredBinding(); - -/// Class representing a required binding. -/// -/// See [requiredBinding] for more information. -class RequiredBinding { - /// Creates a [RequiredBinding] instance. - const RequiredBinding(); -} diff --git a/packages/http/lib/src/resource_controller_interfaces.dart b/packages/http/lib/src/resource_controller_interfaces.dart deleted file mode 100755 index 352ea10..0000000 --- a/packages/http/lib/src/resource_controller_interfaces.dart +++ /dev/null @@ -1,325 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:collection/collection.dart' show IterableExtension; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Abstract class representing the runtime of a ResourceController. -abstract class ResourceControllerRuntime { - /// List of instance variable parameters. - List? ivarParameters; - - /// List of operations supported by the ResourceController. - late List operations; - - /// Documenter for the ResourceController. - ResourceControllerDocumenter? documenter; - - /// Retrieves the operation runtime for a given method and path variables. - /// - /// [method] The HTTP method. - /// [pathVariables] The list of path variables. - /// - /// Returns the matching [ResourceControllerOperation] or null if not found. - ResourceControllerOperation? getOperationRuntime( - String method, - List pathVariables, - ) { - return operations.firstWhereOrNull( - (op) => op.isSuitableForRequest(method, pathVariables), - ); - } - - /// Applies request properties to the controller. - /// - /// [untypedController] The ResourceController instance. - /// [args] The invocation arguments. - void applyRequestProperties( - ResourceController untypedController, - ResourceControllerOperationInvocationArgs args, - ); -} - -/// Abstract class for documenting a ResourceController. -abstract class ResourceControllerDocumenter { - /// Documents the components of a ResourceController. - /// - /// [rc] The ResourceController instance. - /// [context] The API documentation context. - void documentComponents(ResourceController rc, APIDocumentContext context); - - /// Documents the operation parameters of a ResourceController. - /// - /// [rc] The ResourceController instance. - /// [context] The API documentation context. - /// [operation] The operation to document. - /// - /// Returns a list of [APIParameter] objects. - List documentOperationParameters( - ResourceController rc, - APIDocumentContext context, - Operation? operation, - ); - - /// Documents the operation request body of a ResourceController. - /// - /// [rc] The ResourceController instance. - /// [context] The API documentation context. - /// [operation] The operation to document. - /// - /// Returns an [APIRequestBody] object or null. - APIRequestBody? documentOperationRequestBody( - ResourceController rc, - APIDocumentContext context, - Operation? operation, - ); - - /// Documents the operations of a ResourceController. - /// - /// [rc] The ResourceController instance. - /// [context] The API documentation context. - /// [route] The route string. - /// [path] The API path. - /// - /// Returns a map of operation names to [APIOperation] objects. - Map documentOperations( - ResourceController rc, - APIDocumentContext context, - String route, - APIPath path, - ); -} - -/// Represents an operation in a ResourceController. -class ResourceControllerOperation { - /// Creates a new ResourceControllerOperation. - ResourceControllerOperation({ - required this.scopes, - required this.pathVariables, - required this.httpMethod, - required this.dartMethodName, - required this.positionalParameters, - required this.namedParameters, - required this.invoker, - }); - - /// The required authentication scopes for this operation. - final List? scopes; - - /// The path variables for this operation. - final List pathVariables; - - /// The HTTP method for this operation. - final String httpMethod; - - /// The name of the Dart method implementing this operation. - final String dartMethodName; - - /// The positional parameters for this operation. - final List positionalParameters; - - /// The named parameters for this operation. - final List namedParameters; - - /// The function to invoke this operation. - final Future Function( - ResourceController resourceController, - ResourceControllerOperationInvocationArgs args, - ) invoker; - - /// Checks if a request's method and path variables will select this operation. - /// - /// [requestMethod] The HTTP method of the request. - /// [requestPathVariables] The path variables of the request. - /// - /// Returns true if the operation is suitable for the request, false otherwise. - bool isSuitableForRequest( - String? requestMethod, - List requestPathVariables, - ) { - if (requestMethod != null && requestMethod.toUpperCase() != httpMethod) { - return false; - } - - if (pathVariables.length != requestPathVariables.length) { - return false; - } - - return requestPathVariables.every(pathVariables.contains); - } -} - -/// Represents a parameter in a ResourceController operation. -class ResourceControllerParameter { - /// Creates a new ResourceControllerParameter. - ResourceControllerParameter({ - required this.symbolName, - required this.name, - required this.location, - required this.isRequired, - required dynamic Function(dynamic input)? decoder, - required this.type, - required this.defaultValue, - required this.acceptFilter, - required this.ignoreFilter, - required this.requireFilter, - required this.rejectFilter, - }) : _decoder = decoder; - - /// Creates a typed ResourceControllerParameter. - static ResourceControllerParameter make({ - required String symbolName, - required String? name, - required BindingType location, - required bool isRequired, - required dynamic Function(dynamic input) decoder, - required dynamic defaultValue, - required List? acceptFilter, - required List? ignoreFilter, - required List? requireFilter, - required List? rejectFilter, - }) { - return ResourceControllerParameter( - symbolName: symbolName, - name: name, - location: location, - isRequired: isRequired, - decoder: decoder, - type: T, - defaultValue: defaultValue, - acceptFilter: acceptFilter, - ignoreFilter: ignoreFilter, - requireFilter: requireFilter, - rejectFilter: rejectFilter, - ); - } - - /// The name of the symbol in the Dart code. - final String symbolName; - - /// The name of the parameter in the API. - final String? name; - - /// The type of the parameter. - final Type type; - - /// The default value of the parameter. - final dynamic defaultValue; - - /// The filter for accepted values. - final List? acceptFilter; - - /// The filter for ignored values. - final List? ignoreFilter; - - /// The filter for required values. - final List? requireFilter; - - /// The filter for rejected values. - final List? rejectFilter; - - /// The location of the parameter in the request. - final BindingType location; - - /// Indicates if the parameter is required. - final bool isRequired; - - /// The decoder function for the parameter. - final dynamic Function(dynamic input)? _decoder; - - /// Gets the API parameter location for this parameter. - APIParameterLocation get apiLocation { - switch (location) { - case BindingType.body: - throw StateError('body parameters do not have a location'); - case BindingType.header: - return APIParameterLocation.header; - case BindingType.query: - return APIParameterLocation.query; - case BindingType.path: - return APIParameterLocation.path; - } - } - - /// Gets the location name as a string. - String get locationName { - switch (location) { - case BindingType.query: - return "query"; - case BindingType.body: - return "body"; - case BindingType.header: - return "header"; - case BindingType.path: - return "path"; - } - } - - /// Decodes the parameter value from the request. - /// - /// [request] The HTTP request. - /// - /// Returns the decoded value. - dynamic decode(Request? request) { - switch (location) { - case BindingType.query: - { - final queryParameters = request!.raw.uri.queryParametersAll; - final value = request.body.isFormData - ? request.body.as>>()[name!] - : queryParameters[name!]; - if (value == null) { - return null; - } - return _decoder!(value); - } - - case BindingType.body: - { - if (request!.body.isEmpty) { - return null; - } - return _decoder!(request.body); - } - case BindingType.header: - { - final header = request!.raw.headers[name!]; - if (header == null) { - return null; - } - return _decoder!(header); - } - - case BindingType.path: - { - final path = request!.path.variables[name]; - if (path == null) { - return null; - } - return _decoder!(path); - } - } - } -} - -/// Holds the arguments for invoking a ResourceController operation. -class ResourceControllerOperationInvocationArgs { - /// The instance variables for the invocation. - late Map instanceVariables; - - /// The named arguments for the invocation. - late Map namedArguments; - - /// The positional arguments for the invocation. - late List positionalArguments; -} diff --git a/packages/http/lib/src/resource_controller_scope.dart b/packages/http/lib/src/resource_controller_scope.dart deleted file mode 100644 index a77589d..0000000 --- a/packages/http/lib/src/resource_controller_scope.dart +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_auth/auth.dart'; -import 'package:protevus_http/http.dart'; - -/// Allows [ResourceController]s to have different scope for each operation method. -/// -/// This type is used as an annotation to an operation method declared in a [ResourceController]. -/// -/// If an operation method has this annotation, an incoming [Request.authorization] must have sufficient -/// scope for the method to be executed. If not, a 403 Forbidden response is sent. Sufficient scope -/// requires that *every* listed scope is met by the request. -/// -/// The typical use case is to require more scope for an editing action than a viewing action. Example: -/// -/// class NoteController extends ResourceController { -/// @Scope(['notes.readonly']); -/// @Operation.get('id') -/// Future getNote(@Bind.path('id') int id) async { -/// ... -/// } -/// -/// @Scope(['notes']); -/// @Operation.post() -/// Future createNote() async { -/// ... -/// } -/// } -/// -/// An [Authorizer] *must* have been previously linked in the channel. Otherwise, an error is thrown -/// at runtime. Example: -/// -/// router -/// .route("/notes/[:id]") -/// .link(() => Authorizer.bearer(authServer)) -/// .link(() => NoteController()); -class Scope { - /// Constructor for the Scope class. - /// - /// Creates a new Scope instance with the provided list of scopes. - /// - /// [scopes] is the list of authorization scopes required. - const Scope(this.scopes); - - /// The list of authorization scopes required. - /// - /// This list contains the string representations of the scopes that are - /// required for the annotated operation method. - final List scopes; -} diff --git a/packages/http/lib/src/response.dart b/packages/http/lib/src/response.dart deleted file mode 100644 index 6f13d78..0000000 --- a/packages/http/lib/src/response.dart +++ /dev/null @@ -1,290 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:collection'; -import 'dart:convert'; -import 'dart:io'; -import 'package:protevus_http/http.dart'; - -/// Represents the information in an HTTP response. -/// -/// This object can be used to write an HTTP response and contains conveniences -/// for creating these objects. -class Response implements RequestOrResponse { - /// The default constructor. - /// - /// There exist convenience constructors for common response status codes - /// and you should prefer to use those. - /// - /// [statusCode] The HTTP status code for this response. - /// [headers] A map of HTTP headers for this response. - /// [body] The body content of this response. - Response(int this.statusCode, Map? headers, dynamic body) { - this.body = body; - this.headers = LinkedHashMap( - equals: (a, b) => a.toLowerCase() == b.toLowerCase(), - hashCode: (key) => key.toLowerCase().hashCode); - this.headers.addAll(headers ?? {}); - } - - /// Represents a 200 OK response. - /// - /// [body] The body content of this response. - /// [headers] Optional map of HTTP headers for this response. - Response.ok(dynamic body, {Map? headers}) - : this(HttpStatus.ok, headers, body); - - /// Represents a 201 Created response. - /// - /// [location] A URI that is added as the Location header. - /// [body] Optional body content of this response. - /// [headers] Optional map of HTTP headers for this response. - Response.created( - String location, { - dynamic body, - Map? headers, - }) : this( - HttpStatus.created, - _headersWith(headers, {HttpHeaders.locationHeader: location}), - body, - ); - - /// Represents a 202 Accepted response. - /// - /// [headers] Optional map of HTTP headers for this response. - Response.accepted({Map? headers}) - : this(HttpStatus.accepted, headers, null); - - /// Represents a 204 No Content response. - /// - /// [headers] Optional map of HTTP headers for this response. - Response.noContent({Map? headers}) - : this(HttpStatus.noContent, headers, null); - - /// Represents a 304 Not Modified response. - /// - /// [lastModified] The last modified date of the resource. - /// [cachePolicy] The same policy as applied when this resource was first fetched. - Response.notModified(DateTime lastModified, this.cachePolicy) { - statusCode = HttpStatus.notModified; - headers = {HttpHeaders.lastModifiedHeader: HttpDate.format(lastModified)}; - } - - /// Represents a 400 Bad Request response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.badRequest({Map? headers, dynamic body}) - : this(HttpStatus.badRequest, headers, body); - - /// Represents a 401 Unauthorized response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.unauthorized({Map? headers, dynamic body}) - : this(HttpStatus.unauthorized, headers, body); - - /// Represents a 403 Forbidden response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.forbidden({Map? headers, dynamic body}) - : this(HttpStatus.forbidden, headers, body); - - /// Represents a 404 Not Found response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.notFound({Map? headers, dynamic body}) - : this(HttpStatus.notFound, headers, body); - - /// Represents a 409 Conflict response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.conflict({Map? headers, dynamic body}) - : this(HttpStatus.conflict, headers, body); - - /// Represents a 410 Gone response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.gone({Map? headers, dynamic body}) - : this(HttpStatus.gone, headers, body); - - /// Represents a 500 Internal Server Error response. - /// - /// [headers] Optional map of HTTP headers for this response. - /// [body] Optional body content of this response. - Response.serverError({Map? headers, dynamic body}) - : this(HttpStatus.internalServerError, headers, body); - - /// The default value of a [contentType]. - /// - /// If no [contentType] is set for an instance, this is the value used. By default, this value is - /// [ContentType.json]. - static ContentType defaultContentType = ContentType.json; - - /// An object representing the body of the [Response], which will be encoded when used to [Request.respond]. - /// - /// This is typically a map or list of maps that will be encoded to JSON. If the [body] was previously set with a [Serializable] object - /// or a list of [Serializable] objects, this property will be the already serialized (but not encoded) body. - dynamic get body => _body; - - /// Sets the unencoded response body. - /// - /// This may be any value that can be encoded into an HTTP response body. If this value is a [Serializable] or a [List] of [Serializable], - /// each instance of [Serializable] will transformed via its [Serializable.asMap] method before being set. - set body(dynamic initialResponseBody) { - dynamic serializedBody; - if (initialResponseBody is Serializable) { - serializedBody = initialResponseBody.asMap(); - } else if (initialResponseBody is List) { - serializedBody = - initialResponseBody.map((value) => value.asMap()).toList(); - } - - _body = serializedBody ?? initialResponseBody; - } - - /// The internal storage for the response body. - /// - /// This private variable holds the actual content of the response body. - /// It can be of any type (dynamic) to accommodate various types of response data. - /// The public 'body' getter and setter methods interact with this variable - /// to provide controlled access and manipulation of the response body. - dynamic _body; - - /// Whether or not this instance should buffer its output or send it right away. - /// - /// In general, output should be buffered and therefore this value defaults to 'true'. - /// - /// For long-running requests where data may be made available over time, - /// this value can be set to 'false' to emit bytes to the HTTP client - /// as they are provided. - /// - /// This property has no effect if [body] is not a [Stream]. - bool bufferOutput = true; - - /// Map of headers to send in this response. - /// - /// Where the key is the Header name and value is the Header value. Values are added to the Response body - /// according to [HttpHeaders.add]. - /// - /// The keys of this map are case-insensitive - they will always be lowercased. If the value is a [List], - /// each item in the list will be added separately for the same header name. - /// - /// See [contentType] for behavior when setting 'content-type' in this property. - Map get headers => _headers; - - /// Sets the headers for this response. - /// - /// Clears existing headers and adds all headers from the provided map. - set headers(Map h) { - _headers.clear(); - _headers.addAll(h); - } - - /// A case-insensitive map for storing HTTP headers. - /// - /// This map uses a custom equality and hash function to ensure that header names - /// are treated case-insensitively. For example, 'Content-Type' and 'content-type' - /// are considered the same key. - /// - /// The map is implemented as a [LinkedHashMap] to maintain the order of insertion. - final Map _headers = LinkedHashMap( - equals: (a, b) => a.toLowerCase() == b.toLowerCase(), - hashCode: (key) => key.toLowerCase().hashCode); - - /// The HTTP status code of this response. - int? statusCode; - - /// Cache policy that sets 'Cache-Control' headers for this instance. - /// - /// If null (the default), no 'Cache-Control' headers are applied. Otherwise, - /// the value returned by [CachePolicy.headerValue] will be applied to this instance for the header name - /// 'Cache-Control'. - CachePolicy? cachePolicy; - - /// The content type of the body of this response. - /// - /// Defaults to [defaultContentType]. This response's body will be encoded according to this value. - /// The Content-Type header of the HTTP response will always be set according to this value. - /// - /// If this value is set directly, then this instance's Content-Type will be that value. - /// If this value is not set, then the [headers] property is checked for the key 'content-type'. - /// If the key is not present in [headers], this property's value is [defaultContentType]. - /// - /// If the key is present and the value is a [String], this value is the result of passing the value to [ContentType.parse]. - /// If the key is present and the value is a [ContentType], this property is equal to that value. - ContentType? get contentType { - if (_contentType != null) { - return _contentType; - } - - final inHeaders = _headers[HttpHeaders.contentTypeHeader]; - if (inHeaders == null) { - return defaultContentType; - } - - if (inHeaders is ContentType) { - return inHeaders; - } - - if (inHeaders is String) { - return ContentType.parse(inHeaders); - } - - throw StateError( - "Invalid content-type response header. Is not 'String' or 'ContentType'.", - ); - } - - /// Sets the content type for this response. - set contentType(ContentType? t) { - _contentType = t; - } - - ContentType? _contentType; - - /// Whether or not this instance has explicitly set its [contentType] property. - /// - /// This value indicates whether or not [contentType] has been set, or is still using its default value. - bool get hasExplicitlySetContentType => _contentType != null; - - /// Whether or not the body object of this instance should be encoded. - /// - /// By default, a body object is encoded according to its [contentType] and the corresponding - /// [Codec] in [CodecRegistry]. - /// - /// If this instance's body object has already been encoded as a list of bytes by some other mechanism, - /// this property should be set to false to avoid the encoding process. This is useful when streaming a file - /// from disk where it is already stored as an encoded list of bytes. - bool encodeBody = true; - - /// Combines two header maps into a single map. - /// - /// [inputHeaders] The initial set of headers. - /// [otherHeaders] Additional headers to be added. - /// Returns a new map containing all headers from both input maps. - static Map _headersWith( - Map? inputHeaders, - Map otherHeaders, - ) { - final m = LinkedHashMap( - equals: (a, b) => a.toLowerCase() == b.toLowerCase(), - hashCode: (key) => key.toLowerCase().hashCode); - if (inputHeaders != null) { - m.addAll(inputHeaders); - } - m.addAll(otherHeaders); - return m; - } -} diff --git a/packages/http/lib/src/route_node.dart b/packages/http/lib/src/route_node.dart deleted file mode 100644 index e6e5726..0000000 --- a/packages/http/lib/src/route_node.dart +++ /dev/null @@ -1,303 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// Represents a segment of a route path. -class RouteSegment { - /// Creates a new RouteSegment from a string segment. - /// - /// [segment] The string representation of the route segment. - RouteSegment(String segment) { - if (segment == "*") { - isRemainingMatcher = true; - return; - } - - final regexIndex = segment.indexOf("("); - if (regexIndex != -1) { - final regexText = segment.substring(regexIndex + 1, segment.length - 1); - matcher = RegExp(regexText); - - segment = segment.substring(0, regexIndex); - } - - if (segment.startsWith(":")) { - variableName = segment.substring(1, segment.length); - } else if (regexIndex == -1) { - literal = segment; - } - } - - /// Creates a new RouteSegment directly with specified properties. - /// - /// [literal] The literal string of the segment. - /// [variableName] The name of the variable if this is a variable segment. - /// [expression] The regular expression string for matching. - /// [matchesAnything] Whether this segment matches anything (like "*"). - RouteSegment.direct({ - this.literal, - this.variableName, - String? expression, - bool matchesAnything = false, - }) { - isRemainingMatcher = matchesAnything; - if (expression != null) { - matcher = RegExp(expression); - } - } - - /// The literal string of the segment. - String? literal; - - /// The name of the variable if this is a variable segment. - String? variableName; - - /// The regular expression for matching this segment. - RegExp? matcher; - - /// Whether this segment is a literal matcher. - bool get isLiteralMatcher => - !isRemainingMatcher && !isVariable && !hasRegularExpression; - - /// Whether this segment has a regular expression for matching. - bool get hasRegularExpression => matcher != null; - - /// Whether this segment is a variable. - bool get isVariable => variableName != null; - - /// Whether this segment matches all remaining segments. - bool isRemainingMatcher = false; - - /// Checks if this RouteSegment is equal to another object. - /// - /// Returns true if the [other] object is a RouteSegment and has the same - /// [literal], [variableName], [isRemainingMatcher], and [matcher] pattern. - /// - /// [other] The object to compare with this RouteSegment. - @override - bool operator ==(Object other) => - other is RouteSegment && - literal == other.literal && - variableName == other.variableName && - isRemainingMatcher == other.isRemainingMatcher && - matcher?.pattern == other.matcher?.pattern; - - /// Generates a hash code for this RouteSegment. - /// - /// The hash code is based on either the [literal] value or the [variableName], - /// whichever is not null. This ensures that RouteSegments with the same - /// literal or variable name will have the same hash code. - /// - /// Returns an integer hash code value. - @override - int get hashCode => (literal ?? variableName).hashCode; - - /// Returns a string representation of the RouteSegment. - /// - /// The string representation depends on the type of the segment: - /// - For a literal matcher, it returns the literal value. - /// - For a variable segment, it returns the variable name. - /// - For a segment with a regular expression, it returns the pattern enclosed in parentheses. - /// - For a remaining matcher (wildcard), it returns "*". - /// - /// Returns a string representing the RouteSegment. - @override - String toString() { - if (isLiteralMatcher) { - return literal ?? ""; - } - - if (isVariable) { - return variableName ?? ""; - } - - if (hasRegularExpression) { - return "(${matcher!.pattern})"; - } - - return "*"; - } -} - -/// Represents a node in the route tree. -class RouteNode { - /// Creates a new RouteNode from a list of route specifications. - /// - /// [specs] The list of route specifications. - /// [depth] The depth of this node in the route tree. - /// [matcher] The regular expression matcher for this node. - RouteNode(List specs, {int depth = 0, RegExp? matcher}) { - patternMatcher = matcher; - - final terminatedAtThisDepth = - specs.where((spec) => spec?.segments.length == depth).toList(); - if (terminatedAtThisDepth.length > 1) { - throw ArgumentError( - "Router compilation failed. Cannot disambiguate from the following routes: $terminatedAtThisDepth.", - ); - } else if (terminatedAtThisDepth.length == 1) { - specification = terminatedAtThisDepth.first; - } - - final remainingSpecifications = List.from( - specs.where((spec) => depth != spec?.segments.length), - ); - - final Set childEqualitySegments = Set.from( - remainingSpecifications - .where((spec) => spec?.segments[depth].isLiteralMatcher ?? false) - .map((spec) => spec!.segments[depth].literal), - ); - - for (final childSegment in childEqualitySegments) { - final childrenBeginningWithThisSegment = remainingSpecifications - .where((spec) => spec?.segments[depth].literal == childSegment) - .toList(); - equalityChildren[childSegment] = - RouteNode(childrenBeginningWithThisSegment, depth: depth + 1); - remainingSpecifications - .removeWhere(childrenBeginningWithThisSegment.contains); - } - - final takeAllSegment = remainingSpecifications.firstWhere( - (spec) => spec?.segments[depth].isRemainingMatcher ?? false, - orElse: () => null, - ); - if (takeAllSegment != null) { - takeAllChild = RouteNode.withSpecification(takeAllSegment); - remainingSpecifications.removeWhere( - (spec) => spec?.segments[depth].isRemainingMatcher ?? false, - ); - } - - final Set childPatternedSegments = Set.from( - remainingSpecifications - .map((spec) => spec?.segments[depth].matcher?.pattern), - ); - - patternedChildren = childPatternedSegments.map((pattern) { - final childrenWithThisPattern = remainingSpecifications - .where((spec) => spec?.segments[depth].matcher?.pattern == pattern) - .toList(); - - if (childrenWithThisPattern - .any((spec) => spec?.segments[depth].matcher == null) && - childrenWithThisPattern - .any((spec) => spec?.segments[depth].matcher != null)) { - throw ArgumentError( - "Router compilation failed. Cannot disambiguate from the following routes, as one of them will match anything: $childrenWithThisPattern.", - ); - } - - return RouteNode( - childrenWithThisPattern, - depth: depth + 1, - matcher: childrenWithThisPattern.first?.segments[depth].matcher, - ); - }).toList(); - } - - /// Creates a new RouteNode with a specific route specification. - /// - /// [specification] The route specification for this node. - RouteNode.withSpecification(this.specification); - - /// Regular expression matcher for this node. May be null. - RegExp? patternMatcher; - - /// The controller associated with this route node. - Controller? get controller => specification?.controller; - - /// The route specification for this node. - RouteSpecification? specification; - - /// Children nodes that are matched using regular expressions. - List patternedChildren = []; - - /// Children nodes that are matched using string equality. - Map equalityChildren = {}; - - /// Child node that matches all remaining segments. - RouteNode? takeAllChild; - - /// Finds the appropriate node for the given path segments. - /// - /// [requestSegments] An iterator of the path segments. - /// [path] The full request path. - /// - /// Returns the matching RouteNode or null if no match is found. - RouteNode? nodeForPathSegments( - Iterator requestSegments, - RequestPath path, - ) { - if (!requestSegments.moveNext()) { - return this; - } - - final nextSegment = requestSegments.current; - - if (equalityChildren.containsKey(nextSegment)) { - return equalityChildren[nextSegment]! - .nodeForPathSegments(requestSegments, path); - } - - for (final node in patternedChildren) { - if (node.patternMatcher == null) { - // This is a variable with no regular expression - return node.nodeForPathSegments(requestSegments, path); - } - - if (node.patternMatcher!.firstMatch(nextSegment) != null) { - // This segment has a regular expression - return node.nodeForPathSegments(requestSegments, path); - } - } - - // If this is null, then we return null from this method - // and the router knows we didn't find a match. - return takeAllChild; - } - - /// Generates a string representation of the RouteNode and its children. - /// - /// This method creates a hierarchical string representation of the RouteNode, - /// including information about the pattern matcher, associated controller, - /// and child nodes. The representation is indented based on the depth of the - /// node in the route tree. - /// - /// [depth] The depth of this node in the route tree, used for indentation. - /// - /// Returns a string representation of the RouteNode and its children. - @override - String toString({int depth = 0}) { - final buf = StringBuffer(); - for (var i = 0; i < depth; i++) { - buf.write("\t"); - } - - if (patternMatcher != null) { - buf.write("(match: ${patternMatcher!.pattern})"); - } - - buf.writeln( - "Controller: ${specification?.controller?.nextController?.runtimeType}", - ); - equalityChildren.forEach((seg, spec) { - for (var i = 0; i < depth; i++) { - buf.write("\t"); - } - - buf.writeln("/$seg"); - buf.writeln(spec.toString(depth: depth + 1)); - }); - - return buf.toString(); - } -} diff --git a/packages/http/lib/src/route_specification.dart b/packages/http/lib/src/route_specification.dart deleted file mode 100644 index dac3e38..0000000 --- a/packages/http/lib/src/route_specification.dart +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_http/http.dart'; - -/// Specifies a matchable route path. -/// -/// Contains [RouteSegment]s for each path segment. This class is used internally by [Router]. -class RouteSpecification { - /// Creates a [RouteSpecification] from a [String]. - /// - /// The [patternString] must be stripped of any optionals. - RouteSpecification(String patternString) { - segments = _splitPathSegments(patternString); - variableNames = segments - .where((e) => e.isVariable) - .map((e) => e.variableName!) - .toList(); - } - - /// Creates a list of [RouteSpecification]s from a given route pattern. - /// - /// This method handles optional segments in the route pattern. - /// @param routePattern The input route pattern string. - /// @return A list of [RouteSpecification]s. - static List specificationsForRoutePattern( - String routePattern, - ) { - return _pathsFromRoutePattern(routePattern) - .map((path) => RouteSpecification(path)) - .toList(); - } - - /// A list of this specification's [RouteSegment]s. - late List segments; - - /// A list of all variables in this route. - late List variableNames; - - /// A reference back to the [Controller] to be used when this specification is matched. - Controller? controller; - - /// Returns a string representation of the route specification. - @override - String toString() => segments.join("/"); -} - -/// Generates a list of path strings from a given route pattern. -/// -/// This function handles optional segments and regular expressions in the route pattern. -/// @param inputPattern The input route pattern string. -/// @return A list of path strings. -List _pathsFromRoutePattern(String inputPattern) { - var routePattern = inputPattern; - var endingOptionalCloseCount = 0; - while (routePattern.endsWith("]")) { - routePattern = routePattern.substring(0, routePattern.length - 1); - endingOptionalCloseCount++; - } - - final chars = routePattern.codeUnits; - final patterns = []; - final buffer = StringBuffer(); - final openOptional = '['.codeUnitAt(0); - final openExpression = '('.codeUnitAt(0); - final closeExpression = ')'.codeUnitAt(0); - - bool insideExpression = false; - for (var i = 0; i < chars.length; i++) { - final code = chars[i]; - - if (code == openExpression) { - if (insideExpression) { - throw ArgumentError( - "Router compilation failed. Route pattern '$routePattern' cannot use expression that contains '(' or ')'", - ); - } else { - buffer.writeCharCode(code); - insideExpression = true; - } - } else if (code == closeExpression) { - if (insideExpression) { - buffer.writeCharCode(code); - insideExpression = false; - } else { - throw ArgumentError( - "Router compilation failed. Route pattern '$routePattern' cannot use expression that contains '(' or ')'", - ); - } - } else if (code == openOptional) { - if (insideExpression) { - buffer.writeCharCode(code); - } else { - patterns.add(buffer.toString()); - } - } else { - buffer.writeCharCode(code); - } - } - - if (insideExpression) { - throw ArgumentError( - "Router compilation failed. Route pattern '$routePattern' has unterminated regular expression.", - ); - } - - if (endingOptionalCloseCount != patterns.length) { - throw ArgumentError( - "Router compilation failed. Route pattern '$routePattern' does not close all optionals.", - ); - } - - // Add the final pattern - if no optionals, this is the only pattern. - patterns.add(buffer.toString()); - - return patterns; -} - -/// Splits a path string into a list of [RouteSegment]s. -/// -/// This function handles regular expressions within path segments. -/// @param inputPath The input path string. -/// @return A list of [RouteSegment]s. -List _splitPathSegments(String inputPath) { - var path = inputPath; - // Once we've gotten into this method, the path has been validated for optionals and regex and optionals have been removed. - - // Trim leading and trailing - while (path.startsWith("/")) { - path = path.substring(1, path.length); - } - while (path.endsWith("/")) { - path = path.substring(0, path.length - 1); - } - - final segments = []; - final chars = path.codeUnits; - var buffer = StringBuffer(); - - final openExpression = '('.codeUnitAt(0); - final closeExpression = ')'.codeUnitAt(0); - final pathDelimiter = '/'.codeUnitAt(0); - bool insideExpression = false; - - for (var i = 0; i < path.length; i++) { - final code = chars[i]; - - if (code == openExpression) { - buffer.writeCharCode(code); - insideExpression = true; - } else if (code == closeExpression) { - buffer.writeCharCode(code); - insideExpression = false; - } else if (code == pathDelimiter) { - if (insideExpression) { - buffer.writeCharCode(code); - } else { - segments.add(buffer.toString()); - buffer = StringBuffer(); - } - } else { - buffer.writeCharCode(code); - } - } - - if (segments.any((seg) => seg == "")) { - throw ArgumentError( - "Router compilation failed. Route pattern '$path' contains an empty path segment.", - ); - } - - // Add final - segments.add(buffer.toString()); - - return segments.map((seg) => RouteSegment(seg)).toList(); -} diff --git a/packages/http/lib/src/router.dart b/packages/http/lib/src/router.dart deleted file mode 100644 index cd3156d..0000000 --- a/packages/http/lib/src/router.dart +++ /dev/null @@ -1,273 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Determines which [Controller] should receive a [Request] based on its path. -/// -/// A router is a [Controller] that evaluates the path of a [Request] and determines which controller should be the next to receive it. -/// Valid paths for a [Router] are called *routes* and are added to a [Router] via [route]. -/// -/// Each [route] creates a new [Controller] that will receive all requests whose path match the route pattern. -/// If a request path does not match one of the registered routes, [Router] responds with 404 Not Found and does not pass -/// the request to another controller. -/// -/// Unlike most [Controller]s, a [Router] may have multiple controllers it sends requests to. In most applications, -/// a [Router] is the [ApplicationChannel.entryPoint]. -class Router extends Controller { - /// Creates a new [Router]. - /// - /// [basePath] is an optional prefix for all routes on this instance. - /// [notFoundHandler] is an optional function to handle requests that don't match any routes. - Router({String? basePath, Future Function(Request)? notFoundHandler}) - : _unmatchedController = notFoundHandler, - _basePathSegments = - basePath?.split("/").where((str) => str.isNotEmpty).toList() ?? [] { - policy?.allowCredentials = false; - } - - /// The root node of the routing tree. - final _RootNode _root = _RootNode(); - - /// List of route controllers. - final List<_RouteController> _routeControllers = []; - - /// Segments of the base path. - final List _basePathSegments; - - /// Function to handle unmatched requests. - final Function(Request)? _unmatchedController; - - /// A prefix for all routes on this instance. - /// - /// If this value is non-null, each [route] is prefixed by this value. - /// - /// For example, if a route is "/users" and the value of this property is "/api", - /// a request's path must be "/api/users" to match the route. - /// - /// Trailing and leading slashes have no impact on this value. - String get basePath => "/${_basePathSegments.join("/")}"; - - /// Adds a route that [Controller]s can be linked to. - /// - /// Routers allow for multiple linked controllers. A request that matches [pattern] - /// will be sent to the controller linked to this method's return value. - /// - /// The [pattern] must follow the rules of route patterns (see also http://conduit.io/docs/http/routing/). - /// - /// A pattern consists of one or more path segments, e.g. "/path" or "/path/to". - /// - /// A path segment can be: - /// - /// - A literal string (e.g. `users`) - /// - A path variable: a literal string prefixed with `:` (e.g. `:id`) - /// - A wildcard: the character `*` - /// - /// A path variable may contain a regular expression by placing the expression in parentheses immediately after the variable name. (e.g. `:id(/d+)`). - /// - /// A path segment is required by default. Path segments may be marked as optional - /// by wrapping them in square brackets `[]`. - /// - /// Here are some example routes: - /// - /// /users - /// /users/:id - /// /users/[:id] - /// /users/:id/friends/[:friendID] - /// /locations/:name([^0-9]) - /// /files/* - /// - Linkable route(String pattern) { - final routeController = _RouteController( - RouteSpecification.specificationsForRoutePattern(pattern), - ); - _routeControllers.add(routeController); - return routeController; - } - - /// Called when this controller is added to a channel. - @override - void didAddToChannel() { - _root.node = - RouteNode(_routeControllers.expand((rh) => rh.specifications).toList()); - - for (final c in _routeControllers) { - c.didAddToChannel(); - } - } - - /// Routers override this method to throw an exception. Use [route] instead. - @override - Linkable link(Controller Function() generatorFunction) { - throw ArgumentError( - "Invalid link. 'Router' cannot directly link to controllers. Use 'route'.", - ); - } - - /// Routers override this method to throw an exception. Use [route] instead. - @override - Linkable? linkFunction( - FutureOr Function(Request request) handle, - ) { - throw ArgumentError( - "Invalid link. 'Router' cannot directly link to functions. Use 'route'.", - ); - } - - /// Receives a request and routes it to the appropriate controller. - @override - Future receive(Request req) async { - Controller next; - try { - var requestURISegmentIterator = req.raw.uri.pathSegments.iterator; - - if (req.raw.uri.pathSegments.isEmpty) { - requestURISegmentIterator = [""].iterator; - } - - for (var i = 0; i < _basePathSegments.length; i++) { - requestURISegmentIterator.moveNext(); - if (_basePathSegments[i] != requestURISegmentIterator.current) { - await _handleUnhandledRequest(req); - return null; - } - } - - final node = - _root.node!.nodeForPathSegments(requestURISegmentIterator, req.path); - if (node?.specification == null) { - await _handleUnhandledRequest(req); - return null; - } - req.path.setSpecification( - node!.specification!, - segmentOffset: _basePathSegments.length, - ); - next = node.controller!; - } catch (any, stack) { - return handleError(req, any, stack); - } - - // This line is intentionally outside of the try block - // so that this object doesn't handle exceptions for 'next'. - return next.receive(req); - } - - /// Router should not handle requests directly. - @override - FutureOr handle(Request request) { - throw StateError("Router invoked handle. This is a bug."); - } - - /// Documents the paths for this router. - @override - Map documentPaths(APIDocumentContext context) { - return _routeControllers.fold({}, (prev, elem) { - prev.addAll(elem.documentPaths(context)); - return prev; - }); - } - - /// Documents the components for this router. - @override - void documentComponents(APIDocumentContext context) { - for (final controller in _routeControllers) { - controller.documentComponents(context); - } - } - - /// Returns a string representation of this router. - @override - String toString() { - return _root.node.toString(); - } - - /// Handles unmatched requests. - Future _handleUnhandledRequest(Request req) async { - if (_unmatchedController != null) { - return _unmatchedController(req); - } - final response = Response.notFound(); - if (req.acceptsContentType(ContentType.html)) { - response - ..body = "

404 Not Found

" - ..contentType = ContentType.html; - } - - applyCORSHeadersIfNecessary(req, response); - await req.respond(response); - logger.info(req.toDebugString()); - } -} - -/// Represents the root node of the routing tree. -class _RootNode { - RouteNode? node; -} - -/// Represents a route controller. -class _RouteController extends Controller { - /// Creates a new [_RouteController] with the given specifications. - _RouteController(this.specifications) { - for (final p in specifications) { - p.controller = this; - } - } - - /// Route specifications for this controller. - final List specifications; - - /// Documents the paths for this route controller. - @override - Map documentPaths(APIDocumentContext components) { - return specifications.fold({}, (pathMap, spec) { - final elements = spec.segments.map((rs) { - if (rs.isLiteralMatcher) { - return rs.literal; - } else if (rs.isVariable) { - return "{${rs.variableName}}"; - } else if (rs.isRemainingMatcher) { - return "{path}"; - } - throw StateError("unknown specification"); - }).join("/"); - final pathKey = "/$elements"; - - final path = APIPath() - ..parameters = spec.variableNames - .map((pathVar) => APIParameter.path(pathVar)) - .toList(); - - if (spec.segments.any((seg) => seg.isRemainingMatcher)) { - path.parameters.add( - APIParameter.path("path") - ..description = - "This path variable may contain slashes '/' and may be empty.", - ); - } - - path.operations = - spec.controller!.documentOperations(components, pathKey, path); - - pathMap[pathKey] = path; - - return pathMap; - }); - } - - /// Handles the request for this route controller. - @override - FutureOr handle(Request request) { - return request; - } -} diff --git a/packages/http/lib/src/serializable.dart b/packages/http/lib/src/serializable.dart deleted file mode 100644 index 53ab213..0000000 --- a/packages/http/lib/src/serializable.dart +++ /dev/null @@ -1,145 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_openapi/documentable.dart'; -import 'package:protevus_http/http.dart'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// Interface for serializable instances to be decoded from an HTTP request body and encoded to an HTTP response body. -/// -/// Implementers of this interface may be a [Response.body] and bound with an [Bind.body] in [ResourceController]. -abstract class Serializable { - /// Returns an [APISchemaObject] describing this object's type. - /// - /// The returned [APISchemaObject] will be of type [APIType.object]. By default, each instance variable - /// of the receiver's type will be a property of the return value. - /// - /// [context] The API document context. - /// Returns an [APISchemaObject] representing the schema of this serializable object. - APISchemaObject documentSchema(APIDocumentContext context) { - return (RuntimeContext.current[runtimeType] as SerializableRuntime) - .documentSchema(context); - } - - /// Reads values from [object]. - /// - /// Use [read] instead of this method. [read] applies filters - /// to [object] before calling this method. - /// - /// This method is used by implementors to assign and use values from [object] for its own - /// purposes. [SerializableException]s should be thrown when [object] violates a constraint - /// of the receiver. - /// - /// [object] The map containing the values to be read. - void readFromMap(Map object); - - /// Reads values from [object], after applying filters. - /// - /// The key name must exactly match the name of the property as defined in the receiver's type. - /// If [object] contains a key that is unknown to the receiver, an exception is thrown (status code: 400). - /// - /// [object] The map containing the values to be read. - /// [accept] If set, only these keys will be accepted from the object. - /// [ignore] If set, these keys will be ignored from the object. - /// [reject] If set, the presence of any of these keys will cause an exception. - /// [require] If set, all of these keys must be present in the object. - void read( - Map object, { - Iterable? accept, - Iterable? ignore, - Iterable? reject, - Iterable? require, - }) { - if (accept == null && ignore == null && reject == null && require == null) { - readFromMap(object); - return; - } - - final copy = Map.from(object); - final stillRequired = require?.toList(); - for (final key in object.keys) { - if (reject?.contains(key) ?? false) { - throw SerializableException(["invalid input key '$key'"]); - } - if ((ignore?.contains(key) ?? false) || - !(accept?.contains(key) ?? true)) { - copy.remove(key); - } - stillRequired?.remove(key); - } - - if (stillRequired?.isNotEmpty ?? false) { - throw SerializableException( - ["missing required input key(s): '${stillRequired!.join(", ")}'"], - ); - } - - readFromMap(copy); - } - - /// Returns a serializable version of an object. - /// - /// This method returns a [Map] where each key is the name of a property in the implementing type. - /// If a [Response.body]'s type implements this interface, this method is invoked prior to any content-type encoding - /// performed by the [Response]. A [Response.body] may also be a [List], for which this method is invoked on - /// each element in the list. - /// - /// Returns a [Map] representation of the object. - Map asMap(); - - /// Whether a subclass will automatically be registered as a schema component automatically. - /// - /// Defaults to true. When an instance of this subclass is used in a [ResourceController], - /// it will automatically be registered as a schema component. Its properties will be reflected - /// on to create the [APISchemaObject]. If false, you must register a schema for the subclass manually. - /// - /// Overriding static methods is not enforced by the Dart compiler - check for typos. - static bool get shouldAutomaticallyDocument => true; -} - -/// Exception thrown when there's an error in serialization or deserialization. -class SerializableException implements HandlerException { - /// Constructor for SerializableException. - /// - /// [reasons] A list of reasons for the exception. - SerializableException(this.reasons); - - /// The reasons for the exception. - final List reasons; - - /// Generates a response for this exception. - /// - /// Returns a [Response] with a bad request status and error details. - @override - Response get response { - return Response.badRequest( - body: {"error": "entity validation failed", "reasons": reasons}, - ); - } - - /// Returns a string representation of the exception. - /// - /// Returns a string containing the error and reasons. - @override - String toString() { - final errorString = response.body["error"] as String?; - final reasons = (response.body["reasons"] as List).join(", "); - return "$errorString $reasons"; - } -} - -/// Abstract class representing the runtime behavior of a Serializable object. -abstract class SerializableRuntime { - /// Documents the schema of a Serializable object. - /// - /// [context] The API document context. - /// Returns an [APISchemaObject] representing the schema of the Serializable object. - APISchemaObject documentSchema(APIDocumentContext context); -} diff --git a/packages/http/pubspec.yaml b/packages/http/pubspec.yaml deleted file mode 100644 index 8c08c64..0000000 --- a/packages/http/pubspec.yaml +++ /dev/null @@ -1,24 +0,0 @@ -name: protevus_http -description: The HTTP Package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: '>=3.4.0 <4.0.0' - -# Add regular dependencies here. -dependencies: - protevus_runtime: ^0.0.1 - protevus_openapi: ^0.0.1 - protevus_auth: ^0.0.1 - protevus_database: ^0.0.1 - collection: ^1.18.0 - logging: ^1.2.0 - meta: ^1.12.0 - path: ^1.9.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/http/test/.gitkeep b/packages/http/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/isolate/.gitignore b/packages/isolate/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/isolate/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/isolate/CHANGELOG.md b/packages/isolate/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/isolate/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/isolate/README.md b/packages/isolate/README.md deleted file mode 100644 index 8b55e73..0000000 --- a/packages/isolate/README.md +++ /dev/null @@ -1,39 +0,0 @@ - - -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. - -## Features - -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. - -## Usage - -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. diff --git a/packages/isolate/analysis_options.yaml b/packages/isolate/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/isolate/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/isolate/lib/isolate.dart b/packages/isolate/lib/isolate.dart deleted file mode 100644 index b27b2cc..0000000 --- a/packages/isolate/lib/isolate.dart +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library provides functionality for working with isolates in Dart. -/// It exports three main components: -/// 1. Executable: Defines the structure for tasks that can be executed in isolates. -/// 2. Executor: Provides mechanisms for running executables in isolates. -/// 3. SourceGenerator: Offers utilities for generating source code for isolates. -/// -/// These components work together to facilitate concurrent programming and -/// improve performance in Dart applications by leveraging isolates. -library isolate; - -export 'package:protevus_isolate/src/executable.dart'; -export 'package:protevus_isolate/src/executor.dart'; -export 'package:protevus_isolate/src/source_generator.dart'; diff --git a/packages/isolate/lib/src/executable.dart b/packages/isolate/lib/src/executable.dart deleted file mode 100644 index 86319dd..0000000 --- a/packages/isolate/lib/src/executable.dart +++ /dev/null @@ -1,93 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:isolate'; -import 'dart:mirrors'; - -/// An abstract class representing an executable task in an isolate. -/// -/// This class provides a framework for executing tasks in separate isolates, -/// with built-in communication capabilities. -abstract class Executable { - /// Constructor for the Executable class. - /// - /// @param message A map containing the message data, including a SendPort. - Executable(this.message) : _sendPort = message["_sendPort"]; - - /// Abstract method to be implemented by subclasses. - /// - /// This method should contain the main logic of the task to be executed. - /// @returns A Future that completes with the result of type T. - Future execute(); - - /// The message data passed to the Executable. - final Map message; - - /// A SendPort for communicating back to the main isolate. - final SendPort? _sendPort; - - /// Creates an instance of a specified type using reflection. - /// - /// @param typeName The name of the type to instantiate. - /// @param positionalArguments List of positional arguments for the constructor. - /// @param namedArguments Map of named arguments for the constructor. - /// @param constructorName The name of the constructor to use. - /// @returns An instance of the specified type U. - U instanceOf( - String typeName, { - List positionalArguments = const [], - Map namedArguments = const {}, - Symbol constructorName = Symbol.empty, - }) { - // Try to find the ClassMirror in the root library - ClassMirror? typeMirror = currentMirrorSystem() - .isolate - .rootLibrary - .declarations[Symbol(typeName)] as ClassMirror?; - - // If not found in the root library, search in all libraries - typeMirror ??= currentMirrorSystem() - .libraries - .values - .where((lib) => lib.uri.scheme == "package" || lib.uri.scheme == "file") - .expand((lib) => lib.declarations.values) - .firstWhere( - (decl) => - decl is ClassMirror && - MirrorSystem.getName(decl.simpleName) == typeName, - orElse: () => throw ArgumentError( - "Unknown type '$typeName'. Did you forget to import it?", - ), - ) as ClassMirror?; - - // Create and return a new instance of the specified type - return typeMirror! - .newInstance( - constructorName, - positionalArguments, - namedArguments, - ) - .reflectee as U; - } - - /// Sends a message back to the main isolate. - /// - /// @param message The message to be sent. - void send(dynamic message) { - _sendPort!.send(message); - } - - /// Logs a message by sending it back to the main isolate. - /// - /// @param message The message to be logged. - void log(String message) { - _sendPort!.send({"_line_": message}); - } -} diff --git a/packages/isolate/lib/src/executor.dart b/packages/isolate/lib/src/executor.dart deleted file mode 100644 index a90096d..0000000 --- a/packages/isolate/lib/src/executor.dart +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; -import 'dart:isolate'; -import 'package:protevus_isolate/isolate.dart'; - -/// A class that manages the execution of code in an isolate. -/// -/// This class provides functionality to run code in a separate isolate, -/// allowing for concurrent execution and isolation of resources. -/// It handles the creation of the isolate, communication between the -/// main isolate and the spawned isolate, and manages the lifecycle -/// of the execution. -class IsolateExecutor { - /// Creates an instance of IsolateExecutor. - /// - /// [generator] is the [SourceGenerator] that provides the source code - /// to be executed in the isolate. - /// [packageConfigURI] is the optional URI of the package configuration file. - /// If provided, it will be used for package resolution in the isolate. - /// [message] is an optional map of data to be passed to the isolate. - /// This data will be available to the code running in the isolate. - IsolateExecutor( - this.generator, { - this.packageConfigURI, - this.message = const {}, - }); - - /// The source generator that provides the code to be executed. - final SourceGenerator generator; - - /// A map of data to be passed to the isolate. - final Map message; - - /// The URI of the package configuration file. - final Uri? packageConfigURI; - - /// A completer that completes when the isolate execution is finished. - final Completer completer = Completer(); - - /// Stream of events from the isolate. - /// - /// This stream emits any custom events sent from the isolate during execution. - Stream get events => _eventListener.stream; - - /// Stream of console output from the isolate. - /// - /// This stream emits any console output (print statements, etc.) from the isolate. - Stream get console => _logListener.stream; - - /// StreamController for managing console output from the isolate. - final StreamController _logListener = StreamController(); - - /// StreamController for managing custom events from the isolate. - final StreamController _eventListener = StreamController(); - - /// Executes the code in the isolate and returns the result. - /// - /// This method spawns a new isolate, runs the provided code, and returns - /// the result. It handles error cases and ensures proper cleanup of resources. - /// - /// Throws a [StateError] if the package configuration file is not found. - /// - /// Returns a [Future] that completes with the result of the isolate execution. - Future execute() async { - if (packageConfigURI != null && - !File.fromUri(packageConfigURI!).existsSync()) { - throw StateError( - "Package file '$packageConfigURI' not found. Run 'pub get' and retry.", - ); - } - - final scriptSource = Uri.encodeComponent(await generator.scriptSource); - - final onErrorPort = ReceivePort() - ..listen((err) async { - if (err is List) { - final stack = - StackTrace.fromString(err.last.replaceAll(scriptSource, "")); - - completer.completeError(StateError(err.first), stack); - } else { - completer.completeError(err); - } - }); - - final controlPort = ReceivePort() - ..listen((results) { - if (results is Map && results.length == 1) { - if (results.containsKey("_result")) { - completer.complete(results['_result']); - return; - } else if (results.containsKey("_line_")) { - _logListener.add(results["_line_"]); - return; - } - } - _eventListener.add(results); - }); - try { - message["_sendPort"] = controlPort.sendPort; - - final dataUri = Uri.parse( - "data:application/dart;charset=utf-8,$scriptSource", - ); - - await Isolate.spawnUri( - dataUri, - [], - message, - onError: onErrorPort.sendPort, - packageConfig: packageConfigURI, - automaticPackageResolution: packageConfigURI == null, - ); - return await completer.future; - } catch (e) { - print(e); - rethrow; - } finally { - onErrorPort.close(); - controlPort.close(); - _eventListener.close(); - _logListener.close(); - } - } - - /// Runs an executable in an isolate. - /// - /// This static method provides a convenient way to execute code in an isolate. - /// It creates a [SourceGenerator], sets up an [IsolateExecutor], and manages - /// the execution process. - /// - /// [executable] is an instance of [Executable] containing the code to be executed. - /// [imports] is an optional list of import statements to be included in the isolate. - /// [packageConfigURI] is the optional URI of the package configuration file. - /// [additionalContents] is optional additional code to be included in the isolate. - /// [additionalTypes] is an optional list of additional types to be included in the isolate. - /// [eventHandler] is an optional function to handle events from the isolate. - /// [logHandler] is an optional function to handle console output from the isolate. - /// - /// Returns a [Future] that completes with the result of type [T] from the isolate execution. - static Future run( - Executable executable, { - List imports = const [], - Uri? packageConfigURI, - String? additionalContents, - List additionalTypes = const [], - void Function(dynamic event)? eventHandler, - void Function(String line)? logHandler, - }) async { - final source = SourceGenerator( - executable.runtimeType, - imports: imports, - additionalContents: additionalContents, - additionalTypes: additionalTypes, - ); - - final executor = IsolateExecutor( - source, - packageConfigURI: packageConfigURI, - message: executable.message, - ); - - if (eventHandler != null) { - executor.events.listen(eventHandler); - } - - if (logHandler != null) { - executor.console.listen(logHandler); - } - - return executor.execute(); - } -} diff --git a/packages/isolate/lib/src/source_generator.dart b/packages/isolate/lib/src/source_generator.dart deleted file mode 100644 index 8225a1e..0000000 --- a/packages/isolate/lib/src/source_generator.dart +++ /dev/null @@ -1,142 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'dart:isolate'; -import 'dart:mirrors'; -import 'package:analyzer/dart/analysis/analysis_context.dart'; -import 'package:analyzer/dart/analysis/context_builder.dart'; -import 'package:analyzer/dart/analysis/context_locator.dart'; -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/file_system/file_system.dart'; -import 'package:analyzer/file_system/physical_file_system.dart'; -import 'package:path/path.dart'; -import 'package:protevus_isolate/isolate.dart'; - -/// A class responsible for generating source code for isolate execution. -class SourceGenerator { - /// Constructs a SourceGenerator instance. - /// - /// [executableType]: The Type of the executable class. - /// [imports]: List of import statements to include in the generated source. - /// [additionalTypes]: List of additional Types to include in the generated source. - /// [additionalContents]: Optional additional content to append to the generated source. - SourceGenerator( - this.executableType, { - this.imports = const [], - this.additionalTypes = const [], - this.additionalContents, - }); - - /// The Type of the executable class. - Type executableType; - - /// Returns the name of the executable type. - String get typeName => - MirrorSystem.getName(reflectType(executableType).simpleName); - - /// List of import statements to include in the generated source. - final List imports; - - /// Optional additional content to append to the generated source. - final String? additionalContents; - - /// List of additional Types to include in the generated source. - final List additionalTypes; - - /// Generates the complete script source for isolate execution. - /// - /// Returns a Future containing the generated source code. - Future get scriptSource async { - final typeSource = (await _getClass(executableType)).toSource(); - final builder = StringBuffer(); - - // Add standard imports - builder.writeln("import 'dart:async';"); - builder.writeln("import 'dart:isolate';"); - builder.writeln("import 'dart:mirrors';"); - - // Add custom imports - for (final anImport in imports) { - builder.writeln("import '$anImport';"); - } - - // Add main function for isolate execution - builder.writeln( - """ -Future main (List args, Map message) async { - final sendPort = message['_sendPort']; - final executable = $typeName(message); - final result = await executable.execute(); - sendPort.send({"_result": result}); -} - """, - ); - - // Add executable class source - builder.writeln(typeSource); - - // Add Executable base class source - builder.writeln((await _getClass(Executable)).toSource()); - - // Add additional types' sources - for (final type in additionalTypes) { - final source = await _getClass(type); - builder.writeln(source.toSource()); - } - - // Add additional contents if provided - if (additionalContents != null) { - builder.writeln(additionalContents); - } - - return builder.toString(); - } - - /// Retrieves the ClassDeclaration for a given Type. - /// - /// [type]: The Type to retrieve the ClassDeclaration for. - /// Returns a Future. - static Future _getClass(Type type) async { - final uri = - await Isolate.resolvePackageUri(reflectClass(type).location!.sourceUri); - final path = - absolute(normalize(uri!.toFilePath(windows: Platform.isWindows))); - - final context = _createContext(path); - final session = context.currentSession; - final unit = session.getParsedUnit(path) as ParsedUnitResult; - final typeName = MirrorSystem.getName(reflectClass(type).simpleName); - - return unit.unit.declarations - .whereType() - .firstWhere((classDecl) => classDecl.name.value() == typeName); - } -} - -/// Creates an AnalysisContext for a given file path. -/// -/// [path]: The file path to create the context for. -/// [resourceProvider]: Optional ResourceProvider, defaults to PhysicalResourceProvider.INSTANCE. -/// Returns an AnalysisContext. -AnalysisContext _createContext( - String path, { - ResourceProvider? resourceProvider, -}) { - resourceProvider ??= PhysicalResourceProvider.INSTANCE; - final builder = ContextBuilder(resourceProvider: resourceProvider); - final contextLocator = ContextLocator( - resourceProvider: resourceProvider, - ); - final root = contextLocator.locateRoots( - includedPaths: [path], - ); - return builder.createContext(contextRoot: root.first); -} diff --git a/packages/isolate/pubspec.yaml b/packages/isolate/pubspec.yaml deleted file mode 100644 index 649f416..0000000 --- a/packages/isolate/pubspec.yaml +++ /dev/null @@ -1,19 +0,0 @@ -name: protevus_isolate -description: This library contains types that allow for executing code in a spawned isolate, perhaps with additional imports. -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.3 - -# Add regular dependencies here. -dependencies: - analyzer: ^6.5.0 - glob: ^2.1.2 - path: ^1.9.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/isolate/test/.gitkeep b/packages/isolate/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/openapi/.gitignore b/packages/openapi/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/openapi/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/openapi/CHANGELOG.md b/packages/openapi/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/openapi/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/openapi/README.md b/packages/openapi/README.md deleted file mode 100644 index c1ade1a..0000000 --- a/packages/openapi/README.md +++ /dev/null @@ -1,37 +0,0 @@ -

- -# protevus_openapi - -Reads and writes OpenAPI (Swagger) specifications. - -conduit_open_api supports both v2 and v3 of the open_api specification. - -To use v2 import: - -```dart -import 'package:conduit_open_api/v2.dart'; -``` - -To use v3 import: - -```dart -import 'package:conduit_open_api/v3.dart'; -``` - -You can us v2 and v3 within a single project. - - -Example ---- - -```dart -import 'package:conduit_open_api/v3.dart'; - - -final file = File("test/specs/kubernetes.json"); -final contents = await file.readAsString(); -final doc = APIDocument.fromJSON(contents); - -final output = JSON.encode(doc.asMap()); -``` - diff --git a/packages/openapi/analysis_options.yaml b/packages/openapi/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/openapi/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/openapi/lib/documentable.dart b/packages/openapi/lib/documentable.dart deleted file mode 100644 index c94c03c..0000000 --- a/packages/openapi/lib/documentable.dart +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library exports the 'documentable' module from the Protevus OpenAPI package. -/// -/// It provides access to the documentable-related functionality defined in the -/// 'src/documentable.dart' file of the 'protevus_openapi' package. -/// -/// This library is useful for working with documentable objects within the -/// Protevus platform, allowing developers to utilize the pre-defined -/// documentable-related features and structures. -library documentable; - -export 'package:protevus_openapi/src/documentable.dart'; diff --git a/packages/openapi/lib/object.dart b/packages/openapi/lib/object.dart deleted file mode 100644 index 0a7b93e..0000000 --- a/packages/openapi/lib/object.dart +++ /dev/null @@ -1,15 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library exports the 'object' module from the Protevus OpenAPI package. -/// It provides access to the object-related functionality defined in the -/// 'src/object.dart' file of the 'protevus_openapi' package. -library object; - -export 'package:protevus_openapi/src/object.dart'; diff --git a/packages/openapi/lib/src/documentable.dart b/packages/openapi/lib/src/documentable.dart deleted file mode 100644 index 23aeab1..0000000 --- a/packages/openapi/lib/src/documentable.dart +++ /dev/null @@ -1,525 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'package:protevus_openapi/v3.dart'; -import 'package:protevus_openapi/object.dart'; - -/// Defines methods for documenting OpenAPI components. -/// -/// The documentation process calls methods from objects of this type. You implement methods from -/// this interface to add reusable components to your OpenAPI document. You may use these components -/// when documenting other components or when implementing [APIOperationDocumenter]. -/// -/// You must implement [documentComponents]. -/// -/// ApplicationChannel, Controller, ManagedEntity, and AuthServer all implement this interface. -/// -abstract class APIComponentDocumenter { - /// Instructs this object to add its components to the provided [context]. - /// - /// You may register components with [context] in this method. The order in which components - /// are registered does not matter. - /// - /// Example: - /// - /// class Car implements APIComponentDocumenter { - /// @override - /// void documentComponents(APIDocumentContext context) { - /// context.schema.register("Car", APISchemaObject.object({ - /// "make": APISchemaObject.string(), - /// "model": APISchemaObject.string(), - /// "year": APISchemaObject.integer(), - /// })); - /// } - /// } - /// - /// See [APIDocumentContext] for more details. - void documentComponents(APIDocumentContext context); -} - -/// Defines methods for documenting OpenAPI operations in a Controller. -/// -/// The documentation process calls these methods for every Controller in your ApplicationChannel. -/// You implement [documentOperations] to create or modify [APIOperation] objects that describe the -/// HTTP operations that a controller handler. -abstract class APIOperationDocumenter { - /// Returns a map of API paths handled by this object. - /// - /// This method is implemented by Router to provide the paths of an OpenAPI document - /// and typically shouldn't be overridden by another controller. - Map documentPaths(APIDocumentContext context); - - /// Documents the API operations handled by this object. - /// - /// You implement this method to create or modify [APIOperation] objects that describe the - /// HTTP operations that a controller handles. Each controller in the channel, starting with - /// the entry point, have this method. - /// - /// By default, a controller returns the operations created by its linked controllers. - /// - /// Endpoint controllers should override this method to create a [Map] of [APIOperation] objects, where the - /// key is a [String] representation of the status code the response is for. Example: - /// - /// @override - /// Map documentOperations(APIDocumentContext context, APIPath path) { - /// if (path.containsPathParameters(['id'])) { - /// return { - /// "get": APIOperation("Get one thing", { - /// "200": APIResponse(...) - /// }) - /// }; - /// } - /// - /// return { - /// "get": APIOperation("Get some things", { - /// "200": APIResponse(...) - /// }) - /// }; - /// } - /// - /// Middleware controllers should override this method to call the superclass' implementation (which gathers - /// the operation objects from an endpoint controller) and then modify those operations before returning them. - /// - /// @override - /// Map documentOperations(APIDocumentContext context, APIPath path) { - /// final ops = super.documentOperation(context, path); - /// - /// // add x-api-key header parameter to each operation - /// ops.values.forEach((op) { - /// op.addParameter(new APIParameter.header("x-api-key, schema: new APISchemaObject.string())); - /// }); - /// - /// return ops; - /// } - Map documentOperations( - APIDocumentContext context, - String route, - APIPath path, - ); -} - -/// An object that contains information about [APIDocument] being generated. -/// -/// This class serves as a context for the API documentation process, providing access to various -/// component collections and utility methods for managing the documentation generation. -/// -/// Component registries for each type of component - e.g. [schema], [responses] - are used to -/// register and reference those types. -class APIDocumentContext { - /// Creates a new [APIDocumentContext] instance. - /// - /// This constructor initializes the context with the provided [document] and sets up - /// various [APIComponentCollection] instances for different types of API components. - /// These collections are used to manage and reference reusable components throughout - /// the API documentation process. - /// - /// The following component collections are initialized: - /// - [schema]: For reusable [APISchemaObject] components. - /// - [responses]: For reusable [APIResponse] components. - /// - [parameters]: For reusable [APIParameter] components. - /// - [requestBodies]: For reusable [APIRequestBody] components. - /// - [headers]: For reusable [APIHeader] components. - /// - [securitySchemes]: For reusable [APISecurityScheme] components. - /// - [callbacks]: For reusable [APICallback] components. - /// - /// Each collection is associated with its corresponding component map in the [document]. - APIDocumentContext(this.document) - : schema = APIComponentCollection._( - "schemas", - document.components!.schemas, - ), - responses = APIComponentCollection._( - "responses", - document.components!.responses, - ), - parameters = APIComponentCollection._( - "parameters", - document.components!.parameters, - ), - requestBodies = APIComponentCollection._( - "requestBodies", - document.components!.requestBodies, - ), - headers = APIComponentCollection._( - "headers", - document.components!.headers, - ), - securitySchemes = APIComponentCollection._( - "securitySchemes", - document.components!.securitySchemes, - ), - callbacks = APIComponentCollection._( - "callbacks", - document.components!.callbacks, - ); - - /// The OpenAPI document being created and populated during the documentation process. - /// - /// This [APIDocument] instance represents the root of the OpenAPI specification - /// structure. It contains all the components, paths, and other information - /// that will be included in the final OpenAPI document. - final APIDocument document; - - /// Reusable [APISchemaObject] components. - /// - /// This collection manages and provides access to reusable schema components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Schema components are used to define the structure of request and response - /// bodies, as well as other data structures used in the API. - final APIComponentCollection schema; - - /// Reusable [APIResponse] components. - /// - /// This collection manages and provides access to reusable response components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Response components are used to define standard responses that can be - /// reused across multiple operations in the API, promoting consistency - /// and reducing duplication in the API specification. - final APIComponentCollection responses; - - /// Reusable [APIParameter] components. - /// - /// This collection manages and provides access to reusable parameter components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Parameter components are used to define common parameters that can be - /// reused across multiple operations in the API, such as query parameters, - /// path parameters, or header parameters. This promotes consistency and - /// reduces duplication in the API specification. - final APIComponentCollection parameters; - - /// Reusable [APIRequestBody] components. - /// - /// This collection manages and provides access to reusable request body components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Request body components are used to define standard request bodies that can be - /// reused across multiple operations in the API, promoting consistency - /// and reducing duplication in the API specification. - final APIComponentCollection requestBodies; - - /// Reusable [APIHeader] components. - /// - /// This collection manages and provides access to reusable header components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Header components are used to define common headers that can be - /// reused across multiple operations in the API. This promotes consistency - /// and reduces duplication in the API specification. Headers can be used - /// for various purposes, such as authentication tokens, API versioning, - /// or custom metadata. - final APIComponentCollection headers; - - /// Reusable [APISecurityScheme] components. - /// - /// This collection manages and provides access to reusable security scheme components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Security scheme components are used to define the security mechanisms that can be - /// used across the API. This includes authentication methods such as API keys, - /// HTTP authentication, OAuth2 flows, and OpenID Connect. By defining these - /// security schemes as reusable components, they can be easily applied to - /// different operations or the entire API, ensuring consistent security - /// documentation and implementation. - final APIComponentCollection securitySchemes; - - /// Reusable [APICallback] components. - /// - /// This collection manages and provides access to reusable callback components - /// in the OpenAPI document. These components can be registered, referenced, - /// and retrieved throughout the API documentation process. - /// - /// Callback components are used to define asynchronous, out-of-band requests - /// that may be initiated by the API provider after the initial request has been - /// processed. They are typically used for webhooks or other event-driven - /// interactions. By defining callbacks as reusable components, they can be - /// easily referenced and applied to different operations in the API specification, - /// promoting consistency and reducing duplication. - final APIComponentCollection callbacks; - - /// A list of deferred operations to be executed during the finalization process. - /// - /// This list stores functions that represent asynchronous operations that need to be - /// performed before the API documentation is finalized. These operations are typically - /// added using the [defer] method and are executed in order during the [finalize] process. - List _deferredOperations = []; - - /// Schedules an asynchronous operation to be executed during the documentation process. - /// - /// Documentation methods are synchronous. Asynchronous methods may be called and awaited on - /// in [document]. All [document] closures will be executes and awaited on before finishing [document]. - /// These closures are called in the order they were added. - void defer(FutureOr Function() document) { - _deferredOperations.add(document); - } - - /// Finalizes the API document and returns it as a serializable [Map]. - /// - /// This method is invoked by the command line tool for creating OpenAPI documents. - Future> finalize() async { - final dops = _deferredOperations; - _deferredOperations = []; - - await Future.forEach(dops, (Function dop) => dop()); - - document.paths!.values - .expand((p) => p!.operations.values) - .where((op) => op!.security != null) - .expand((op) => op!.security!) - .forEach((req) { - req.requirements!.forEach((schemeName, scopes) { - final scheme = document.components!.securitySchemes[schemeName]; - if (scheme!.type == APISecuritySchemeType.oauth2) { - for (final flow in scheme.flows!.values) { - for (final scope in scopes) { - if (!flow!.scopes!.containsKey(scope)) { - flow.scopes![scope] = ""; - } - } - } - } - }); - }); - - return document.asMap(); - } -} - -/// A collection of reusable OpenAPI objects. -/// -/// This class manages a collection of reusable OpenAPI components of type [T], -/// which must extend [APIObject]. It provides methods for registering, retrieving, -/// and referencing components within an OpenAPI document. -/// -/// The collection supports two ways of referencing components: -/// 1. By name: Components can be registered with a string name and retrieved using that name. -/// 2. By type: Components can be associated with a Dart Type and retrieved using that Type. -/// -/// This class is typically used within an [APIDocumentContext] to manage different -/// types of OpenAPI components such as schemas, responses, parameters, etc. -/// -/// Key features: -/// - Register components with [register] -/// - Retrieve components by name with [getObject] or the [] operator -/// - Retrieve components by Type with [getObjectWithType] -/// - Check if a Type has been registered with [hasRegisteredType] -/// -/// The class also handles deferred resolution of Type-based references, allowing -/// components to be referenced before they are fully defined. -class APIComponentCollection { - /// Creates a new [APIComponentCollection] instance. - /// - /// This constructor is private and is used internally to initialize - /// the component collection with a specific type name and component map. - /// - /// [_typeName] is a string that represents the type of components in this collection. - /// It is used to construct the reference URIs for the components. - /// - /// [_componentMap] is a map that stores the actual components, with their names as keys. - /// This map is used to register and retrieve components by name. - APIComponentCollection._(this._typeName, this._componentMap); - - /// The name of the component type managed by this collection. - /// - /// This string is used to construct reference URIs for components in the OpenAPI document. - /// It typically corresponds to the plural form of the component type, such as "schemas", - /// "responses", "parameters", etc. - final String _typeName; - - /// A map that stores the components of type [T] with their names as keys. - /// - /// This map is used to store and retrieve components that have been registered - /// with the [APIComponentCollection]. The keys are the names given to the - /// components when they are registered, and the values are the actual component - /// objects of type [T]. - /// - /// This map is populated by the [register] method and accessed by various - /// other methods in the class to retrieve registered components. - final Map _componentMap; - - /// A map that associates Dart types with their corresponding API components. - /// - /// This map is used to store references between Dart types and their registered - /// API components. When a component is registered with a specific type using - /// the [register] method, an entry is added to this map. - /// - /// The keys are Dart [Type] objects representing the types associated with - /// the components, and the values are the corresponding API components of type [T]. - /// - /// This map is used internally to resolve type-based references and to check - /// if a specific type has been registered using [hasRegisteredType]. - final Map _typeReferenceMap = {}; - - /// A map that stores [Completer] objects for deferred type resolution. - /// - /// This map is used to handle cases where a component is referenced by its Type - /// before it has been registered. The keys are Dart [Type] objects, and the values - /// are [Completer] objects that will be completed when the corresponding component - /// is registered. - /// - /// When a component is requested by type using [getObjectWithType] and it hasn't - /// been registered yet, a new [Completer] is added to this map. Later, when the - /// component is registered using [register], the corresponding [Completer] is - /// completed, allowing any pending references to be resolved. - /// - /// This mechanism enables forward references in the API documentation process, - /// allowing components to be used before they are fully defined. - final Map> _resolutionMap = {}; - - /// Registers a component with a given name and optionally associates it with a Type. - /// - /// [component] will be stored in the OpenAPI document. The component will be usable - /// by other objects by its [name]. - /// - /// If this component is represented by a class, provide it as [representation]. - /// Objects may reference either [name] or [representation] when using a component. - void register(String name, T component, {Type? representation}) { - if (_componentMap.containsKey(name)) { - return; - } - - if (representation != null && - _typeReferenceMap.containsKey(representation)) { - return; - } - - _componentMap[name] = component; - - if (representation != null) { - final refObject = getObject(name); - _typeReferenceMap[representation] = refObject; - - if (_resolutionMap.containsKey(representation)) { - _resolutionMap[representation]!.complete(refObject); - _resolutionMap.remove(representation); - } - } - } - - /// Returns a reference object in this collection with the given [name]. - /// - /// See [getObject]. - T operator [](String name) => getObject(name); - - /// Returns an object that references a component named [name]. - /// - /// This method creates and returns a reference object of type [T] that points to - /// a component in the OpenAPI document with the given [name]. The returned object - /// is always a reference; it does not contain the actual values of the component. - /// - /// An object is always returned, even if no component named [name] exists. - /// If after [APIDocumentContext.finalize] is called and no object - /// has been registered for [name], an error is thrown. - T getObject(String name) { - final obj = _getInstanceOf(); - obj.referenceURI = Uri(path: "/components/$_typeName/$name"); - return obj; - } - - /// Returns an object that references a component registered for [type]. - /// - /// This method creates and returns a reference object of type [T] that points to - /// a component in the OpenAPI document associated with the given [type]. - /// - /// An object is always returned, even if no component named has been registered - /// for [type]. If after [APIDocumentContext.finalize] is called and no object - /// has been registered for [type], an error is thrown. - T getObjectWithType(Type type) { - final obj = _getInstanceOf(); - obj.referenceURI = - Uri(path: "/components/$_typeName/conduit-typeref:$type"); - - if (_typeReferenceMap.containsKey(type)) { - obj.referenceURI = _typeReferenceMap[type]!.referenceURI; - } else { - final completer = - _resolutionMap.putIfAbsent(type, () => Completer.sync()); - - completer.future.then((refObject) { - obj.referenceURI = refObject.referenceURI; - }); - } - - return obj; - } - - /// Creates and returns an empty instance of type [T]. - /// - /// This method is used internally to create empty instances of various API components - /// based on the generic type [T]. It supports the following types: - /// - [APISchemaObject] - /// - [APIResponse] - /// - [APIParameter] - /// - [APIRequestBody] - /// - [APIHeader] - /// - [APISecurityScheme] - /// - [APICallback] - /// - /// For each supported type, it calls the corresponding `empty()` constructor - /// and casts the result to type [T]. - /// - /// If [T] is not one of the supported types, this method throws a [StateError] - /// with a message indicating that it cannot reference an API object of that type. - /// - /// Returns: An empty instance of type [T]. - /// - /// Throws: [StateError] if [T] is not a supported API object type. - T _getInstanceOf() { - switch (T) { - case const (APISchemaObject): - return APISchemaObject.empty() as T; - case const (APIResponse): - return APIResponse.empty() as T; - case const (APIParameter): - return APIParameter.empty() as T; - case const (APIRequestBody): - return APIRequestBody.empty() as T; - case const (APIHeader): - return APIHeader.empty() as T; - case const (APISecurityScheme): - return APISecurityScheme.empty() as T; - case const (APICallback): - return APICallback.empty() as T; - } - - throw StateError("cannot reference API object of type $T"); - } - - /// Checks if a specific Type has been registered with this component collection. - /// - /// This method returns true if a component has been registered for the given [type] - /// using the [register] method with a non-null [representation] parameter. - /// - /// Parameters: - /// [type] - The Type to check for registration. - /// - /// Returns: - /// A boolean value indicating whether the [type] has been registered (true) or not (false). - /// - /// Example: - /// ```dart - /// final collection = APIComponentCollection(...); - /// collection.register('User', userSchema, representation: User); - /// - /// assert(collection.hasRegisteredType(User) == true); - /// assert(collection.hasRegisteredType(String) == false); - /// ``` - bool hasRegisteredType(Type type) { - return _typeReferenceMap.containsKey(type); - } -} diff --git a/packages/openapi/lib/src/object.dart b/packages/openapi/lib/src/object.dart deleted file mode 100644 index 4971302..0000000 --- a/packages/openapi/lib/src/object.dart +++ /dev/null @@ -1,94 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:meta/meta.dart'; - -/// Represents an API object with support for custom extensions. -/// -/// This class extends [Coding] and provides functionality to handle -/// custom extensions in API objects. Extensions are key-value pairs -/// where keys must start with "x-". -/// -/// The [extensions] map stores all custom extension data. -/// -/// When decoding, it automatically extracts and stores all extension fields. -/// When encoding, it validates that all extension keys start with "x-" and -/// includes them in the encoded output. -class APIObject extends Coding { - /// A map to store custom extension data for the API object. - /// - /// The keys in this map represent extension names, which must start with "x-". - /// The values can be of any type (dynamic) to accommodate various extension data. - /// - /// This map is used to store and retrieve custom extensions that are not part of - /// the standard API object properties. It allows for flexibility in adding - /// custom data to API objects without modifying the core structure. - Map extensions = {}; - - /// Decodes the API object from a [KeyedArchive]. - /// - /// This method overrides the [decode] method from the superclass and adds - /// functionality to handle custom extensions. - /// - /// It performs the following steps: - /// 1. Calls the superclass's decode method to handle standard fields. - /// 2. Identifies all keys in the [object] that start with "x-" as extension keys. - /// 3. For each extension key, decodes its value and stores it in the [extensions] map. - /// - /// This allows the APIObject to capture and store any custom extensions - /// present in the decoded data, making them accessible via the [extensions] property. - /// - /// [object]: The [KeyedArchive] containing the encoded data to be decoded. - @mustCallSuper - @override - void decode(KeyedArchive object) { - super.decode(object); - - final extensionKeys = object.keys.where((k) => k.startsWith("x-")); - for (final key in extensionKeys) { - extensions[key] = object.decode(key); - } - } - - /// Encodes the API object into a [KeyedArchive]. - /// - /// This method overrides the [encode] method from the superclass and adds - /// functionality to handle custom extensions. - /// - /// It performs the following steps: - /// 1. Validates that all keys in the [extensions] map start with "x-". - /// If any invalid keys are found, it throws an [ArgumentError] with details. - /// 2. Encodes each key-value pair from the [extensions] map into the [object]. - /// - /// This ensures that all custom extensions are properly encoded and that - /// the extension naming convention (starting with "x-") is enforced. - /// - /// Throws: - /// [ArgumentError]: If any extension key does not start with "x-". - /// - /// [object]: The [KeyedArchive] where the encoded data will be stored. - @override - @mustCallSuper - void encode(KeyedArchive object) { - final invalidKeys = extensions.keys - .where((key) => !key.startsWith("x-")) - .map((key) => "'$key'") - .toList(); - if (invalidKeys.isNotEmpty) { - throw ArgumentError( - "extension keys must start with 'x-'. The following keys are invalid: ${invalidKeys.join(", ")}", - ); - } - - extensions.forEach((key, value) { - object.encode(key, value); - }); - } -} diff --git a/packages/openapi/lib/src/util/list_helper.dart b/packages/openapi/lib/src/util/list_helper.dart deleted file mode 100644 index ea8bb01..0000000 --- a/packages/openapi/lib/src/util/list_helper.dart +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Removes null entries from a list of nullable strings and returns a new list of non-nullable strings. -/// -/// This function takes a nullable list of nullable strings as input and performs two operations: -/// 1. It removes any null entries from the list. -/// 2. It converts the resulting list to a List. -/// -/// If the input list is null, the function returns null. -/// -/// Parameters: -/// [list] - The input list of nullable strings (List?) that may contain null entries. -/// -/// Returns: -/// A new List with all non-null entries from the input list, or null if the input list is null. -List? removeNullsFromList(List? list) { - if (list == null) return null; - - // Remove null entries from the list using the 'nonNulls' property - // which returns an Iterable containing only the non-null elements - // Convert the resulting Iterable to a List using toList() - return list.nonNulls.toList(); -} diff --git a/packages/openapi/lib/src/util/map_helper.dart b/packages/openapi/lib/src/util/map_helper.dart deleted file mode 100644 index 682b32f..0000000 --- a/packages/openapi/lib/src/util/map_helper.dart +++ /dev/null @@ -1,42 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Removes null values from a map and converts its type. -/// -/// This function takes a nullable [Map] with potentially nullable values -/// and returns a new [Map] with the following characteristics: -/// - All entries with null values are removed. -/// - The resulting map is non-nullable (both for the map itself and its values). -/// - If the input map is null, an empty map is returned. -/// -/// Parameters: -/// [map]: The input map of type `Map?` where `K` is the key type -/// and `V` is the value type. -/// -/// Returns: -/// A new `Map` with null values removed and non-nullable types. -Map removeNullsFromMap(Map? map) { - if (map == null) return {}; - - final fixed = {}; - - // Iterate through all keys in the input map - for (final key in map.keys) { - // Get the value associated with the current key - final value = map[key]; - // Check if the value is not null - if (value != null) { - // If the value is not null, add it to the 'fixed' map - // This effectively removes all null values from the original map - fixed[key] = value; - } - } - - return fixed; -} diff --git a/packages/openapi/lib/src/v2/document.dart b/packages/openapi/lib/src/v2/document.dart deleted file mode 100644 index c91947a..0000000 --- a/packages/openapi/lib/src/v2/document.dart +++ /dev/null @@ -1,347 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/util.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents an OpenAPI 2.0 specification document. -/// -/// This class encapsulates the structure and content of an OpenAPI 2.0 (formerly known as Swagger) specification. -/// It provides methods for creating, parsing, and serializing OpenAPI documents. -/// -/// Key features: -/// - Supports creation of empty documents or parsing from JSON/YAML maps. -/// - Implements the OpenAPI 2.0 structure, including info, paths, definitions, etc. -/// - Provides serialization to and deserialization from map representations. -/// - Includes type casting rules for proper data handling. -/// -/// Usage: -/// - Create an empty document: `var doc = APIDocument();` -/// - Parse from a map: `var doc = APIDocument.fromMap(jsonMap);` -/// - Serialize to a map: `var map = doc.asMap();` -/// -/// This class is part of the Protevus Platform and adheres to the OpenAPI 2.0 specification. -class APIDocument extends APIObject { - /// Creates an empty APIDocument instance. - /// - /// This constructor initializes a new APIDocument object with default values - /// for all its properties. It can be used as a starting point for building - /// an OpenAPI 2.0 specification programmatically. - APIDocument(); - - /// Creates an APIDocument instance from a decoded JSON or YAML document object. - /// - /// This constructor takes a Map representation of an OpenAPI 2.0 - /// specification and initializes an APIDocument object with its contents. - /// - /// The method uses KeyedArchive.unarchive to convert the map into a KeyedArchive, - /// allowing references within the document. It then calls the decode method to - /// populate the APIDocument instance with the data from the KeyedArchive. - /// - /// @param map A Map containing the decoded JSON or YAML data - /// of an OpenAPI 2.0 specification. - APIDocument.fromMap(Map map) { - decode(KeyedArchive.unarchive(map, allowReferences: true)); - } - - /// The OpenAPI Specification version that this document adheres to. - /// - /// This field is required and should always be set to "2.0" for OpenAPI 2.0 - /// (Swagger) specifications. It indicates that this APIDocument instance - /// represents an OpenAPI 2.0 specification. - String version = "2.0"; - - /// The metadata about the API. - /// - /// This property contains information such as the API title, description, - /// version, and other relevant metadata. It is represented by an instance - /// of the APIInfo class. - /// - /// The field is nullable, but initialized with a default APIInfo instance. - APIInfo? info = APIInfo(); - - /// The host (name or IP) serving the API. - /// - /// This optional field represents the host (name or IP) serving the API. - /// It must include the host name only and should not include the scheme - /// or sub-paths. It may include a port. If not specified, the host serving - /// the documentation is assumed to be the same as the host serving the API. - /// The value MAY be null to indicate that the host is not yet known. - String? host; - - /// The base path on which the API is served, relative to the host. - /// - /// This optional field represents the base path for all API operations. - /// If specified, it must start with a forward slash ("/"). If not specified, - /// the API is served directly under the host. The value MAY be null to - /// indicate that the base path is not yet known or is the root ("/"). - String? basePath; - - /// A list of tags used by the specification with additional metadata. - /// - /// The order of the tags can be used to reflect on their order by the parsing tools. - /// Not all tags that are used by the [Operation Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#operationObject) - /// must be declared. The tags that are not declared may be organized randomly or - /// based on the tools' logic. Each tag name in the list MUST be unique. - /// - /// This field is nullable and initialized as an empty list. - List? tags = []; - - /// The transfer protocol(s) used by the API. - /// - /// This list specifies the transfer protocol(s) that the API supports. - /// Common values include "http", "https", "ws" (WebSocket), and "wss" (secure WebSocket). - /// The order of the protocols does not matter. - /// - /// If the schemes is not included, the default scheme to be used is the one used to access - /// the OpenAPI definition itself. - /// - /// This field is nullable and initialized as an empty list. - List? schemes = []; - - /// The MIME types that the API can consume. - /// - /// This list specifies the MIME types of the request payloads that the API can process. - /// Common values might include "application/json", "application/xml", "application/x-www-form-urlencoded", etc. - /// - /// If this field is not specified, it is assumed that the API can consume any MIME type. - /// - /// This field is nullable and initialized as an empty list. - List? consumes = []; - - /// The MIME types that the API can produce. - /// - /// This list specifies the MIME types of the response payloads that the API can generate. - /// Common values might include "application/json", "application/xml", "text/plain", etc. - /// - /// If this field is not specified, it is assumed that the API can produce any MIME type. - /// - /// This field is nullable and initialized as an empty list. - List? produces = []; - - /// A list of security requirements for the API. - /// - /// Each item in this list is a map representing a security requirement. - /// The keys of these maps are the names of security schemes (as defined in [securityDefinitions]), - /// and their values are lists of scopes required for that scheme. - /// - /// An empty list means no security is required. - /// Multiple items in the list represent AND conditions, while multiple entries in a single map represent OR conditions. - /// - /// Example: - /// [ - /// {"api_key": []}, - /// {"oauth2": ["write:pets", "read:pets"]} - /// ] - /// This would require either an API key OR OAuth2 with both write:pets and read:pets scopes. - /// - /// This field is nullable and initialized as an empty list. - List>?>? security = []; - - /// A map of API paths, where each key is a path string and the value is an APIPath object. - /// - /// This property represents all the paths available in the API, including their operations, - /// parameters, and responses. Each path is a relative path to an individual endpoint. - /// The path is appended to the basePath in order to construct the full URL. - /// - /// The map is nullable and initialized as an empty map. Each APIPath object in the map - /// is also nullable, allowing for flexible path definitions. - /// - /// Example: - /// { - /// "/pets": APIPath(...), - /// "/users/{userId}": APIPath(...), - /// } - Map? paths = {}; - - /// A map of reusable responses that can be used across operations. - /// - /// This property defines response objects that can be referenced by multiple - /// operations in the API. Each key in the map is a name for the response, - /// and the corresponding value is an APIResponse object describing the response. - /// - /// These responses can be referenced using the '$ref' keyword in operation - /// responses, allowing for reuse and consistency across the API specification. - /// - /// The map is nullable, and each APIResponse object within it is also nullable, - /// providing flexibility in defining and referencing responses. - /// - /// Example: - /// { - /// "NotFound": APIResponse(...), - /// "InvalidInput": APIResponse(...), - /// } - Map? responses = {}; - - /// A map of reusable parameters that can be referenced from operations. - /// - /// This property defines parameter objects that can be used across multiple - /// operations in the API. Each key in the map is a unique name for the parameter, - /// and the corresponding value is an APIParameter object describing the parameter. - /// - /// These parameters can be referenced using the '$ref' keyword in operation - /// parameters, allowing for reuse and consistency across the API specification. - /// - /// The map is nullable, and each APIParameter object within it is also nullable, - /// providing flexibility in defining and referencing parameters. - /// - /// Example: - /// { - /// "userId": APIParameter(...), - /// "apiKey": APIParameter(...), - /// } - Map? parameters = {}; - - /// A map of reusable schema definitions that can be referenced throughout the API specification. - /// - /// This property defines schema objects that can be used to describe complex data structures - /// used in request bodies, response payloads, or as nested properties of other schemas. - /// Each key in the map is a unique name for the schema, and the corresponding value is an - /// APISchemaObject that describes the structure and constraints of the schema. - /// - /// These schema definitions can be referenced using the '$ref' keyword in other parts of the - /// API specification, allowing for reuse and simplification of complex data models. - /// - /// The map is nullable, and each APISchemaObject within it is also nullable, providing - /// flexibility in defining and referencing schemas. - /// - /// Example: - /// { - /// "User": APISchemaObject(...), - /// "Error": APISchemaObject(...), - /// } - Map? definitions = {}; - - /// A map of security schemes that can be used across the API specification. - /// - /// This property defines security scheme objects that can be referenced by the - /// [security] property or an operation's security property. Each key in the map - /// is a unique name for the security scheme, and the corresponding value is an - /// APISecurityScheme object describing the security scheme. - /// - /// These security definitions can be used to describe API keys, OAuth2 flows, - /// or other custom security mechanisms required by the API. - /// - /// The map is nullable, and each APISecurityScheme object within it is also nullable, - /// providing flexibility in defining and referencing security schemes. - /// - /// Example: - /// { - /// "api_key": APISecurityScheme(...), - /// "oauth2": APISecurityScheme(...), - /// } - Map? securityDefinitions = {}; - - /// Converts the APIDocument object to a Map. - /// - /// This method serializes the current APIDocument instance into a Map - /// representation. It uses the KeyedArchive.archive method to perform - /// the serialization, with the allowReferences parameter set to true. - /// - /// @return A Map containing the serialized data of the APIDocument. - Map asMap() { - return KeyedArchive.archive(this, allowReferences: true); - } - - /// Defines the type casting rules for specific properties of the APIDocument class. - /// - /// This map provides casting instructions for the following properties: - /// - "schemes": A list of strings - /// - "consumes": A list of strings - /// - "produces": A list of strings - /// - "security": A list of maps, where each map has string keys and list of string values - /// - /// These casting rules ensure that the data is properly typed when decoded from JSON or YAML. - @override - Map get castMap => { - "schemes": const cast.List(cast.string), - "consumes": const cast.List(cast.string), - "produces": const cast.List(cast.string), - "security": - const cast.List(cast.Map(cast.string, cast.List(cast.string))) - }; - - /// Decodes the APIDocument object from a KeyedArchive. - /// - /// This method populates the properties of the APIDocument instance using - /// data from the provided KeyedArchive object. It decodes various fields - /// such as version, host, basePath, schemes, consumes, produces, security, - /// info, tags, paths, responses, parameters, definitions, and - /// securityDefinitions. - /// - /// The method also removes null values from certain list properties and - /// creates instances of related API objects (e.g., APIInfo, APITag, APIPath) - /// as needed. - /// - /// @param object The KeyedArchive containing the encoded APIDocument data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - version = object["swagger"] as String; - host = object["host"] as String?; - basePath = object["basePath"] as String?; - schemes = removeNullsFromList(object["schemes"] as List?); - - /// remove - consumes = removeNullsFromList(object["consumes"] as List?); - produces = removeNullsFromList(object["produces"] as List?); - security = object["security"] as List>?>; - - info = object.decodeObject("info", () => APIInfo()); - tags = object.decodeObjects("tags", () => APITag()); - paths = object.decodeObjectMap("paths", () => APIPath()); - responses = object.decodeObjectMap("responses", () => APIResponse()); - parameters = object.decodeObjectMap("parameters", () => APIParameter()); - definitions = - object.decodeObjectMap("definitions", () => APISchemaObject()); - securityDefinitions = object.decodeObjectMap( - "securityDefinitions", - () => APISecurityScheme(), - ); - } - - /// Encodes the APIDocument object into a KeyedArchive. - /// - /// This method serializes the properties of the APIDocument instance into - /// the provided KeyedArchive object. It encodes various fields such as - /// version (as "swagger"), host, basePath, schemes, consumes, produces, - /// paths, info, parameters, responses, securityDefinitions, security, - /// tags, and definitions. - /// - /// The method uses different encoding techniques based on the property type: - /// - Simple properties are encoded directly. - /// - Object maps are encoded using encodeObjectMap. - /// - Single objects (like info) are encoded using encodeObject. - /// - Lists of objects (like tags) are encoded using encodeObjects. - /// - /// @param object The KeyedArchive to encode the APIDocument data into. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("swagger", version); - object.encode("host", host); - object.encode("basePath", basePath); - object.encode("schemes", schemes); - object.encode("consumes", consumes); - object.encode("produces", produces); - object.encodeObjectMap("paths", paths); - object.encodeObject("info", info); - object.encodeObjectMap("parameters", parameters); - object.encodeObjectMap("responses", responses); - object.encodeObjectMap("securityDefinitions", securityDefinitions); - object.encode("security", security); - object.encodeObjects("tags", tags); - object.encodeObjectMap("definitions", definitions); - } -} diff --git a/packages/openapi/lib/src/v2/header.dart b/packages/openapi/lib/src/v2/header.dart deleted file mode 100644 index 445e9c7..0000000 --- a/packages/openapi/lib/src/v2/header.dart +++ /dev/null @@ -1,87 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// A class representing an API header in the OpenAPI specification. -/// -/// This class extends [APIProperty] and provides additional functionality -/// specific to API headers. It includes properties for description and items -/// (for array types), as well as methods for encoding and decoding the header -/// object. -/// -/// Properties: -/// - description: A string describing the header. -/// - items: An [APIProperty] object representing the items in an array (only used when type is array). -/// -/// The class overrides the [decode] and [encode] methods from [APIProperty] -/// to handle the specific properties of an API header. -class APIHeader extends APIProperty { - /// Default constructor for the APIHeader class. - /// - /// Creates a new instance of APIHeader without initializing any properties. - /// Properties can be set after instantiation or through the decode method. - APIHeader(); - - /// A string that provides a brief description of the header. - /// - /// This property can be used to give more context or explanation about - /// the purpose and usage of the header in the API documentation. - String? description; - - /// An [APIProperty] object representing the items in an array. - /// - /// This property is only used when the [type] is set to [APIType.array]. - /// It describes the structure and properties of the individual items - /// within the array. The [items] property can be null if not applicable. - APIProperty? items; - - /// Decodes the APIHeader object from a [KeyedArchive]. - /// - /// This method overrides the [decode] method from [APIProperty] to handle - /// the specific properties of an API header. - /// - /// It performs the following operations: - /// 1. Calls the superclass decode method to handle common properties. - /// 2. Decodes the 'description' field from the archive. - /// 3. If the header type is an array, it decodes the 'items' field as an APIProperty. - /// - /// Parameters: - /// - object: A [KeyedArchive] containing the encoded header data. - @override - void decode(KeyedArchive object) { - super.decode(object); - description = object.decode("description"); - if (type == APIType.array) { - items = object.decodeObject("items", () => APIProperty()); - } - } - - /// Encodes the APIHeader object into a [KeyedArchive]. - /// - /// This method overrides the [encode] method from [APIProperty] to handle - /// the specific properties of an API header. - /// - /// It performs the following operations: - /// 1. Calls the superclass encode method to handle common properties. - /// 2. Encodes the 'description' field into the archive. - /// 3. If the header type is an array, it encodes the 'items' field as an APIProperty. - /// - /// Parameters: - /// - object: A [KeyedArchive] where the encoded header data will be stored. - @override - void encode(KeyedArchive object) { - super.encode(object); - object.encode("description", description); - if (type == APIType.array) { - object.encodeObject("items", items); - } - } -} diff --git a/packages/openapi/lib/src/v2/metadata.dart b/packages/openapi/lib/src/v2/metadata.dart deleted file mode 100644 index 47b14aa..0000000 --- a/packages/openapi/lib/src/v2/metadata.dart +++ /dev/null @@ -1,363 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; - -/// Represents metadata for an API in the OpenAPI specification. -/// -/// This class contains information about the API such as its title, description, -/// version, terms of service, contact information, and license details. -/// -/// The [APIInfo] class extends [APIObject] and provides methods to decode from -/// and encode to a [KeyedArchive] object, which is useful for serialization and -/// deserialization of API metadata. -/// -/// Properties: -/// - [title]: The title of the API (required). -/// - [description]: A brief description of the API (optional). -/// - [version]: The version of the API (optional). -/// - [termsOfServiceURL]: The URL to the Terms of Service for the API (optional). -/// - [contact]: The contact information for the API (optional). -/// - [license]: The license information for the API (optional). -/// -/// The class provides a default constructor [APIInfo()] that initializes all -/// properties with default values. It also overrides [decode] and [encode] methods -/// to handle serialization and deserialization of the API metadata. -class APIInfo extends APIObject { - /// Creates a new instance of APIInfo with default values. - /// - /// This constructor initializes an APIInfo object with predefined default - /// values for its properties. These include a default title, description, - /// version, terms of service URL, contact information, and license details. - APIInfo(); - - /// The title of the API. - /// - /// This property represents the name or title of the API as defined in the OpenAPI specification. - /// It is a required field and provides a concise, meaningful name to the API. - String title = "API"; - - /// A brief description of the API. - /// - /// This property provides a more detailed explanation of the API's purpose, - /// functionality, or any other relevant information. It's optional and defaults - /// to "Description" if not specified. - String? description = "Description"; - - /// The version of the API. - /// - /// This property represents the version number of the API as defined in the OpenAPI specification. - /// It is typically a string in the format of "major.minor.patch" (e.g., "1.0.0"). - /// The default value is "1.0" if not specified. - String? version = "1.0"; - - /// The URL to the Terms of Service for the API. - /// - /// This property represents the URL where the Terms of Service for the API can be found. - /// It's an optional field in the OpenAPI specification and defaults to an empty string if not specified. - String? termsOfServiceURL = ""; - - /// The contact information for the API. - /// - /// This property contains details about the contact person or organization - /// responsible for the API. It includes information such as name, URL, and email. - /// If not specified, it defaults to an instance of APIContact with default values. - APIContact? contact = APIContact(); - - /// The license information for the API. - /// - /// This property contains details about the license under which the API is provided. - /// It includes information such as the license name and URL. - /// If not specified, it defaults to an instance of APILicense with default values. - APILicense? license = APILicense(); - - /// Decodes the APIInfo object from a KeyedArchive. - /// - /// This method overrides the base decode method to populate the APIInfo - /// properties from a KeyedArchive object. It decodes the following properties: - /// - title: The API title (required, defaults to an empty string if not present) - /// - description: A brief description of the API (optional) - /// - termsOfServiceURL: URL to the terms of service (optional) - /// - contact: Contact information, decoded as an APIContact object (optional) - /// - license: License information, decoded as an APILicense object (optional) - /// - version: The API version (optional) - /// - /// The method first calls the superclass decode method, then decodes each - /// specific property of the APIInfo class. - @override - void decode(KeyedArchive object) { - super.decode(object); - - title = object.decode("title") ?? ''; - description = object.decode("description"); - termsOfServiceURL = object.decode("termsOfService"); - contact = object.decodeObject("contact", () => APIContact()); - license = object.decodeObject("license", () => APILicense()); - version = object.decode("version"); - } - - /// Encodes the APIInfo object into a KeyedArchive. - /// - /// This method overrides the base encode method to serialize the APIInfo - /// properties into a KeyedArchive object. It encodes the following properties: - /// - title: The API title - /// - description: A brief description of the API - /// - version: The API version - /// - termsOfService: URL to the terms of service - /// - contact: Contact information, encoded as an APIContact object - /// - license: License information, encoded as an APILicense object - /// - /// The method first calls the superclass encode method, then encodes each - /// specific property of the APIInfo class. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("title", title); - object.encode("description", description); - object.encode("version", version); - object.encode("termsOfService", termsOfServiceURL); - object.encodeObject("contact", contact); - object.encodeObject("license", license); - } -} - -/// Represents contact information in the OpenAPI specification. -/// -/// This class extends [APIObject] and provides properties and methods to -/// handle contact details for an API, including name, URL, and email. -/// -/// Properties: -/// - [name]: The name of the contact person or organization. -/// - [url]: The URL pointing to the contact information. -/// - [email]: The email address of the contact person or organization. -/// -/// The class provides methods to decode from and encode to a [KeyedArchive] object, -/// which is useful for serialization and deserialization of contact information. -class APIContact extends APIObject { - /// Creates a new instance of APIContact with default values. - /// - /// This constructor initializes an APIContact object with predefined default - /// values for its properties. These include a default name, URL, and email address. - APIContact(); - - /// Decodes the APIContact object from a KeyedArchive. - /// - /// This method overrides the base decode method to populate the APIContact - /// properties from a KeyedArchive object. It decodes the following properties: - /// - name: The name of the contact person or organization (defaults to "default" if not present) - /// - url: The URL pointing to the contact information (defaults to "http://localhost" if not present) - /// - email: The email address of the contact person or organization (defaults to "default" if not present) - /// - /// The method first calls the superclass decode method, then decodes each - /// specific property of the APIContact class, providing default values if - /// the properties are not present in the KeyedArchive. - /// - /// Parameters: - /// object: The KeyedArchive containing the encoded APIContact data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name") ?? "default"; - url = object.decode("url") ?? "http://localhost"; - email = object.decode("email") ?? "default"; - } - - /// The name of the contact person or organization. - /// - /// This property represents the name associated with the API contact information. - /// It defaults to "default" if not specified. - String name = "default"; - - /// The URL pointing to the contact information. - /// - /// This property represents the URL associated with the API contact information. - /// It provides a web address where users can find more details about the contact. - /// The default value is "http://localhost" if not specified. - String url = "http://localhost"; - - /// The email address of the contact person or organization. - /// - /// This property represents the email address associated with the API contact information. - /// It provides a means of electronic communication for users or developers who need to - /// reach out regarding the API. The default value is "default" if not specified. - String email = "default"; - - /// Encodes the APIContact object into a KeyedArchive. - /// - /// This method overrides the base encode method to serialize the APIContact - /// properties into a KeyedArchive object. It encodes the following properties: - /// - name: The name of the contact person or organization - /// - url: The URL pointing to the contact information - /// - email: The email address of the contact person or organization - /// - /// The method first calls the superclass encode method, then encodes each - /// specific property of the APIContact class. - /// - /// Parameters: - /// object: The KeyedArchive to encode the APIContact data into. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("name", name); - object.encode("url", url); - object.encode("email", email); - } -} - -/// Represents a copyright/open source license in the OpenAPI specification. -/// -/// This class extends [APIObject] and provides properties and methods to -/// handle license information for an API, including the license name and URL. -/// -/// Properties: -/// - [name]: The name of the license. -/// - [url]: The URL where the license can be viewed. -/// -/// The class provides methods to decode from and encode to a [KeyedArchive] object, -/// which is useful for serialization and deserialization of license information. -class APILicense extends APIObject { - /// Creates a new instance of APILicense with default values. - /// - /// This constructor initializes an APILicense object with predefined default - /// values for its properties. These include a default name and URL for the license. - APILicense(); - - /// Decodes the APILicense object from a KeyedArchive. - /// - /// This method overrides the base decode method to populate the APILicense - /// properties from a KeyedArchive object. It decodes the following properties: - /// - name: The name of the license (defaults to "default" if not present) - /// - url: The URL where the license can be viewed (defaults to "http://localhost" if not present) - /// - /// The method first calls the superclass decode method, then decodes each - /// specific property of the APILicense class, providing default values if - /// the properties are not present in the KeyedArchive. - /// - /// Parameters: - /// object: The KeyedArchive containing the encoded APILicense data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name") ?? "default"; - url = object.decode("url") ?? "http://localhost"; - } - - /// The name of the license. - /// - /// This property represents the name of the license associated with the API. - /// It provides a short identifier for the license type, such as "MIT", "Apache 2.0", etc. - /// The default value is "default" if not specified. - String name = "default"; - - /// The URL where the license can be viewed. - /// - /// This property represents the URL associated with the API license information. - /// It provides a web address where users can find the full text or details of the license. - /// The default value is "http://localhost" if not specified. - String url = "http://localhost"; - - /// Encodes the APILicense object into a KeyedArchive. - /// - /// This method overrides the base encode method to serialize the APILicense - /// properties into a KeyedArchive object. It encodes the following properties: - /// - name: The name of the license - /// - url: The URL where the license can be viewed - /// - /// The method first calls the superclass encode method, then encodes each - /// specific property of the APILicense class. - /// - /// Parameters: - /// object: The KeyedArchive to encode the APILicense data into. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("name", name); - object.encode("url", url); - } -} - -/// Represents a tag in the OpenAPI specification. -/// -/// This class extends [APIObject] and provides properties and methods to -/// handle tag information for an API, including the tag name and description. -/// -/// Properties: -/// - [name]: The name of the tag. -/// - [description]: A short description of the tag. -/// -/// The class provides methods to decode from and encode to a [KeyedArchive] object, -/// which is useful for serialization and deserialization of tag information. -class APITag extends APIObject { - /// Creates a new instance of APITag. - /// - /// This constructor initializes an APITag object without setting any default values. - /// The [name] and [description] properties will be null until explicitly set or - /// populated through the [decode] method. - APITag(); - - /// Decodes the APITag object from a KeyedArchive. - /// - /// This method overrides the base decode method to populate the APITag - /// properties from a KeyedArchive object. It decodes the following properties: - /// - name: The name of the tag - /// - description: A short description of the tag - /// - /// The method first calls the superclass decode method, then decodes each - /// specific property of the APITag class. - /// - /// Parameters: - /// object: The KeyedArchive containing the encoded APITag data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - description = object.decode("description"); - } - - /// The name of the tag. - /// - /// This property represents the name of the tag associated with the API. - /// It is used to group operations in the API documentation. - /// The value can be null if not specified. - String? name; - - /// A short description of the tag. - /// - /// This property provides a brief explanation of the tag's purpose or meaning. - /// It can be used to give more context about how the tag is used in the API. - /// The value can be null if no description is provided. - String? description; - - /// Encodes the APITag object into a KeyedArchive. - /// - /// This method overrides the base encode method to serialize the APITag - /// properties into a KeyedArchive object. It encodes the following properties: - /// - name: The name of the tag - /// - description: A short description of the tag - /// - /// The method first calls the superclass encode method, then encodes each - /// specific property of the APITag class. - /// - /// Parameters: - /// object: The KeyedArchive to encode the APITag data into. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("name", name); - object.encode("description", description); - } -} diff --git a/packages/openapi/lib/src/v2/operation.dart b/packages/openapi/lib/src/v2/operation.dart deleted file mode 100644 index 5008085..0000000 --- a/packages/openapi/lib/src/v2/operation.dart +++ /dev/null @@ -1,218 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents a HTTP operation (a path/method pair) in the OpenAPI specification. -/// -/// This class extends [APIObject] and provides properties and methods to handle -/// various aspects of an API operation, including: -/// - Tags associated with the operation -/// - Summary and description of the operation -/// - Consumes and produces content types -/// - Deprecated status -/// - Parameters and responses -/// - Security requirements -/// -/// The class implements [Codable] interface through [APIObject], allowing -/// for easy encoding and decoding of the operation data. -class APIOperation extends APIObject { - /// Creates a new instance of [APIOperation]. - /// - /// This constructor initializes a new [APIOperation] object without any - /// predefined values. Properties can be set after initialization. - APIOperation(); - - /// Defines the type casting rules for specific properties of the [APIOperation] class. - /// - /// This getter method returns a [Map] where the keys are property names and the values - /// are [cast.Cast] objects that define how these properties should be type-casted. - /// - /// The map includes the following castings: - /// - "tags": A list of strings - /// - "consumes": A list of strings - /// - "produces": A list of strings - /// - "schemes": A list of strings - /// - "security": A list of maps, where each map has string keys and list of string values - /// - /// This casting information is used to ensure type safety when decoding JSON data - /// into [APIOperation] objects. - @override - Map get castMap => { - "tags": const cast.List(cast.string), - "consumes": const cast.List(cast.string), - "produces": const cast.List(cast.string), - "schemes": const cast.List(cast.string), - "security": - const cast.List(cast.Map(cast.string, cast.List(cast.string))), - }; - - /// A brief summary of the operation. - /// - /// This property provides a short description of what the operation does. - /// It's typically used to give a quick overview of the operation's purpose - /// in API documentation or user interfaces. - String? summary = ""; - - /// A detailed description of the operation. - /// - /// This property provides a more comprehensive explanation of what the operation does, - /// how it works, and any important details that users or developers should know. - /// It can include information about request/response formats, authentication requirements, - /// or any other relevant details about the operation's behavior. - String? description = ""; - - /// The unique identifier for this operation. - /// - /// This property represents the operationId as defined in the OpenAPI specification. - /// It's used to uniquely identify an operation within an API. The operationId is often - /// used as a reference point in documentation, client libraries, and other tooling. - String? id; - - /// Indicates whether this operation is deprecated. - /// - /// If set to `true`, it means that the operation is still functional but its - /// use is discouraged. Clients should migrate away from using this operation. - /// If `false` or `null`, the operation is considered active and recommended for use. - bool? deprecated; - - /// A list of tags associated with this operation. - /// - /// Tags are used to group operations in the OpenAPI specification. They can be used - /// for logical grouping of operations by resources or any other qualifier. - /// This property is nullable and can be an empty list if no tags are specified. - List? tags = []; - - /// A list of transfer protocols supported by this operation. - /// - /// This property specifies the schemes (such as 'http', 'https', 'ws', 'wss') - /// that the operation supports. It's typically used to indicate which - /// protocols can be used to access the API endpoint. - /// The list can be empty if no specific schemes are defined. - List? schemes = []; - - /// A list of MIME types the operation can consume. - /// - /// This property specifies the MIME types of the request payload that the operation - /// can process. It indicates the content types that the client can send in the request body. - /// Common values include 'application/json', 'application/xml', 'multipart/form-data', etc. - /// The list can be empty if the operation doesn't consume any specific MIME types. - List? consumes = []; - - /// A list of MIME types the operation can produce. - /// - /// This property specifies the MIME types of the response payload that the operation - /// can generate. It indicates the content types that the server will send in the response body. - /// Common values include 'application/json', 'application/xml', 'text/plain', etc. - /// The list can be empty if the operation doesn't produce any specific MIME types. - List? produces = []; - - /// A list of parameters for this operation. - /// - /// This property contains a list of [APIParameter] objects that define the - /// parameters accepted by the operation. These parameters can include path - /// parameters, query parameters, header parameters, and body parameters. - /// Each parameter specifies details such as name, location (in), type, and - /// whether it's required. - /// - /// The list can be empty if the operation doesn't require any parameters. - /// It's nullable to allow for cases where parameters are not specified. - List? parameters = []; - - /// A list of security requirements for this operation. - /// - /// This property defines the security schemes that apply to this operation. - /// Each item in the list is a map where: - /// - The key is the name of a security scheme defined in the global 'securityDefinitions'. - /// - The value is a list of scopes required for this operation (can be an empty list if no scopes are required). - /// - /// Multiple items in the list indicate that multiple security schemes can be used (OR relationship). - /// An empty list means that no security is required for this operation. - /// If this property is null, it inherits the global security requirements. - List>?>? security = []; - - /// A map of possible responses from this operation. - /// - /// The keys of this map are HTTP status codes (as strings), and the values - /// are [APIResponse] objects describing the response for that status code. - /// - /// For example, '200' might map to a successful response, '400' to a bad request - /// response, and so on. The map can include a 'default' key to describe the - /// response for any undocumented status codes. - /// - /// This property is nullable, allowing for operations that don't specify - /// their responses explicitly. - Map? responses = {}; - - /// Decodes the [APIOperation] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APIOperation] - /// instance from the provided [KeyedArchive] object. It decodes various fields - /// such as tags, summary, description, operationId, consumes, produces, deprecated - /// status, parameters, responses, schemes, and security requirements. - /// - /// The method first calls the superclass's decode method to handle any base - /// properties, then proceeds to decode specific [APIOperation] properties. - /// - /// For complex properties like parameters and responses, it uses specialized - /// decoding methods that create new instances of [APIParameter] and [APIResponse] - /// respectively. - /// - /// @param object The [KeyedArchive] containing the encoded data to be decoded. - @override - void decode(KeyedArchive object) { - super.decode(object); - - tags = object.decode("tags"); - summary = object.decode("summary"); - description = object.decode("description"); - id = object.decode("operationId"); - consumes = object.decode("consumes"); - produces = object.decode("produces"); - deprecated = object.decode("deprecated"); - parameters = object.decodeObjects("parameters", () => APIParameter()); - responses = object.decodeObjectMap("responses", () => APIResponse()); - schemes = object.decode("schemes"); - security = object.decode("security"); - } - - /// Encodes the [APIOperation] object into a [KeyedArchive]. - /// - /// This method is responsible for encoding the properties of the [APIOperation] - /// instance into the provided [KeyedArchive] object. It encodes various fields - /// such as tags, summary, description, operationId, consumes, produces, deprecated - /// status, parameters, responses, and security requirements. - /// - /// The method first calls the superclass's encode method to handle any base - /// properties, then proceeds to encode specific [APIOperation] properties. - /// - /// For complex properties like parameters and responses, it uses specialized - /// encoding methods that handle lists of objects and object maps respectively. - /// - /// @param object The [KeyedArchive] where the encoded data will be stored. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("tags", tags); - object.encode("summary", summary); - object.encode("description", description); - object.encode("operationId", id); - object.encode("consumes", consumes); - object.encode("produces", produces); - object.encode("deprecated", deprecated); - - object.encodeObjects("parameters", parameters); - object.encodeObjectMap("responses", responses); - object.encode("security", security); - } -} diff --git a/packages/openapi/lib/src/v2/parameter.dart b/packages/openapi/lib/src/v2/parameter.dart deleted file mode 100644 index 90e9d74..0000000 --- a/packages/openapi/lib/src/v2/parameter.dart +++ /dev/null @@ -1,241 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Enum representing the possible locations of a parameter in an API request. -/// -/// The possible values are: -/// - [query]: Parameter is passed as a query parameter in the URL -/// - [header]: Parameter is included in the request headers -/// - [path]: Parameter is part of the URL path -/// - [formData]: Parameter is sent as form data in the request body -/// - [body]: Parameter is sent in the request body (typically as JSON) -enum APIParameterLocation { query, header, path, formData, body } - -/// A utility class for encoding and decoding [APIParameterLocation] enum values. -class APIParameterLocationCodec { - /// Decodes a string representation of an API parameter location into an [APIParameterLocation] enum value. - /// - /// This method takes a [String] parameter [location] and returns the corresponding - /// [APIParameterLocation] enum value. If the input string doesn't match any known - /// location, the method returns null. - /// - /// Parameters: - /// [location] - A string representing the API parameter location. - /// - /// Returns: - /// The corresponding [APIParameterLocation] enum value, or null if no match is found. - static APIParameterLocation? decode(String? location) { - switch (location) { - case "query": - return APIParameterLocation.query; - case "header": - return APIParameterLocation.header; - case "path": - return APIParameterLocation.path; - case "formData": - return APIParameterLocation.formData; - case "body": - return APIParameterLocation.body; - default: - return null; - } - } - - /// Encodes an [APIParameterLocation] enum value into its string representation. - /// - /// This method takes an [APIParameterLocation] enum value as input and returns - /// the corresponding string representation. If the input is null or doesn't - /// match any known location, the method returns null. - /// - /// Parameters: - /// [location] - An [APIParameterLocation] enum value to be encoded. - /// - /// Returns: - /// A [String] representing the API parameter location, or null if the input is null or invalid. - static String? encode(APIParameterLocation? location) { - switch (location) { - case APIParameterLocation.query: - return "query"; - case APIParameterLocation.header: - return "header"; - case APIParameterLocation.path: - return "path"; - case APIParameterLocation.formData: - return "formData"; - case APIParameterLocation.body: - return "body"; - default: - return null; - } - } -} - -/// Represents a parameter in the OpenAPI specification. -/// -/// This class extends [APIProperty] and provides additional functionality -/// specific to API parameters. It includes properties such as name, description, -/// required status, and location of the parameter. -/// -/// The class supports two main parameter types: -/// 1. Body parameters: When [location] is [APIParameterLocation.body], it uses -/// [schema] to define the parameter structure. -/// 2. Non-body parameters: For all other locations, it uses properties inherited -/// from [APIProperty] and adds [allowEmptyValue] and [items] for array types. -/// -/// The class implements [Codable] through its superclass, providing [decode] and -/// [encode] methods for serialization and deserialization. -class APIParameter extends APIProperty { - /// Default constructor for [APIParameter]. - /// - /// Creates a new instance of [APIParameter] with default values. - /// All properties are initialized to their default values as defined in the class. - APIParameter(); - - /// The name of the API parameter. - /// - /// This property represents the name of the parameter as defined in the API specification. - /// It can be null if the name is not specified or not applicable. - String? name; - - /// A description of the API parameter. - /// - /// This property provides additional information about the parameter, - /// explaining its purpose, expected format, or any other relevant details. - /// It can be null if no description is provided. - String? description; - - /// Indicates whether the parameter is required. - /// - /// This boolean property determines if the API parameter is mandatory (true) or optional (false). - /// By default, it is set to false, meaning the parameter is optional unless specified otherwise. - bool isRequired = false; - - /// The location of the API parameter. - /// - /// This property specifies where the parameter should be placed in the API request. - /// It can be one of the following values from the [APIParameterLocation] enum: - /// - [APIParameterLocation.query]: Parameter is included in the URL query string - /// - [APIParameterLocation.header]: Parameter is included in the request headers - /// - [APIParameterLocation.path]: Parameter is part of the URL path - /// - [APIParameterLocation.formData]: Parameter is sent as form data in the request body - /// - [APIParameterLocation.body]: Parameter is sent in the request body (typically as JSON) - /// - /// The location can be null if it's not specified or not applicable. - APIParameterLocation? location; - - /// The schema object for the API parameter. - /// - /// This property is used when the [location] is [APIParameterLocation.body]. - /// It defines the structure and validation rules for the parameter in the request body. - /// The schema is represented as an [APISchemaObject], which can describe complex - /// data structures including nested objects and arrays. - /// - /// This property is null for parameters that are not in the body location. - APISchemaObject? schema; - - /// Indicates whether an empty value is allowed for this parameter. - /// - /// This property is only applicable for non-body parameters (i.e., when [location] is not [APIParameterLocation.body]). - /// When set to true, it allows the parameter to be sent with an empty value. - /// By default, it is set to false, meaning empty values are not allowed unless explicitly specified. - bool allowEmptyValue = false; - - /// Represents the items of an array-type parameter. - /// - /// This property is only used when [type] is [APIType.array]. It defines the - /// schema for the items in the array. The [APIProperty] object describes the - /// structure and validation rules for each item in the array. - /// - /// This property is null for non-array parameters or when not specified. - APIProperty? items; - - /// Decodes the parameter from a [KeyedArchive] object. - /// - /// This method populates the properties of the [APIParameter] instance - /// by decoding values from the provided [KeyedArchive] object. It handles - /// both body and non-body parameters differently: - /// - /// For all parameters: - /// - Decodes 'name', 'description', and 'in' (location) properties. - /// - Sets 'isRequired' based on the location or the 'required' field. - /// - /// For body parameters ([APIParameterLocation.body]): - /// - Decodes the 'schema' object. - /// - /// For non-body parameters: - /// - Calls the superclass decode method to handle common properties. - /// - Decodes 'allowEmptyValue'. - /// - For array types, decodes the 'items' property. - /// - /// Parameters: - /// [object] - The [KeyedArchive] containing the encoded parameter data. - @override - void decode(KeyedArchive object) { - name = object.decode("name"); - description = object.decode("description"); - location = APIParameterLocationCodec.decode(object.decode("in")); - if (location == APIParameterLocation.path) { - isRequired = true; - } else { - isRequired = object.decode("required") ?? false; - } - - if (location == APIParameterLocation.body) { - schema = object.decodeObject("schema", () => APISchemaObject()); - } else { - super.decode(object); - allowEmptyValue = object.decode("allowEmptyValue") ?? false; - if (type == APIType.array) { - items = object.decodeObject("items", () => APIProperty()); - } - } - } - - /// Encodes the parameter into a [KeyedArchive] object. - /// - /// This method serializes the properties of the [APIParameter] instance - /// into the provided [KeyedArchive] object. It handles both body and - /// non-body parameters differently: - /// - /// For all parameters: - /// - Encodes 'name', 'description', 'in' (location), and 'required' properties. - /// - /// For body parameters ([APIParameterLocation.body]): - /// - Encodes the 'schema' object. - /// - /// For non-body parameters: - /// - Calls the superclass encode method to handle common properties. - /// - Encodes 'allowEmptyValue' if it's true. - /// - For array types, encodes the 'items' property. - /// - /// Parameters: - /// [object] - The [KeyedArchive] to store the encoded parameter data. - @override - void encode(KeyedArchive object) { - object.encode("name", name); - object.encode("description", description); - object.encode("in", APIParameterLocationCodec.encode(location)); - object.encode("required", isRequired); - - if (location == APIParameterLocation.body) { - object.encodeObject("schema", schema); - } else { - super.encode(object); - if (allowEmptyValue) { - object.encode("allowEmptyValue", allowEmptyValue); - } - if (type == APIType.array) { - object.encodeObject("items", items); - } - } - } -} diff --git a/packages/openapi/lib/src/v2/path.dart b/packages/openapi/lib/src/v2/path.dart deleted file mode 100644 index 32a9d77..0000000 --- a/packages/openapi/lib/src/v2/path.dart +++ /dev/null @@ -1,103 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents an API path in the OpenAPI specification. -/// -/// This class extends [APIObject] and provides functionality to decode and encode -/// API path information, including parameters and operations. -/// -/// Properties: -/// - [parameters]: A list of [APIParameter] objects associated with this path. -/// - [operations]: A map of operation names to [APIOperation] objects for this path. -/// -/// The [decode] method populates the object from a [KeyedArchive], handling parameters -/// and operations separately. The [encode] method serializes the object back into -/// a [KeyedArchive]. -/// -/// Note: The handling of '$ref' keys is currently a todo item. -class APIPath extends APIObject { - /// Creates a new instance of [APIPath]. - /// - /// This constructor initializes an empty [APIPath] object. - /// The [parameters] list and [operations] map are initialized as empty - /// and can be populated later using the [decode] method or by directly - /// adding elements. - APIPath(); - - /// A list of API parameters associated with this path. - /// - /// This list contains [APIParameter] objects that define the parameters - /// applicable to all operations on this path. These parameters can include - /// path parameters, query parameters, header parameters, etc. - /// - /// Note: The list can contain null values, hence the use of [APIParameter?]. - List parameters = []; - - /// A map of operation names to [APIOperation] objects for this path. - /// - /// This map contains the HTTP methods (e.g., 'get', 'post', 'put', 'delete') - /// as keys, and their corresponding [APIOperation] objects as values. - /// - /// Each [APIOperation] describes the details of the API operation for that - /// specific HTTP method on this path. - /// - /// The use of [APIOperation?] allows for null values in the map. - Map operations = {}; - - /// Decodes the [APIPath] object from a [KeyedArchive]. - /// - /// This method populates the [APIPath] object with data from the provided [KeyedArchive]. - /// It handles the following cases: - /// - If a key is "$ref", it's currently not implemented (todo). - /// - If a key is "parameters", it decodes a list of [APIParameter] objects. - /// - For all other keys, it assumes they are operation names and decodes them as [APIOperation] objects. - /// - /// The decoded parameters are stored in the [parameters] list, while the operations - /// are stored in the [operations] map with their corresponding keys. - /// - /// [object] is the [KeyedArchive] containing the encoded [APIPath] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - for (final k in object.keys) { - if (k == r"$ref") { - // todo: reference - } else if (k == "parameters") { - parameters = object.decodeObjects(k, () => APIParameter())!; - } else { - operations[k] = object.decodeObject(k, () => APIOperation()); - } - } - } - - /// Encodes the [APIPath] object into a [KeyedArchive]. - /// - /// This method serializes the [APIPath] object's data into the provided [KeyedArchive]. - /// It performs the following operations: - /// - Calls the superclass's encode method to handle any base class properties. - /// - Encodes the [parameters] list into the archive under the key "parameters". - /// - Iterates through the [operations] map, encoding each operation into the archive - /// using its operation name as the key. - /// - /// [object] is the [KeyedArchive] where the encoded data will be stored. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encodeObjects("parameters", parameters); - operations.forEach((opName, op) { - object.encodeObject(opName, op); - }); - } -} diff --git a/packages/openapi/lib/src/v2/property.dart b/packages/openapi/lib/src/v2/property.dart deleted file mode 100644 index 1fb3b87..0000000 --- a/packages/openapi/lib/src/v2/property.dart +++ /dev/null @@ -1,388 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents the different types of schema representations in an API. -/// -/// This enumeration defines the possible structural representations of an API schema: -/// - [primitive]: Represents basic data types like strings, numbers, booleans, etc. -/// - [array]: Represents a list or collection of items. -/// - [object]: Represents a complex type with key-value pairs. -/// - [structure]: Represents a structured data type (e.g., a custom object). -/// - [unknownOrInvalid]: Represents an unknown or invalid schema representation. -enum APISchemaRepresentation { - primitive, - array, - object, - structure, - unknownOrInvalid -} - -/// Represents the different formats for collection parameters in API requests. -/// -/// This enumeration defines the possible formats for serializing array parameters: -/// - [csv]: Comma-separated values (e.g., "foo,bar,baz") -/// - [ssv]: Space-separated values (e.g., "foo bar baz") -/// - [tsv]: Tab-separated values (e.g., "foo\tbar\tbaz") -/// - [pipes]: Pipe-separated values (e.g., "foo|bar|baz") -enum APICollectionFormat { csv, ssv, tsv, pipes } - -/// A utility class for encoding and decoding [APICollectionFormat] values. -/// -/// This class provides static methods to convert between string representations -/// and [APICollectionFormat] enum values. -/// Decodes a string representation into an [APICollectionFormat] value. -/// -/// Takes a [String] input and returns the corresponding [APICollectionFormat], -/// or `null` if the input doesn't match any known format. -/// -/// - Returns [APICollectionFormat.csv] for "csv" -/// - Returns [APICollectionFormat.ssv] for "ssv" -/// - Returns [APICollectionFormat.tsv] for "tsv" -/// - Returns [APICollectionFormat.pipes] for "pipes" -/// - Returns `null` for any other input -class APICollectionFormatCodec { - /// Decodes a string representation into an [APICollectionFormat] value. - /// - /// Takes a [String] input and returns the corresponding [APICollectionFormat], - /// or `null` if the input doesn't match any known format. - /// - /// - Returns [APICollectionFormat.csv] for "csv" - /// - Returns [APICollectionFormat.ssv] for "ssv" - /// - Returns [APICollectionFormat.tsv] for "tsv" - /// - Returns [APICollectionFormat.pipes] for "pipes" - /// - Returns `null` for any other input - static APICollectionFormat? decode(String? location) { - switch (location) { - case "csv": - return APICollectionFormat.csv; - case "ssv": - return APICollectionFormat.ssv; - case "tsv": - return APICollectionFormat.tsv; - case "pipes": - return APICollectionFormat.pipes; - default: - return null; - } - } - - /// Encodes an [APICollectionFormat] value into its string representation. - /// - /// Takes an [APICollectionFormat] input and returns the corresponding string, - /// or `null` if the input is null or doesn't match any known format. - /// - /// - Returns "csv" for [APICollectionFormat.csv] - /// - Returns "ssv" for [APICollectionFormat.ssv] - /// - Returns "tsv" for [APICollectionFormat.tsv] - /// - Returns "pipes" for [APICollectionFormat.pipes] - /// - Returns `null` for any other input or null - static String? encode(APICollectionFormat? location) { - switch (location) { - case APICollectionFormat.csv: - return "csv"; - case APICollectionFormat.ssv: - return "ssv"; - case APICollectionFormat.tsv: - return "tsv"; - case APICollectionFormat.pipes: - return "pipes"; - default: - return null; - } - } -} - -/// Represents a property in an API schema. -/// -/// This class extends [APIObject] and provides fields and methods to handle -/// various aspects of an API property, including its type, format, constraints, -/// and serialization behavior. -/// -/// Properties: -/// - [type]: The data type of the property (e.g., string, number, array). -/// - [format]: Additional format information for the property. -/// - [collectionFormat]: Format for serializing array parameters. -/// - [defaultValue]: Default value for the property. -/// - [maximum]: Maximum value for numeric properties. -/// - [exclusiveMaximum]: Whether the maximum is exclusive. -/// - [minimum]: Minimum value for numeric properties. -/// - [exclusiveMinimum]: Whether the minimum is exclusive. -/// - [maxLength]: Maximum length for string properties. -/// - [minLength]: Minimum length for string properties. -/// - [pattern]: Regular expression pattern for string properties. -/// - [maxItems]: Maximum number of items for array properties. -/// - [minItems]: Minimum number of items for array properties. -/// - [uniqueItems]: Whether array items must be unique. -/// - [multipleOf]: Numeric properties must be multiples of this value. -/// - [enumerated]: List of allowed values for the property. -/// -/// The [representation] getter determines the schema representation of the property. -/// -/// This class also implements [decode] and [encode] methods for serialization -/// and deserialization of the property data. -class APIProperty extends APIObject { - /// The data type of the property. - /// - /// This field represents the primary type of the API property, such as string, - /// number, boolean, array, or object. It is defined as nullable to allow for - /// cases where the type might not be specified. - /// - /// The value is of type [APIType], which is likely an enum or similar type - /// defining the possible data types in the API schema. - APIType? type; - - /// The format of the property. - /// - /// This field provides additional format information for the property. - /// It can specify more precise data types or constraints, such as: - /// - For strings: "date", "date-time", "password", etc. - /// - For numbers: "float", "double", etc. - /// - /// The format is optional and can be null if not specified. - String? format; - - /// The format used for serializing array parameters. - /// - /// This property specifies how collection/array parameters are formatted when sent in - /// API requests. It is applicable only when the [type] is [APIType.array]. - /// - /// Possible values are defined in the [APICollectionFormat] enum: - /// - [APICollectionFormat.csv]: Comma-separated values - /// - [APICollectionFormat.ssv]: Space-separated values - /// - [APICollectionFormat.tsv]: Tab-separated values - /// - [APICollectionFormat.pipes]: Pipe-separated values - /// - /// If not specified (null), the default format is typically comma-separated. - APICollectionFormat? collectionFormat; - - /// The default value for the property. - /// - /// This field represents the default value that should be used for the property - /// if no value is provided. It can be of any type (hence the 'dynamic' type), - /// allowing it to match the property's data type. - /// - /// The default value is optional and can be null if not specified. - dynamic defaultValue; - - /// The maximum value for numeric properties. - /// - /// This field specifies the maximum allowed value for numeric properties. - /// It is applicable when [type] is a numeric type (e.g., integer or number). - /// The value is inclusive unless [exclusiveMaximum] is set to true. - /// - /// This property is optional and can be null if not specified. - num? maximum; - - /// Indicates whether the maximum value is exclusive. - /// - /// When set to `true`, the [maximum] value is treated as an exclusive upper bound. - /// When `false` or `null`, the [maximum] value is inclusive. - /// - /// This property is only applicable when [maximum] is set and [type] is a numeric type. - bool? exclusiveMaximum; - - /// The minimum value for numeric properties. - /// - /// This field specifies the minimum allowed value for numeric properties. - /// It is applicable when [type] is a numeric type (e.g., integer or number). - /// The value is inclusive unless [exclusiveMinimum] is set to true. - /// - /// This property is optional and can be null if not specified. - num? minimum; - - /// Indicates whether the minimum value is exclusive. - /// - /// When set to `true`, the [minimum] value is treated as an exclusive lower bound. - /// When `false` or `null`, the [minimum] value is inclusive. - /// - /// This property is only applicable when [minimum] is set and [type] is a numeric type. - bool? exclusiveMinimum; - - /// The maximum length for string properties. - /// - /// This field specifies the maximum allowed length for string properties. - /// It is applicable when [type] is [APIType.string]. - /// - /// The value is an integer representing the maximum number of characters allowed. - /// If not specified (null), there is no upper limit on the string length. - int? maxLength; - - /// The minimum length for string properties. - /// - /// This field specifies the minimum allowed length for string properties. - /// It is applicable when [type] is [APIType.string]. - /// - /// The value is an integer representing the minimum number of characters required. - /// If not specified (null), there is no lower limit on the string length. - int? minLength; - - /// The regular expression pattern for string properties. - /// - /// This field specifies a regular expression that a string property must match. - /// It is applicable when [type] is [APIType.string]. - /// - /// The pattern is represented as a string containing a valid regular expression. - /// If not specified (null), no pattern matching is enforced on the string value. - String? pattern; - - /// The maximum number of items for array properties. - /// - /// This field specifies the maximum allowed number of items in an array property. - /// It is applicable when [type] is [APIType.array]. - /// - /// The value is an integer representing the maximum number of elements allowed in the array. - /// If not specified (null), there is no upper limit on the number of array items. - int? maxItems; - - /// The minimum number of items for array properties. - /// - /// This field specifies the minimum required number of items in an array property. - /// It is applicable when [type] is [APIType.array]. - /// - /// The value is an integer representing the minimum number of elements required in the array. - /// If not specified (null), there is no lower limit on the number of array items. - int? minItems; - - /// Indicates whether array items must be unique. - /// - /// This field specifies whether all items in an array property must be unique. - /// It is applicable when [type] is [APIType.array]. - /// - /// When set to `true`, all elements in the array must be unique. - /// When `false` or `null`, duplicate elements are allowed in the array. - /// - /// This property is optional and can be null if not specified. - bool? uniqueItems; - - /// Specifies that numeric properties must be multiples of this value. - /// - /// This field is applicable when [type] is a numeric type (e.g., integer or number). - /// If set, the value of the property must be divisible by this number. - /// - /// For example, if [multipleOf] is set to 2, valid values could be 0, 2, 4, -2, etc. - /// - /// This property is optional and can be null if not specified. - num? multipleOf; - - /// A list of allowed values for the property. - /// - /// This field specifies a list of valid values that the property can take. - /// It is applicable to properties of various types, including strings, numbers, and more. - /// - /// When set, the value of the property must be one of the items in this list. - /// If not specified (null), there are no restrictions on the allowed values. - /// - /// The list is of type `dynamic` to accommodate different data types that may be used - /// for the enumeration values, depending on the property's type. - List? enumerated; - - /// Determines the schema representation of the property. - /// - /// This getter analyzes the [type] of the property and returns the corresponding - /// [APISchemaRepresentation]: - /// - Returns [APISchemaRepresentation.array] if the type is [APIType.array] - /// - Returns [APISchemaRepresentation.object] if the type is [APIType.object] - /// - Returns [APISchemaRepresentation.primitive] for all other types - /// - /// This representation helps in categorizing and handling different property types - /// in API schemas. - /// - /// Returns: An [APISchemaRepresentation] value indicating the schema representation. - APISchemaRepresentation get representation { - if (type == APIType.array) { - return APISchemaRepresentation.array; - } else if (type == APIType.object) { - return APISchemaRepresentation.object; - } - - return APISchemaRepresentation.primitive; - } - - /// Decodes the property information from a [KeyedArchive] object. - /// - /// This method populates the fields of the [APIProperty] instance with values - /// decoded from the given [KeyedArchive] object. It decodes various properties - /// such as type, format, constraints, and other metadata associated with the API property. - /// - /// The method first calls the superclass's decode method, then decodes specific - /// fields for the [APIProperty] class. Each field is extracted from the archive - /// using its corresponding key. - /// - /// Parameters: - /// [object] - A [KeyedArchive] containing the encoded property information. - /// - /// Note: This method assumes that the [KeyedArchive] contains keys matching - /// the property names of the [APIProperty] class. - @override - void decode(KeyedArchive object) { - super.decode(object); - - type = APITypeCodec.decode(object.decode("type")); - format = object.decode("format"); - collectionFormat = - APICollectionFormatCodec.decode(object.decode("collectionFormat")); - defaultValue = object.decode("default"); - maximum = object.decode("maximum"); - exclusiveMaximum = object.decode("exclusiveMaximum"); - minimum = object.decode("minimum"); - exclusiveMinimum = object.decode("exclusiveMinimum"); - maxLength = object.decode("maxLength"); - minLength = object.decode("minLength"); - pattern = object.decode("pattern"); - maxItems = object.decode("maxItems"); - minItems = object.decode("minItems"); - uniqueItems = object.decode("uniqueItems"); - multipleOf = object.decode("multipleOf"); - enumerated = object.decode("enum"); - } - - /// Encodes the property information into a [KeyedArchive] object. - /// - /// This method serializes the fields of the [APIProperty] instance into the given - /// [KeyedArchive] object. It encodes various properties such as type, format, - /// constraints, and other metadata associated with the API property. - /// - /// The method first calls the superclass's encode method, then encodes specific - /// fields of the [APIProperty] class. Each field is added to the archive - /// using its corresponding key. - /// - /// Parameters: - /// [object] - A [KeyedArchive] to store the encoded property information. - /// - /// Note: This method encodes all fields of the [APIProperty] class, including - /// null values. The receiving end should handle potential null values appropriately. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("type", APITypeCodec.encode(type)); - object.encode("format", format); - object.encode( - "collectionFormat", - APICollectionFormatCodec.encode(collectionFormat), - ); - object.encode("default", defaultValue); - object.encode("maximum", maximum); - object.encode("exclusiveMaximum", exclusiveMaximum); - object.encode("minimum", minimum); - object.encode("exclusiveMinimum", exclusiveMinimum); - object.encode("maxLength", maxLength); - object.encode("minLength", minLength); - object.encode("pattern", pattern); - object.encode("maxItems", maxItems); - object.encode("minItems", minItems); - object.encode("uniqueItems", uniqueItems); - object.encode("multipleOf", multipleOf); - object.encode("enum", enumerated); - } -} diff --git a/packages/openapi/lib/src/v2/response.dart b/packages/openapi/lib/src/v2/response.dart deleted file mode 100644 index 409c7ee..0000000 --- a/packages/openapi/lib/src/v2/response.dart +++ /dev/null @@ -1,104 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents an HTTP response in the OpenAPI specification. -/// -/// This class extends [APIObject] and provides properties and methods to -/// handle the response description, schema, and headers. -/// -/// Properties: -/// - [description]: A string describing the response. -/// - [schema]: An [APISchemaObject] representing the structure of the response body. -/// - [headers]: A map of response headers, where keys are header names and values are [APIHeader] objects. -/// -/// The class includes methods for encoding and decoding the response object -/// to and from a [KeyedArchive]. -class APIResponse extends APIObject { - /// Creates a new instance of [APIResponse]. - /// - /// This constructor initializes a new [APIResponse] object with default values. - /// The [description] is set to an empty string, [schema] is null, - /// and [headers] is an empty map. - APIResponse(); - - /// A string describing the response. - /// - /// This property holds a brief description of the API response. - /// It provides context about what the response represents or contains. - /// The description is optional and defaults to an empty string if not specified. - String? description = ""; - - /// Represents the structure of the response body. - /// - /// This property is of type [APISchemaObject] and defines the schema - /// for the response payload. It describes the structure, types, and - /// constraints of the data returned in the response body. - /// - /// The schema can be null if the response doesn't have a body or if - /// the schema is not defined in the API specification. - APISchemaObject? schema; - - /// A map of response headers. - /// - /// This property is a [Map] where the keys are header names (strings) and the values - /// are [APIHeader] objects or null. It represents the headers that are expected - /// to be included in the API response. - /// - /// The map is nullable and initialized as an empty map by default. Each header - /// in the map can also be null, allowing for optional headers in the response. - Map? headers = {}; - - /// Decodes the [APIResponse] object from a [KeyedArchive]. - /// - /// This method overrides the [decode] method from the superclass and is responsible - /// for populating the properties of the [APIResponse] object from the given [KeyedArchive]. - /// - /// It performs the following actions: - /// 1. Calls the superclass's decode method. - /// 2. Decodes the 'description' field into the [description] property. - /// 3. Decodes the 'schema' field into the [schema] property, creating a new [APISchemaObject] if necessary. - /// 4. Decodes the 'headers' field into the [headers] property, creating new [APIHeader] objects as needed. - /// - /// Parameters: - /// - [object]: A [KeyedArchive] containing the encoded data for the [APIResponse]. - @override - void decode(KeyedArchive object) { - super.decode(object); - - description = object.decode("description"); - schema = object.decodeObject("schema", () => APISchemaObject()); - headers = object.decodeObjectMap("headers", () => APIHeader()); - } - - /// Encodes the [APIResponse] object into a [KeyedArchive]. - /// - /// This method overrides the [encode] method from the superclass and is responsible - /// for encoding the properties of the [APIResponse] object into the given [KeyedArchive]. - /// - /// It performs the following actions: - /// 1. Calls the superclass's encode method. - /// 2. Encodes the [headers] property into the 'headers' field of the archive. - /// 3. Encodes the [schema] property into the 'schema' field of the archive. - /// 4. Encodes the [description] property into the 'description' field of the archive. - /// - /// Parameters: - /// - [object]: A [KeyedArchive] to store the encoded data of the [APIResponse]. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encodeObjectMap("headers", headers); - object.encodeObject("schema", schema); - object.encode("description", description); - } -} diff --git a/packages/openapi/lib/src/v2/schema.dart b/packages/openapi/lib/src/v2/schema.dart deleted file mode 100644 index 48efa38..0000000 --- a/packages/openapi/lib/src/v2/schema.dart +++ /dev/null @@ -1,249 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents a schema object in the OpenAPI specification. -/// -/// This class extends [APIProperty] and provides additional properties and methods -/// specific to schema objects in the OpenAPI specification. -/// -/// Properties: -/// - [title]: A string representing the title of the schema. -/// - [description]: A string describing the schema. -/// - [example]: An example value for the schema. -/// - [isRequired]: A list of required properties. -/// - [readOnly]: A boolean indicating if the schema is read-only. -/// - [items]: An [APISchemaObject] representing array items (valid when type is array). -/// - [properties]: A map of property names to [APISchemaObject]s (valid when type is null). -/// - [additionalProperties]: An [APISchemaObject] for additional properties (valid when type is object). -/// -/// Methods: -/// - [representation]: Returns the [APISchemaRepresentation] of the schema. -/// - [decode]: Decodes the schema from a [KeyedArchive]. -/// - [encode]: Encodes the schema to a [KeyedArchive]. -/// -/// This class also overrides the [castMap] getter to provide custom casting for the 'required' field. -class APISchemaObject extends APIProperty { - /// Default constructor for APISchemaObject. - /// - /// Creates a new instance of APISchemaObject with default values. - /// This constructor doesn't take any parameters and initializes - /// the object with its default state. - APISchemaObject(); - - /// The title of the schema. - /// - /// This property represents the title of the schema object. - /// It can be null if no title is specified. - String? title; - - /// A description of the schema. - /// - /// This property provides a detailed explanation of the schema object. - /// It can be null if no description is specified. - String? description; - - /// An example value for the schema. - /// - /// This property holds an example value that represents the schema. - /// It can be of any type (String, int, bool, Map, List, etc.) depending on the schema definition. - /// The example is used to provide a clear illustration of what data conforming to the schema might look like. - /// This property can be null if no example is specified. - String? example; - - /// A list of required properties for this schema object. - /// - /// This list contains the names of properties that are required - /// for this schema to be valid. Each element is a String representing - /// a property name. The list can be empty if no properties are required, - /// or it can be null if the required properties are not specified. - /// - /// Note: The list allows null values, though typically all elements - /// should be non-null property names. - List? isRequired = []; - - /// Indicates whether the schema is read-only. - /// - /// When set to true, it specifies that the schema should be treated as read-only, - /// meaning it can be retrieved and read, but should not be modified or updated. - /// This is particularly useful for properties that are auto-generated or controlled by the system. - /// - /// Defaults to false, indicating that the schema is writable by default. - bool readOnly = false; - - /// Represents the schema for array items when the type is 'array'. - /// - /// This property is only applicable when the schema's type is set to 'array'. - /// It defines the schema for the items within the array. - /// - /// - If [items] is null, it means the array items have no specific schema defined. - /// - If [items] is set, it provides the schema that all items in the array must conform to. - /// - /// Example: - /// If this schema represents an array of strings, [items] would be an APISchemaObject - /// with its type set to 'string'. - APISchemaObject? items; - - /// A map of property names to their corresponding schema objects. - /// - /// This property is valid when the schema's type is null or 'object'. - /// It defines the structure of an object by specifying the schemas of its properties. - /// - /// The keys in the map are strings representing property names. - /// The values are [APISchemaObject] instances that define the schema for each property. - /// - /// This property can be null if no properties are defined, or if the schema - /// represents a type other than an object. - /// - /// Example: - /// ```dart - /// properties = { - /// "name": APISchemaObject()..type = "string", - /// "age": APISchemaObject()..type = "integer" - /// }; - /// ``` - Map? properties; - - /// Represents the schema for additional properties when the type is 'object'. - /// - /// This property is applicable when the schema's type is set to 'object'. - /// It defines the schema for any additional properties that are not explicitly defined - /// in the [properties] map. - /// - /// - If [additionalProperties] is null, it means additional properties are not allowed. - /// - If [additionalProperties] is set to an [APISchemaObject], it specifies the schema - /// that any additional properties must conform to. - /// - /// This property allows for flexible object structures where some properties are - /// explicitly defined, while others can follow a general schema. - /// - /// Example: - /// If set to an [APISchemaObject] with type "string", it means any additional - /// properties not listed in [properties] must have string values. - /// - /// Valid when type == object - APISchemaObject? additionalProperties; - - /// Returns the representation of this schema object. - /// - /// This method overrides the base [representation] getter to provide - /// specific behavior for schema objects with properties. - /// - /// If the [properties] map is not null, it indicates that this schema - /// represents a structured object, so it returns [APISchemaRepresentation.structure]. - /// - /// If [properties] is null, it falls back to the superclass implementation - /// to determine the representation based on other attributes of the schema. - /// - /// Returns: - /// [APISchemaRepresentation.structure] if [properties] is not null, - /// otherwise returns the result of the superclass [representation] getter. - @override - APISchemaRepresentation get representation { - if (properties != null) { - return APISchemaRepresentation.structure; - } - - return super.representation; - } - - /// Overrides the [castMap] getter to provide custom casting for the 'required' field. - /// - /// This getter returns a Map that defines how certain fields should be cast - /// when encoding or decoding the object. Specifically: - /// - /// - The 'required' field is cast to a List of strings. - /// - /// This ensures that the 'required' field, which represents the list of required - /// properties for this schema object, is always treated as a list of strings, - /// even if the incoming data might have a different format. - /// - /// Returns: - /// A Map where the key is the field name ('required') and the value is a Cast - /// object specifying how to cast the field (List of strings in this case). - @override - Map get castMap => - {"required": const cast.List(cast.string)}; - - /// Decodes the APISchemaObject from a KeyedArchive. - /// - /// This method overrides the base [decode] method to provide custom decoding - /// for APISchemaObject properties. It populates the object's fields from the - /// provided [KeyedArchive] object. - /// - /// Parameters: - /// - [object]: A [KeyedArchive] containing the encoded data for this schema object. - /// - /// The method decodes the following properties: - /// - title: The schema's title (String) - /// - description: The schema's description (String) - /// - isRequired: List of required properties (List) - /// - example: An example value for the schema (String) - /// - readOnly: Whether the schema is read-only (bool, defaults to false) - /// - items: The schema for array items (APISchemaObject) - /// - additionalProperties: The schema for additional properties (APISchemaObject) - /// - properties: A map of property names to their schemas (Map) - /// - /// Note: This method calls the superclass [decode] method first to handle any - /// decoding defined in the parent class. - @override - void decode(KeyedArchive object) { - super.decode(object); - - title = object.decode("title"); - description = object.decode("description"); - isRequired = object.decode("required"); - example = object.decode("example"); - readOnly = object.decode("readOnly") ?? false; - - items = object.decodeObject("items", () => APISchemaObject()); - additionalProperties = - object.decodeObject("additionalProperties", () => APISchemaObject()); - properties = object.decodeObjectMap("properties", () => APISchemaObject()); - } - - /// Encodes the APISchemaObject into a KeyedArchive. - /// - /// This method overrides the base [encode] method to provide custom encoding - /// for APISchemaObject properties. It serializes the object's fields into the - /// provided [KeyedArchive] object. - /// - /// Parameters: - /// - [object]: A [KeyedArchive] where the encoded data for this schema object will be stored. - /// - /// The method encodes the following properties: - /// - title: The schema's title (String) - /// - description: The schema's description (String) - /// - isRequired: List of required properties (List) - /// - example: An example value for the schema (String) - /// - readOnly: Whether the schema is read-only (bool) - /// - items: The schema for array items (APISchemaObject) - /// - additionalProperties: The schema for additional properties (APISchemaObject) - /// - properties: A map of property names to their schemas (Map) - /// - /// Note: This method calls the superclass [encode] method first to handle any - /// encoding defined in the parent class. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("title", title); - object.encode("description", description); - object.encode("required", isRequired); - object.encode("example", example); - object.encode("readOnly", readOnly); - - object.encodeObject("items", items); - object.encodeObject("additionalProperties", additionalProperties); - object.encodeObjectMap("properties", properties); - } -} diff --git a/packages/openapi/lib/src/v2/security.dart b/packages/openapi/lib/src/v2/security.dart deleted file mode 100644 index ce85585..0000000 --- a/packages/openapi/lib/src/v2/security.dart +++ /dev/null @@ -1,366 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v2.dart'; - -/// Represents a OAuth 2.0 security scheme flow in the OpenAPI specification. -/// -/// This enum defines the different types of OAuth 2.0 flows that can be used -/// in an OpenAPI security scheme. The available flows are: -/// -/// - [implicit]: The implicit grant flow. -/// - [password]: The resource owner password credentials grant flow. -/// - [application]: The client credentials grant flow. -/// - [authorizationCode]: The authorization code grant flow. -/// -/// These flows correspond to the standard OAuth 2.0 grant types as defined -/// in RFC 6749. -enum APISecuritySchemeFlow { - implicit, - password, - application, - authorizationCode -} - -/// A utility class for encoding and decoding [APISecuritySchemeFlow] values. -/// -/// This class provides static methods to convert between [APISecuritySchemeFlow] enum values -/// and their corresponding string representations used in the OpenAPI specification. -class APISecuritySchemeFlowCodec { - /// Decodes a string representation of an OAuth 2.0 flow into an [APISecuritySchemeFlow] enum value. - /// - /// This method takes a [String] parameter [flow] and returns the corresponding - /// [APISecuritySchemeFlow] enum value. If the input string doesn't match any - /// known flow, the method returns null. - /// - /// The mapping is as follows: - /// - "accessCode" -> [APISecuritySchemeFlow.authorizationCode] - /// - "password" -> [APISecuritySchemeFlow.password] - /// - "implicit" -> [APISecuritySchemeFlow.implicit] - /// - "application" -> [APISecuritySchemeFlow.application] - /// - /// Parameters: - /// [flow]: A string representation of the OAuth 2.0 flow. - /// - /// Returns: - /// The corresponding [APISecuritySchemeFlow] enum value, or null if no match is found. - static APISecuritySchemeFlow? decode(String? flow) { - switch (flow) { - case "accessCode": - return APISecuritySchemeFlow.authorizationCode; - case "password": - return APISecuritySchemeFlow.password; - case "implicit": - return APISecuritySchemeFlow.implicit; - case "application": - return APISecuritySchemeFlow.application; - default: - return null; - } - } - - /// Encodes an [APISecuritySchemeFlow] enum value into its string representation. - /// - /// This method takes an [APISecuritySchemeFlow] enum value as input and returns - /// the corresponding string representation used in the OpenAPI specification. - /// If the input is null or doesn't match any known flow, the method returns null. - /// - /// The mapping is as follows: - /// - [APISecuritySchemeFlow.authorizationCode] -> "accessCode" - /// - [APISecuritySchemeFlow.password] -> "password" - /// - [APISecuritySchemeFlow.implicit] -> "implicit" - /// - [APISecuritySchemeFlow.application] -> "application" - /// - /// Parameters: - /// [flow]: An [APISecuritySchemeFlow] enum value to be encoded. - /// - /// Returns: - /// The string representation of the OAuth 2.0 flow, or null if no match is found. - static String? encode(APISecuritySchemeFlow? flow) { - switch (flow) { - case APISecuritySchemeFlow.authorizationCode: - return "accessCode"; - case APISecuritySchemeFlow.password: - return "password"; - case APISecuritySchemeFlow.implicit: - return "implicit"; - case APISecuritySchemeFlow.application: - return "application"; - default: - return null; - } - } -} - -/// Represents a security scheme in the OpenAPI specification. -/// -/// This class defines various types of security schemes that can be used in an OpenAPI document. -/// It supports three main types of security schemes: -/// 1. Basic Authentication -/// 2. API Key -/// 3. OAuth2 -/// -/// The class provides constructors for each type of security scheme and methods to encode and decode -/// the security scheme information to and from a KeyedArchive object. -/// -/// Properties: -/// - [type]: The type of the security scheme (e.g., "basic", "apiKey", "oauth2"). -/// - [description]: An optional description of the security scheme. -/// - [apiKeyName]: The name of the API key (for API Key type). -/// - [apiKeyLocation]: The location of the API key (for API Key type). -/// - [oauthFlow]: The OAuth2 flow type (for OAuth2 type). -/// - [authorizationURL]: The authorization URL (for OAuth2 type). -/// - [tokenURL]: The token URL (for OAuth2 type). -/// - [scopes]: A map of available scopes (for OAuth2 type). -/// -/// The class also includes utility methods and properties: -/// - [isOAuth2]: A getter that returns true if the security scheme is OAuth2. -/// - [castMap]: Provides casting information for the 'scopes' property. -/// - [decode]: Decodes the security scheme information from a KeyedArchive object. -/// - [encode]: Encodes the security scheme information into a KeyedArchive object. -class APISecurityScheme extends APIObject { - /// Default constructor for the [APISecurityScheme] class. - /// - /// This constructor creates an instance of [APISecurityScheme] without initializing any specific properties. - /// It's typically used when you want to create a security scheme object and set its properties manually later. - APISecurityScheme(); - - /// Creates a basic authentication security scheme. - /// - /// This constructor initializes an [APISecurityScheme] instance - /// with the type set to "basic", representing HTTP Basic Authentication. - /// Basic Authentication allows API clients to authenticate by providing - /// their username and password. - /// - /// Example usage: - /// ```dart - /// var basicAuth = APISecurityScheme.basic(); - /// ``` - APISecurityScheme.basic() { - type = "basic"; - } - - /// Creates an API Key security scheme. - /// - /// This constructor initializes an [APISecurityScheme] instance - /// with the type set to "apiKey". It requires two parameters: - /// - /// - [apiKeyName]: The name of the API key to be used for authentication. - /// - [apiKeyLocation]: The location where the API key should be included in the request, - /// typically specified as a value from the [APIParameterLocation] enum. - /// - /// API Key authentication allows API clients to authenticate by including a specific - /// key in their requests, either in the header, query parameters, or cookies. - /// - /// Example usage: - /// ```dart - /// var apiKeyAuth = APISecurityScheme.apiKey('X-API-Key', APIParameterLocation.header); - /// ``` - APISecurityScheme.apiKey(this.apiKeyName, this.apiKeyLocation) { - type = "apiKey"; - } - - /// Creates an OAuth2 security scheme. - /// - /// This constructor initializes an [APISecurityScheme] instance - /// with the type set to "oauth2". It requires one mandatory parameter: - /// - /// - [oauthFlow]: The OAuth2 flow type, specified as an [APISecuritySchemeFlow] enum value. - /// - /// Optional parameters include: - /// - /// - [authorizationURL]: The authorization URL for the OAuth2 flow. - /// - [tokenURL]: The token URL for the OAuth2 flow. - /// - [scopes]: A map of available scopes for the OAuth2 flow. Defaults to an empty map. - /// - /// OAuth2 allows API clients to obtain limited access to user accounts on an HTTP service, - /// either on behalf of a user or on behalf of the client itself. - /// - /// Example usage: - /// ```dart - /// var oauth2Auth = APISecurityScheme.oauth2( - /// APISecuritySchemeFlow.authorizationCode, - /// authorizationURL: 'https://example.com/oauth/authorize', - /// tokenURL: 'https://example.com/oauth/token', - /// scopes: {'read': 'Read access', 'write': 'Write access'} - /// ); - /// ``` - APISecurityScheme.oauth2( - this.oauthFlow, { - this.authorizationURL, - this.tokenURL, - this.scopes = const {}, - }) { - type = "oauth2"; - } - - /// The type of the security scheme. - /// - /// This property specifies the type of the security scheme. It can be one of: - /// - "basic" for Basic Authentication - /// - "apiKey" for API Key Authentication - /// - "oauth2" for OAuth2 Authentication - /// - /// This field is required and must be set for the security scheme to be valid. - late String type; - - /// A description of the security scheme. - /// - /// This optional property provides additional information about the security scheme. - /// It can be used to explain how the security scheme works, its purpose, or any - /// specific requirements for using it. - /// - /// The value is a string that can contain multiple lines of text if needed. - /// If not specified, this property will be null. - String? description; - - /// The name of the API key for API Key authentication. - /// - /// This property is used when the security scheme type is "apiKey". - /// It specifies the name of the API key that should be used in the request. - /// For example, if set to "X-API-Key", the client would need to include - /// this header in their request: "X-API-Key: ". - /// - /// This property is nullable and will be null for non-API Key security schemes. - String? apiKeyName; - - /// The location of the API key in the request. - /// - /// This property specifies where the API key should be included in the request - /// when using API Key authentication. It can be one of the following: - /// - [APIParameterLocation.query] for including the key in the query parameters - /// - [APIParameterLocation.header] for including the key in the request headers - /// - [APIParameterLocation.cookie] for including the key in a cookie - /// - /// This property is nullable and will be null for non-API Key security schemes. - /// It is typically used in conjunction with [apiKeyName] to define how an API key - /// should be sent with requests. - APIParameterLocation? apiKeyLocation; - - /// The OAuth2 flow type for this security scheme. - /// - /// This property specifies the type of OAuth2 flow used when the security scheme - /// is of type "oauth2". It is represented by the [APISecuritySchemeFlow] enum, - /// which can have one of the following values: - /// - [APISecuritySchemeFlow.implicit] - /// - [APISecuritySchemeFlow.password] - /// - [APISecuritySchemeFlow.application] - /// - [APISecuritySchemeFlow.authorizationCode] - /// - /// This property is nullable and will be null for non-OAuth2 security schemes. - /// It is used in conjunction with other OAuth2-specific properties like - /// [authorizationURL], [tokenURL], and [scopes] to fully define the OAuth2 flow. - APISecuritySchemeFlow? oauthFlow; - String? authorizationURL; - String? tokenURL; - Map? scopes; - - bool get isOAuth2 { - return type == "oauth2"; - } - - /// Provides a mapping of property names to their respective casting functions. - /// - /// This getter overrides the base class implementation to specify custom casting - /// behavior for the 'scopes' property of the [APISecurityScheme] class. - /// - /// Returns: - /// A [Map] where the key is the property name ('scopes') and the value is a [cast.Cast] - /// object that defines how to cast the property's value. In this case, it specifies - /// that 'scopes' should be cast as a Map with string keys and string values. - @override - Map get castMap => - {"scopes": const cast.Map(cast.string, cast.string)}; - - /// Decodes the security scheme information from a [KeyedArchive] object. - /// - /// This method populates the properties of the [APISecurityScheme] instance - /// based on the data stored in the provided [KeyedArchive] object. It handles - /// different types of security schemes (basic, OAuth2, and API key) and - /// decodes their specific properties accordingly. - /// - /// The method performs the following tasks: - /// 1. Calls the superclass's decode method. - /// 2. Decodes the 'type' and 'description' properties. - /// 3. Based on the 'type', decodes additional properties: - /// - For 'basic', no additional properties are decoded. - /// - For 'oauth2', decodes 'flow', 'authorizationUrl', 'tokenUrl', and 'scopes'. - /// - For 'apiKey', decodes 'name' and 'in' (location) properties. - /// - /// Parameters: - /// [object]: A [KeyedArchive] containing the encoded security scheme information. - /// - /// Note: This method assumes that the 'scopes' property, when present, is - /// a non-null Map. It will throw an error if this assumption - /// is not met. - @override - void decode(KeyedArchive object) { - super.decode(object); - - type = object.decode("type") ?? "oauth2"; - description = object.decode("description"); - - if (type == "basic") { - } else if (type == "oauth2") { - oauthFlow = APISecuritySchemeFlowCodec.decode(object.decode("flow")); - authorizationURL = object.decode("authorizationUrl"); - tokenURL = object.decode("tokenUrl"); - final scopeMap = object.decode>("scopes")!; - scopes = Map.from(scopeMap); - } else if (type == "apiKey") { - apiKeyName = object.decode("name"); - apiKeyLocation = APIParameterLocationCodec.decode(object.decode("in")); - } - } - - /// Encodes the security scheme information into a [KeyedArchive] object. - /// - /// This method serializes the properties of the [APISecurityScheme] instance - /// into the provided [KeyedArchive] object. It handles different types of - /// security schemes (basic, OAuth2, and API key) and encodes their specific - /// properties accordingly. - /// - /// The method performs the following tasks: - /// 1. Calls the superclass's encode method. - /// 2. Encodes the 'type' and 'description' properties. - /// 3. Based on the 'type', encodes additional properties: - /// - For 'basic', no additional properties are encoded. - /// - For 'apiKey', encodes 'name' and 'in' (location) properties. - /// - For 'oauth2', encodes 'flow', 'authorizationUrl', 'tokenUrl', and 'scopes'. - /// - /// Parameters: - /// [object]: A [KeyedArchive] to store the encoded security scheme information. - /// - /// Note: This method assumes that all required properties for each security - /// scheme type are properly set. It's the responsibility of the caller to - /// ensure that the object is in a valid state before encoding. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("type", type); - object.encode("description", description); - - if (type == "basic") { - /* nothing to do */ - } else if (type == "apiKey") { - object.encode("name", apiKeyName); - object.encode("in", APIParameterLocationCodec.encode(apiKeyLocation)); - } else if (type == "oauth2") { - object.encode("flow", APISecuritySchemeFlowCodec.encode(oauthFlow)); - - object.encode("authorizationUrl", authorizationURL); - object.encode("tokenUrl", tokenURL); - object.encode("scopes", scopes); - } - } -} diff --git a/packages/openapi/lib/src/v2/types.dart b/packages/openapi/lib/src/v2/types.dart deleted file mode 100644 index db83173..0000000 --- a/packages/openapi/lib/src/v2/types.dart +++ /dev/null @@ -1,87 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Represents the different data types used in API responses and requests. -/// -/// This enum defines the following types: -/// - [string]: Represents textual data. -/// - [number]: Represents numeric data, including floating-point numbers. -/// - [integer]: Represents whole number values. -/// - [boolean]: Represents true/false values. -/// - [array]: Represents a collection of values. -/// - [file]: Represents file data. -/// - [object]: Represents complex structured data. -enum APIType { string, number, integer, boolean, array, file, object } - -/// A utility class for encoding and decoding [APIType] values. -/// -/// This class provides static methods to convert between [APIType] enum values -/// and their corresponding string representations. -class APITypeCodec { - /// Decodes a string representation of an API type into its corresponding [APIType] enum value. - /// - /// This method takes a [String] parameter [type] and returns the matching [APIType] enum value. - /// If the input string doesn't match any known API type, the method returns null. - /// - /// Parameters: - /// [type]: A string representation of the API type. - /// - /// Returns: - /// The corresponding [APIType] enum value, or null if no match is found. - static APIType? decode(String? type) { - switch (type) { - case "string": - return APIType.string; - case "number": - return APIType.number; - case "integer": - return APIType.integer; - case "boolean": - return APIType.boolean; - case "array": - return APIType.array; - case "file": - return APIType.file; - case "object": - return APIType.object; - } - return null; - } - - /// Encodes an [APIType] enum value into its corresponding string representation. - /// - /// This method takes an [APIType] parameter [type] and returns the matching string representation. - /// If the input [APIType] is null or doesn't match any known API type, the method returns null. - /// - /// Parameters: - /// [type]: An [APIType] enum value. - /// - /// Returns: - /// The corresponding string representation of the [APIType], or null if no match is found or input is null. - static String? encode(APIType? type) { - switch (type) { - case APIType.string: - return "string"; - case APIType.number: - return "number"; - case APIType.integer: - return "integer"; - case APIType.boolean: - return "boolean"; - case APIType.array: - return "array"; - case APIType.file: - return "file"; - case APIType.object: - return "object"; - default: - return null; - } - } -} diff --git a/packages/openapi/lib/src/v3/callback.dart b/packages/openapi/lib/src/v3/callback.dart deleted file mode 100644 index b823669..0000000 --- a/packages/openapi/lib/src/v3/callback.dart +++ /dev/null @@ -1,91 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents a callback object in an OpenAPI specification. -/// -/// Each value in the map is a [APIPath] that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation. -class APICallback extends APIObject { - /// Creates an [APICallback] instance. - /// - /// [paths] is an optional parameter that represents the callback paths. - /// Each key in the [paths] map is a runtime expression that identifies the URL - /// to be used for the callback request, and the corresponding value is an [APIPath] - /// object describing the set of requests and expected responses. - APICallback({this.paths}); - - /// Creates an empty [APICallback] instance. - /// - /// This constructor initializes an [APICallback] with no paths. - /// It can be used when you need to create an empty callback object - /// that will be populated later. - APICallback.empty(); - - /// Callback paths. - /// - /// The key that identifies the [APIPath] is a runtime expression that can be evaluated in the context of a runtime HTTP request/response to identify the URL to be used for the callback request. A simple example might be $request.body#/url. - /// - /// This map represents the various callback paths available in the API callback. - /// Each entry in the map consists of: - /// - A key (String): A runtime expression that identifies the URL for the callback request. - /// - A value (APIPath): An object describing the set of requests and expected responses for that callback URL. - /// - /// The map can be null if no callback paths are defined. - Map? paths; - - /// Decodes the [APICallback] object from a [KeyedArchive]. - /// - /// This method overrides the `decode` method from the superclass and performs the following steps: - /// 1. Calls the superclass's `decode` method. - /// 2. Initializes the `paths` map. - /// 3. Iterates through each key-value pair in the `object`. - /// 4. For each pair, it checks if the value is a [KeyedArchive]. - /// 5. If it's not a [KeyedArchive], it throws an [ArgumentError]. - /// 6. If it is a [KeyedArchive], it decodes the value into an [APIPath] object and adds it to the `paths` map. - /// - /// Throws: - /// - [ArgumentError] if any value in the callback is not an object. - /// - /// Parameters: - /// - object: The [KeyedArchive] to decode from. - @override - void decode(KeyedArchive object) { - super.decode(object); - - paths = {}; - object.forEach((key, dynamic value) { - if (value is! KeyedArchive) { - throw ArgumentError( - "Invalid specification. Callback contains non-object value.", - ); - } - paths![key] = value.decodeObject(key, () => APIPath())!; - }); - } - - /// Encodes the [APICallback] object into a [KeyedArchive]. - /// - /// This method overrides the `encode` method from the superclass. - /// Currently, this method is not implemented and will throw a [StateError] - /// when called. - /// - /// Parameters: - /// - object: The [KeyedArchive] to encode into. - /// - /// Throws: - /// - [StateError] with the message "APICallback.encode: not yet implemented." - @override - void encode(KeyedArchive object) { - super.encode(object); - throw StateError("APICallback.encode: not yet implemented."); - } -} diff --git a/packages/openapi/lib/src/v3/components.dart b/packages/openapi/lib/src/v3/components.dart deleted file mode 100644 index 7fc1953..0000000 --- a/packages/openapi/lib/src/v3/components.dart +++ /dev/null @@ -1,242 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/util.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents the Components Object as defined in the OpenAPI Specification. -/// -/// All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object. -class APIComponents extends APIObject { - /// Default constructor for APIComponents. - /// - /// Creates a new instance of APIComponents with default (empty) values for all properties. - APIComponents(); - - /// Creates an empty instance of APIComponents. - /// - /// This constructor initializes an APIComponents object with no pre-defined components. - /// All component maps (schemas, responses, parameters, etc.) will be empty. - APIComponents.empty(); - - /// An object to hold reusable [APISchemaObject?] instances. - /// - /// This map stores reusable schema objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the schemas, and the values are the corresponding [APISchemaObject] instances. - /// These schemas can be referenced throughout the API specification using $ref syntax. - Map schemas = {}; - - /// An object to hold reusable [APIResponse?] instances. - /// - /// This map stores reusable response objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the responses, and the values are the corresponding [APIResponse] instances. - /// These responses can be referenced throughout the API specification using $ref syntax. - Map responses = {}; - - /// An object to hold reusable [APIParameter?] instances. - /// - /// This map stores reusable parameter objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the parameters, and the values are the corresponding [APIParameter] instances. - /// These parameters can be referenced throughout the API specification using $ref syntax. - Map parameters = {}; - - /// remove? - ///Map examples = {}; - - /// An object to hold reusable [APIRequestBody] instances. - /// - /// This map stores reusable request body objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the request bodies, and the values are the corresponding [APIRequestBody] instances. - /// These request bodies can be referenced throughout the API specification using $ref syntax. - Map requestBodies = {}; - - /// An object to hold reusable [APIHeader] instances. - /// - /// This map stores reusable header objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the headers, and the values are the corresponding [APIHeader] instances. - /// These headers can be referenced throughout the API specification using $ref syntax. - Map headers = {}; - - /// An object to hold reusable [APISecurityScheme] instances. - /// - /// This map stores reusable security scheme objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the security schemes, and the values are the corresponding [APISecurityScheme] instances. - /// These security schemes can be referenced throughout the API specification using $ref syntax. - /// They define the security mechanisms that can be used across the API. - Map securitySchemes = {}; - - /// remove? - ///Map links = {}; - - /// An object to hold reusable [APICallback] instances. - /// - /// This map stores reusable callback objects defined in the components section of an OpenAPI document. - /// The keys are unique names for the callbacks, and the values are the corresponding [APICallback] instances. - /// These callbacks can be referenced throughout the API specification using $ref syntax. - /// Callbacks are used to define webhook-like behavior where the API can make calls back to the client. - Map callbacks = {}; - - /// Resolves a component definition based on the provided URI. - /// - /// Construct [uri] as a path, e.g. `Uri(path: /components/schemas/name)`. - APIObject? resolveUri(Uri uri) { - final segments = uri.pathSegments; - if (segments.length != 3) { - throw ArgumentError( - "Invalid reference URI. Must be a path URI of the form: '/components//'", - ); - } - - if (segments.first != "components") { - throw ArgumentError( - "Invalid reference URI: does not begin with /components/", - ); - } - - Map? namedMap; - switch (segments[1]) { - case "schemas": - namedMap = schemas; - break; - case "responses": - namedMap = responses; - break; - case "parameters": - namedMap = parameters; - break; - case "requestBodies": - namedMap = requestBodies; - break; - case "headers": - namedMap = headers; - break; - case "securitySchemes": - namedMap = securitySchemes; - break; - case "callbacks": - namedMap = callbacks; - break; - } - - if (namedMap == null) { - throw ArgumentError( - "Invalid reference URI: component type '${segments[1]}' does not exist.", - ); - } - - final result = namedMap[segments.last]; - - return result; - } - - /// Resolves a reference object to its corresponding component in the API specification. - /// - /// This method takes a reference object of type [T] (which must extend [APIObject]) - /// and resolves it to the actual component it refers to within the API components. - /// - /// Parameters: - /// [refObject]: The reference object to resolve. Must have a non-null [referenceURI]. - /// - /// Returns: - /// The resolved component object of type [T], or null if the reference couldn't be resolved. - /// - /// Throws: - /// [ArgumentError] if the provided [refObject] is not a reference (i.e., has a null [referenceURI]). - T? resolve(T refObject) { - if (refObject.referenceURI == null) { - throw ArgumentError("APIObject is not a reference to a component."); - } - - return resolveUri(refObject.referenceURI!) as T?; - } - - /// Decodes the APIComponents object from a KeyedArchive. - /// - /// This method overrides the decode method from the superclass and populates - /// the various component maps of the APIComponents object. It decodes each - /// component type (schemas, responses, parameters, etc.) from the provided - /// KeyedArchive object. - /// - /// The method uses removeNullsFromMap to ensure that no null values are - /// present in the decoded maps. Each component type is decoded using a - /// specific factory function to create new instances of the appropriate type. - /// - /// Note: The 'examples' and 'links' components are currently commented out - /// and not being decoded. - /// - /// Parameters: - /// object: A KeyedArchive containing the encoded APIComponents data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - schemas = removeNullsFromMap( - object.decodeObjectMap("schemas", () => APISchemaObject()), - ); - responses = removeNullsFromMap( - object.decodeObjectMap("responses", () => APIResponse.empty()), - ); - parameters = removeNullsFromMap( - object.decodeObjectMap("parameters", () => APIParameter.empty()), - ); -// examples = object.decodeObjectMap("examples", () => APIExample()); - requestBodies = removeNullsFromMap( - object.decodeObjectMap("requestBodies", () => APIRequestBody.empty()), - ); - headers = removeNullsFromMap( - object.decodeObjectMap("headers", () => APIHeader()), - ); - - securitySchemes = removeNullsFromMap( - object.decodeObjectMap("securitySchemes", () => APISecurityScheme()), - ); -// links = object.decodeObjectMap("links", () => APILink()); - callbacks = removeNullsFromMap( - object.decodeObjectMap("callbacks", () => APICallback()), - ); - } - - /// Encodes the APIComponents object into a KeyedArchive. - /// - /// This method overrides the encode method from the superclass and serializes - /// the various component maps of the APIComponents object. It encodes each - /// non-empty component type (schemas, responses, parameters, etc.) into the - /// provided KeyedArchive object. - /// - /// The method only encodes non-empty maps to avoid creating unnecessary empty - /// objects in the resulting OpenAPI specification. Each component type is - /// encoded using the encodeObjectMap method of the KeyedArchive. - /// - /// Note: The 'examples' and 'links' components are currently commented out - /// and not being encoded. - /// - /// Parameters: - /// object: A KeyedArchive to which the APIComponents data will be encoded. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (schemas.isNotEmpty) object.encodeObjectMap("schemas", schemas); - if (responses.isNotEmpty) object.encodeObjectMap("responses", responses); - if (parameters.isNotEmpty) object.encodeObjectMap("parameters", parameters); -// object.encodeObjectMap("examples", examples); - if (requestBodies.isNotEmpty) { - object.encodeObjectMap("requestBodies", requestBodies); - } - if (headers.isNotEmpty) object.encodeObjectMap("headers", headers); - if (securitySchemes.isNotEmpty) { - object.encodeObjectMap("securitySchemes", securitySchemes); - } - -// object.encodeObjectMap("links", links); - if (callbacks.isNotEmpty) object.encodeObjectMap("callbacks", callbacks); - } -} diff --git a/packages/openapi/lib/src/v3/document.dart b/packages/openapi/lib/src/v3/document.dart deleted file mode 100644 index d04f928..0000000 --- a/packages/openapi/lib/src/v3/document.dart +++ /dev/null @@ -1,260 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// This class represents the root document object of the OpenAPI document. -/// -/// It contains all the necessary fields to describe an API according to the OpenAPI Specification. -/// The class provides methods to create an empty specification, create from a map, -/// encode to and decode from a KeyedArchive, and convert to a map. -/// -/// Required fields: -/// - version: The semantic version number of the OpenAPI Specification. -/// - info: Metadata about the API. -/// - paths: Available paths and operations for the API. -/// -/// Optional fields: -/// - servers: Connectivity information to target servers. -/// - components: Reusable schemas for the specification. -/// - security: Declaration of security mechanisms that can be used across the API. -/// - tags: List of tags used by the specification with additional metadata. -/// -/// This class extends APIObject and implements encoding and decoding logic -/// to work with the KeyedArchive serialization system. -class APIDocument extends APIObject { - /// Creates an empty APIDocument instance. - /// - /// This constructor initializes a new APIDocument with default values for all fields. - /// It can be used as a starting point for building a new OpenAPI specification document. - APIDocument(); - - /// Creates an APIDocument instance from a decoded JSON or YAML document object. - /// - /// This constructor initializes a new APIDocument by decoding the provided [map]. - /// The [map] should contain key-value pairs representing the structure of an OpenAPI document. - /// - /// It uses [KeyedArchive.unarchive] to convert the map into a KeyedArchive object, - /// which is then decoded to populate the fields of the APIDocument. - /// - /// The [allowReferences] parameter is set to true, allowing the decoding process - /// to handle references within the document. - /// - /// Example: - /// ```dart - /// var document = APIDocument.fromMap({ - /// 'openapi': '3.0.0', - /// 'info': {'title': 'Sample API', 'version': '1.0.0'}, - /// 'paths': {} - /// }); - /// ``` - APIDocument.fromMap(Map map) { - decode(KeyedArchive.unarchive(map, allowReferences: true)); - } - - /// The semantic version number of the OpenAPI Specification that this document uses. - /// - /// REQUIRED. The openapi field SHOULD be used by tooling specifications and clients to interpret the OpenAPI document. This is not related to the API info.version string. - String version = "3.0.0"; - - /// Provides metadata about the API. - /// - /// REQUIRED. The metadata MAY be used by tooling as required. - /// - /// This field is of type [APIInfo] and is initialized with an empty instance - /// using [APIInfo.empty()]. It contains essential information about the API, - /// such as its title, version, description, and other relevant metadata. - /// This information is crucial for API documentation and client generation tools. - APIInfo info = APIInfo.empty(); - - /// An array of [APIServerDescription] objects that provide connectivity information to target servers. - /// - /// If the servers property is not provided, or is an empty array, the default value would be a [APIServerDescription] with a url value of /. - List? servers; - - /// The available paths and operations for the API. - /// - /// REQUIRED. This field is a map where each key represents a unique path in the API, - /// and the corresponding value is an [APIPath] object describing the operations - /// available on that path. - /// - /// The paths field is a crucial part of the OpenAPI specification as it defines - /// the structure and endpoints of the API. Each path may support multiple HTTP - /// methods (GET, POST, PUT, DELETE, etc.), each with its own operation details. - /// - /// Example: - /// ```dart - /// { - /// "/users": APIPath(...), - /// "/products": APIPath(...), - /// } - /// ``` - /// - /// Note: This field is nullable, but it's required for a valid OpenAPI document. - /// An empty map should be used instead of null for APIs with no paths. - Map? paths; - - /// An element to hold various schemas for the specification. - /// - /// This field allows the definition of various reusable objects for different aspects of the OAS. - /// It can include schemas, responses, parameters, examples, and more. - /// These components can be referenced throughout the specification, promoting reusability and reducing duplication. - /// The field is optional but can significantly improve the organization and maintainability of large API specifications. - /// - /// Example usage: - /// ```dart - /// components = APIComponents() - /// ..schemas = {'User': APISchemaObject()} - /// ..responses = {'NotFound': APIResponse()}; - /// ``` - APIComponents? components; - - /// A declaration of which security mechanisms can be used across the API. - /// - /// This field is an optional list of [APISecurityRequirement] objects that define - /// the security schemes applicable to the entire API. Each object in the list - /// represents an alternative set of security requirements. - /// - /// Key features: - /// - Multiple security requirement objects can be specified. - /// - Only one of the security requirement objects needs to be satisfied to authorize a request. - /// - Individual operations can override this global definition. - /// - If the list is empty, it means that there are no global security requirements. - /// - /// The security schemes referenced in this list must be defined in the - /// [components.securitySchemes] section of the OpenAPI document. - /// - /// Example usage: - /// ```dart - /// security = [ - /// APISecurityRequirement()..addRequirement("api_key", []), - /// APISecurityRequirement() - /// ..addRequirement("oauth2", ["read:api"]) - /// ..addRequirement("userPassword", []), - /// ]; - /// ``` - /// - /// In this example, a request can be authorized using either an API key, - /// or a combination of OAuth2 with "read:api" scope and user password. - List? security; - - /// A list of tags used by the specification with additional metadata. - /// - /// The order of the tags can be used to reflect on their order by the parsing tools. - /// Not all tags that are used by the Operation Object must be declared. - /// The tags that are not declared MAY be organized randomly or based on the tools' logic. - /// Each tag name in the list MUST be unique. - /// - /// This field is optional and can be null. When provided, it contains a list of [APITag] objects. - /// Each [APITag] typically includes a name and description, and can be used to categorize and - /// group related operations across the API. - /// - /// Tags defined here can be referenced by [APIOperation] objects throughout the specification, - /// allowing for logical grouping and organization of API endpoints. - /// - /// Example usage: - /// ```dart - /// tags = [ - /// APITag() - /// ..name = "users" - /// ..description = "Operations about users", - /// APITag() - /// ..name = "products" - /// ..description = "Product-related operations", - /// ]; - /// ``` - /// - /// Note: While this field is optional, using tags can significantly improve the structure - /// and readability of API documentation generated from the OpenAPI specification. - List? tags; - - /// Converts this APIDocument instance to a Map. - /// - /// This method uses KeyedArchive.archive to serialize the APIDocument object - /// into a Map representation. The resulting map can be used for JSON/YAML - /// serialization or other purposes where a dictionary-like structure is needed. - /// - /// The allowReferences parameter is set to true, which means that object - /// references within the document will be preserved during the archiving process. - /// - /// Returns: - /// A Map representation of this APIDocument instance. - Map asMap() { - return KeyedArchive.archive(this, allowReferences: true); - } - - /// Decodes the APIDocument from a KeyedArchive object. - /// - /// This method populates the fields of the APIDocument instance using data - /// from the provided [object]. It decodes various components of the OpenAPI - /// specification, including version, info, servers, paths, components, - /// security requirements, and tags. - /// - /// The method uses default values or empty instances for optional fields - /// if they are not present in the archive. - /// - /// Parameters: - /// - object: A KeyedArchive containing the encoded APIDocument data. - /// - /// Note: This method overrides the decode method from the superclass and - /// calls the superclass implementation before decoding specific fields. - @override - void decode(KeyedArchive object) { - super.decode(object); - - version = object.decode("openapi") ?? "3.0.0"; - info = - object.decodeObject("info", () => APIInfo.empty()) ?? APIInfo.empty(); - servers = - object.decodeObjects("servers", () => APIServerDescription.empty()); - paths = object.decodeObjectMap("paths", () => APIPath()); - components = object.decodeObject("components", () => APIComponents()); - security = - object.decodeObjects("security", () => APISecurityRequirement.empty()); - tags = object.decodeObjects("tags", () => APITag.empty()); - } - - /// Encodes the APIDocument into a KeyedArchive object. - /// - /// This method serializes the APIDocument instance into the provided [object], - /// which is a KeyedArchive. It encodes all the fields of the APIDocument, - /// including version, info, servers, paths, components, security, and tags. - /// - /// Before encoding, it checks if the required fields 'info' and 'paths' are valid. - /// If these are not valid or missing, it throws an ArgumentError. - /// - /// Parameters: - /// - object: A KeyedArchive to encode the APIDocument data into. - /// - /// Throws: - /// - ArgumentError: If 'info' is not valid or 'paths' is null. - /// - /// Note: This method overrides the encode method from the superclass and - /// calls the superclass implementation before encoding specific fields. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (!info.isValid || paths == null) { - throw ArgumentError( - "APIDocument must have values for: 'version', 'info' and 'paths'.", - ); - } - - object.encode("openapi", version); - object.encodeObject("info", info); - object.encodeObjects("servers", servers); - object.encodeObjectMap("paths", paths); - object.encodeObject("components", components); - object.encodeObjects("security", security); - object.encodeObjects("tags", tags); - } -} diff --git a/packages/openapi/lib/src/v3/encoding.dart b/packages/openapi/lib/src/v3/encoding.dart deleted file mode 100644 index 748d6f6..0000000 --- a/packages/openapi/lib/src/v3/encoding.dart +++ /dev/null @@ -1,180 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// A single encoding definition applied to a single schema property. -/// -/// This class represents an encoding definition as specified in the OpenAPI Specification. -/// It provides details about how a specific property should be serialized when sent as -/// part of a request body, particularly for multipart requests or application/x-www-form-urlencoded -/// request bodies. -/// -/// Properties: -/// - [contentType]: Specifies the Content-Type for encoding a specific property. -/// - [headers]: Additional headers that may be sent with the request. -/// - [allowReserved]: Determines if reserved characters should be percent-encoded. -/// - [explode]: Controls how arrays and objects are serialized. -/// - [style]: Describes how a specific property value will be serialized. -/// -/// This class extends [APIObject] and implements [Codable] for serialization and deserialization. -class APIEncoding extends APIObject { - /// Creates a new [APIEncoding] instance. - /// - /// Parameters: - /// - [contentType]: The Content-Type for encoding a specific property. - /// - [headers]: A map of additional headers to be included with the request. - /// - [style]: Describes how a specific property value will be serialized. - /// - [allowReserved]: Determines if reserved characters should be percent-encoded. Defaults to false. - /// - [explode]: Controls how arrays and objects are serialized. Defaults to false. - APIEncoding({ - this.contentType, - this.headers, - this.style, - this.allowReserved = false, - this.explode = false, - }); - - /// Creates an empty [APIEncoding] instance with default values. - /// - /// This constructor initializes an [APIEncoding] with [allowReserved] and [explode] - /// set to false. All other properties are left uninitialized. - APIEncoding.empty() - : allowReserved = false, - explode = false; - - /// The Content-Type for encoding a specific property. - /// - /// Specifies the media type to be used for encoding this property when sending the request body. - /// The default value depends on the property type: - /// - For string with format being binary: application/octet-stream - /// - For other primitive types: text/plain - /// - For object: application/json - /// - For array: defined based on the inner type - /// - /// The value can be: - /// - A specific media type (e.g., application/json) - /// - A wildcard media type (e.g., image/*) - /// - A comma-separated list of the above types - /// - /// This property is particularly relevant for multipart request bodies and - /// application/x-www-form-urlencoded request bodies. - String? contentType; - - /// A map allowing additional information to be provided as headers, for example Content-Disposition. - /// - /// Content-Type is described separately and SHALL be ignored in this section. This property SHALL be ignored if the request body media type is not a multipart. - /// - /// This map represents a collection of headers associated with the encoding. Each key in the map - /// is a header name, and the corresponding value is an [APIHeader] object that defines the header's - /// properties. These headers provide supplementary information for the encoded content. - /// - /// Note: - /// - The Content-Type header is handled separately and should not be included in this map. - /// - This property is only applicable for multipart request body media types. It will be ignored - /// for other media types. - /// - /// Example usage: - /// ```dart - /// headers = { - /// "Content-Disposition": APIHeader(description: "Specifies the filename for the uploaded file"), - /// "X-Custom-Header": APIHeader(description: "A custom header for additional metadata") - /// }; - /// ``` - Map? headers; - - /// Determines whether the parameter value should allow reserved characters without percent-encoding. - /// - /// The default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded. - bool? allowReserved; - - /// Determines how array and object properties are serialized in form-style parameters. - /// - /// For other types of properties this property has no effect. When style is form, the default value is true. For all other styles, the default value is false. This property SHALL be ignored if the request body media type is not application/x-www-form-urlencoded. - bool? explode; - - /// Describes how a specific property value will be serialized depending on its type. - /// - /// This property specifies the serialization style for the encoded value. It follows the same - /// behavior and values as the style property for query parameters in [APIParameter]. - /// - /// The style affects how the property is serialized, especially for complex types like arrays - /// and objects. Common values include: - /// - 'form': comma-separated values for arrays (default for application/x-www-form-urlencoded) - /// - 'spaceDelimited': space-separated values for arrays - /// - 'pipeDelimited': pipe-separated values for arrays - /// - 'deepObject': for nested objects - /// - /// Note: - /// - This property is only applicable when the request body media type is - /// application/x-www-form-urlencoded. It will be ignored for other media types. - /// - If not specified, the default style depends on the parameter type and the media type - /// of the request body. - /// - /// See [APIParameter] for more detailed information on style values and their effects. - String? style; - - /// Decodes the [APIEncoding] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APIEncoding] - /// instance from the provided [KeyedArchive] object. It decodes each property - /// using the appropriate key and method from the archive. - /// - /// The following properties are decoded: - /// - [contentType]: The Content-Type for encoding a specific property. - /// - [headers]: A map of additional headers to be included with the request. - /// - [allowReserved]: Determines if reserved characters should be percent-encoded. - /// - [explode]: Controls how arrays and objects are serialized. - /// - [style]: Describes how a specific property value will be serialized. - /// - /// This method also calls the superclass's decode method to handle any inherited properties. - /// - /// Parameters: - /// - [object]: The [KeyedArchive] containing the encoded data for this [APIEncoding] instance. - @override - void decode(KeyedArchive object) { - super.decode(object); - - contentType = object.decode("contentType"); - headers = object.decodeObjectMap("headers", () => APIHeader()); - allowReserved = object.decode("allowReserved"); - explode = object.decode("explode"); - style = object.decode("style"); - } - - /// Encodes the [APIEncoding] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APIEncoding] - /// instance into the provided [KeyedArchive] object. It encodes each property - /// using the appropriate key and method for the archive. - /// - /// The following properties are encoded: - /// - [contentType]: The Content-Type for encoding a specific property. - /// - [headers]: A map of additional headers to be included with the request. - /// - [allowReserved]: Determines if reserved characters should be percent-encoded. - /// - [explode]: Controls how arrays and objects are serialized. - /// - [style]: Describes how a specific property value will be serialized. - /// - /// This method also calls the superclass's encode method to handle any inherited properties. - /// - /// Parameters: - /// - [object]: The [KeyedArchive] where the encoded data for this [APIEncoding] instance will be stored. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("contentType", contentType); - object.encodeObjectMap("headers", headers); - object.encode("allowReserved", allowReserved); - object.encode("explode", explode); - object.encode("style", style); - } -} diff --git a/packages/openapi/lib/src/v3/header.dart b/packages/openapi/lib/src/v3/header.dart deleted file mode 100644 index b625f30..0000000 --- a/packages/openapi/lib/src/v3/header.dart +++ /dev/null @@ -1,58 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents an API Header in OpenAPI specifications. -/// -/// name MUST NOT be specified, it is given in the corresponding headers map. -/// in MUST NOT be specified, it is implicitly in header. -/// All traits that are affected by the location MUST be applicable to a location of header (for example, style). -class APIHeader extends APIParameter { - /// Creates an [APIHeader] instance. - /// - /// This constructor initializes an [APIHeader] with an optional [schema]. - /// The [schema] parameter is of type [APISchemaObject] and defines the - /// structure and constraints of the header value. - /// - /// The constructor calls the superclass constructor [super.header] with - /// a null name and the provided schema. - APIHeader({APISchemaObject? schema}) : super.header(null, schema: schema); - - /// Creates an empty [APIHeader] instance. - /// - /// This constructor initializes an [APIHeader] without specifying a schema. - /// It calls the superclass constructor [super.header] with a null name and - /// no schema, resulting in an empty header definition. - APIHeader.empty() : super.header(null); - - /// Encodes the [APIHeader] object into a [KeyedArchive]. - /// - /// This method overrides the superclass's encode method to handle the specific - /// encoding requirements of an API header. It performs the following steps: - /// 1. Temporarily sets the 'name' property to "temporary". - /// 2. Calls the superclass's encode method to perform the base encoding. - /// 3. Removes the "name" and "in" keys from the encoded object, as these - /// are not required for API headers in OpenAPI specifications. - /// 4. Resets the 'name' property to null. - /// - /// This approach ensures that the header is correctly encoded while adhering - /// to OpenAPI specifications for headers. - /// - /// [object] The [KeyedArchive] to encode the header information into. - @override - void encode(KeyedArchive object) { - name = "temporary"; - super.encode(object); - object.remove("name"); - object.remove("in"); - name = null; - } -} diff --git a/packages/openapi/lib/src/v3/media_type.dart b/packages/openapi/lib/src/v3/media_type.dart deleted file mode 100644 index 25978ec..0000000 --- a/packages/openapi/lib/src/v3/media_type.dart +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents a media type in an API specification. -/// -/// An [APIMediaType] object provides schema and encoding information for a specific media type. -/// It is typically used in OpenAPI specifications to describe the structure and format of request -/// or response bodies for different content types. -/// -/// The [schema] property defines the structure of the media type content, while the [encoding] -/// property provides additional information about how to encode specific properties, particularly -/// useful for multipart and application/x-www-form-urlencoded media types. -/// -/// This class extends [APIObject] and implements [Codable] for serialization and deserialization. -/// The [decode] and [encode] methods are overridden to handle the specific properties of this class. -/// Each [APIMediaType] provides schema and examples for the media type identified by its key. -class APIMediaType extends APIObject { - /// Creates an [APIMediaType] instance. - /// - /// [schema] is an optional [APISchemaObject] that defines the structure of the media type content. - /// [encoding] is an optional [Map] that provides additional information about how to encode specific properties. - /// - /// This constructor allows for the creation of an [APIMediaType] with or without a schema and encoding information. - APIMediaType({this.schema, this.encoding}); - - /// Creates an empty [APIMediaType] instance. - /// - /// This constructor initializes an [APIMediaType] with no schema or encoding information. - /// It can be used when you need to create a placeholder or default media type object - /// that will be populated later. - APIMediaType.empty(); - - /// The schema defining the type used for the request body. - /// - /// This property holds an optional [APISchemaObject] that describes the structure - /// and constraints of the data for this media type. It defines the expected format, - /// types, and validation rules for the request body when this media type is used. - /// If not specified, it indicates that the structure of the request body is not strictly defined - /// or is described elsewhere in the API specification. - APISchemaObject? schema; - - /// A map between a property name and its encoding information. - /// - /// This property holds an optional [Map] where each key is a property name and each value - /// is an [APIEncoding] object providing encoding information for that property. - /// - /// The key, being the property name, MUST exist in the schema as a property. The encoding - /// object SHALL only apply to requestBody objects when the media type is multipart or - /// application/x-www-form-urlencoded. - /// - /// This map is particularly useful for specifying additional metadata about the encoding - /// of specific properties within the media type, such as content type, headers, or style - /// when dealing with complex data structures in request bodies. - /// - /// If this property is null or empty, it indicates that no specific encoding information - /// is provided for the properties of this media type. - Map? encoding; - - /// Decodes the [APIMediaType] object from a [KeyedArchive]. - /// - /// This method overrides the [decode] method from the superclass and is responsible for - /// populating the properties of the [APIMediaType] object from the given [KeyedArchive]. - /// - /// It performs the following operations: - /// 1. Calls the superclass's decode method to handle any inherited properties. - /// 2. Decodes the "schema" field into an [APISchemaObject], if present. - /// 3. Decodes the "encoding" field into a Map of [String] to [APIEncoding], if present. - /// - /// [object] is the [KeyedArchive] containing the encoded data for this [APIMediaType]. - @override - void decode(KeyedArchive object) { - super.decode(object); - - schema = object.decodeObject("schema", () => APISchemaObject()); - encoding = object.decodeObjectMap("encoding", () => APIEncoding()); - } - - /// Encodes the [APIMediaType] object into a [KeyedArchive]. - /// - /// This method overrides the [encode] method from the superclass and is responsible for - /// serializing the properties of the [APIMediaType] object into the given [KeyedArchive]. - /// - /// It performs the following operations: - /// 1. Calls the superclass's encode method to handle any inherited properties. - /// 2. Encodes the "schema" field from the [APISchemaObject], if present. - /// 3. Encodes the "encoding" field as a Map of [String] to [APIEncoding], if present. - /// - /// [object] is the [KeyedArchive] where the encoded data for this [APIMediaType] will be stored. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encodeObject("schema", schema); - object.encodeObjectMap("encoding", encoding); - } -} diff --git a/packages/openapi/lib/src/v3/metadata.dart b/packages/openapi/lib/src/v3/metadata.dart deleted file mode 100644 index 10a78bc..0000000 --- a/packages/openapi/lib/src/v3/metadata.dart +++ /dev/null @@ -1,605 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// The object provides metadata about the API. -/// -/// The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience. -/// -/// This class represents the OpenAPI Info Object, which contains basic information about the API. -/// It includes required fields like 'title' and 'version', as well as optional fields such as -/// 'description', 'termsOfServiceURL', 'contact', and 'license'. -/// -/// The [APIInfo] class provides methods to encode and decode the information to and from a [KeyedArchive], -/// which is useful for serialization and deserialization of the API metadata. -/// -/// Usage: -/// ```dart -/// var info = APIInfo('My API', '1.0.0', -/// description: 'This is a sample API', -/// termsOfServiceURL: Uri.parse('https://example.com/terms'), -/// contact: APIContact(name: 'API Support', email: 'support@example.com'), -/// license: APILicense('Apache 2.0', url: Uri.parse('https://www.apache.org/licenses/LICENSE-2.0.html')) -/// ); -/// ``` -/// -/// The [isValid] getter can be used to check if the required fields are non-null. -class APIInfo extends APIObject { - /// Creates an [APIInfo] instance with the required fields and optional metadata. - /// - /// [title] and [version] are required parameters. - /// - /// Optional parameters include: - /// - [description]: A short description of the API. - /// - [termsOfServiceURL]: A URL to the Terms of Service for the API. - /// - [license]: The license information for the exposed API. - /// - [contact]: The contact information for the exposed API. - /// - /// Example: - /// ```dart - /// var info = APIInfo( - /// 'My API', - /// '1.0.0', - /// description: 'This is a sample API', - /// termsOfServiceURL: Uri.parse('https://example.com/terms'), - /// license: APILicense('Apache 2.0'), - /// contact: APIContact(name: 'API Support', email: 'support@example.com') - /// ); - /// ``` - APIInfo( - this.title, - this.version, { - this.description, - this.termsOfServiceURL, - this.license, - this.contact, - }); - - /// Creates an empty [APIInfo] instance. - /// - /// This constructor initializes an [APIInfo] object without setting any of its properties. - /// It can be useful when you need to create an instance of [APIInfo] and populate its - /// properties later, or when decoding from a serialized format. - APIInfo.empty(); - - /// The title of the application. - /// - /// This field is REQUIRED according to the OpenAPI Specification. - /// It provides the name of the API or application that this [APIInfo] object describes. - /// - /// Example: - /// ```dart - /// var info = APIInfo('My Amazing API', '1.0.0'); - /// print(info.title); // Output: My Amazing API - /// ``` - /// - /// Note: Despite being marked as required in the specification, this field is nullable - /// to allow for deserialization of incomplete data. Always ensure this field is set - /// before using the [APIInfo] object in production. - String? title; - - /// A short description of the application. - /// - /// This field provides a brief summary of the API or application that this [APIInfo] object describes. - /// It's an optional field that can be used to give users a quick understanding of the API's purpose. - /// - /// The OpenAPI Specification allows for CommonMark syntax to be used in this field, - /// enabling rich text representation for more detailed or formatted descriptions. - /// - /// Example: - /// ```dart - /// var info = APIInfo('My API', '1.0.0', - /// description: 'This API provides access to our product catalog and order management system.' - /// ); - /// ``` - /// - /// Note: This field is nullable, as it's not a required field in the OpenAPI Specification. - String? description; - - /// The version of the OpenAPI document. - /// - /// REQUIRED. - String? version; - - /// A URL to the Terms of Service for the API. - /// - /// This field provides a link to the Terms of Service for the API, if available. - /// It must be in the format of a valid URL. - /// - /// According to the OpenAPI Specification, if provided, this field MUST be a URL. - /// It's an optional field, so it can be null if no Terms of Service URL is specified. - /// - /// Example: - /// ```dart - /// var info = APIInfo('My API', '1.0.0', - /// termsOfServiceURL: Uri.parse('https://example.com/terms') - /// ); - /// ``` - /// - /// Note: When setting this field, ensure that the provided URI is valid and accessible. - Uri? termsOfServiceURL; - - /// The contact information for the exposed API. - /// - /// This field contains an [APIContact] object that provides contact information - /// for the API. It can include details such as the name of the contact person or - /// organization, a URL for contact information, and an email address. - /// - /// This field is optional according to the OpenAPI Specification, so it can be null - /// if no contact information is provided. - /// - /// Example: - /// ```dart - /// var info = APIInfo('My API', '1.0.0', - /// contact: APIContact( - /// name: 'API Support', - /// url: Uri.parse('https://www.example.com/support'), - /// email: 'support@example.com' - /// ) - /// ); - /// ``` - APIContact? contact; - - /// The license information for the exposed API. - /// - /// This field contains an [APILicense] object that provides license information - /// for the API. It typically includes the name of the license and optionally - /// a URL where the full license text can be found. - /// - /// This field is optional according to the OpenAPI Specification, so it can be null - /// if no license information is provided. - /// - /// Example: - /// ```dart - /// var info = APIInfo('My API', '1.0.0', - /// license: APILicense('Apache 2.0', url: Uri.parse('https://www.apache.org/licenses/LICENSE-2.0.html')) - /// ); - /// ``` - APILicense? license; - - /// Checks if the [APIInfo] object is valid according to the OpenAPI Specification. - /// - /// This getter returns `true` if both the [title] and [version] fields are non-null, - /// as these are required fields in the OpenAPI Specification for the Info Object. - /// - /// Returns: - /// A boolean value: `true` if both [title] and [version] are non-null, `false` otherwise. - /// - /// Example: - /// ```dart - /// var info = APIInfo('My API', '1.0.0'); - /// print(info.isValid); // Output: true - /// - /// var incompleteInfo = APIInfo.empty(); - /// print(incompleteInfo.isValid); // Output: false - /// ``` - bool get isValid => title != null && version != null; - - /// Decodes the [APIInfo] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APIInfo] object - /// from a [KeyedArchive]. It decodes the following fields: - /// - 'title': The title of the API (String) - /// - 'description': A short description of the API (String) - /// - 'termsOfService': URL to the Terms of Service (Uri) - /// - 'contact': Contact information (APIContact) - /// - 'license': License information (APILicense) - /// - 'version': The version of the API (String) - /// - /// The 'contact' and 'license' fields are decoded as objects of their respective types. - /// - /// This method overrides the [decode] method from the superclass and calls it before - /// performing its own decoding operations. - /// - /// @param object The [KeyedArchive] containing the encoded [APIInfo] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - title = object.decode("title"); - description = object.decode("description"); - termsOfServiceURL = object.decode("termsOfService"); - contact = object.decodeObject("contact", () => APIContact()); - license = object.decodeObject("license", () => APILicense.empty()); - version = object.decode("version"); - } - - /// Encodes the [APIInfo] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APIInfo] object - /// into a [KeyedArchive]. It encodes the following fields: - /// - 'title': The title of the API (String) - /// - 'description': A short description of the API (String) - /// - 'version': The version of the API (String) - /// - 'termsOfService': URL to the Terms of Service (Uri) - /// - 'contact': Contact information (APIContact) - /// - 'license': License information (APILicense) - /// - /// The method first checks if the required fields 'title' and 'version' are non-null. - /// If either is null, it throws an [ArgumentError]. - /// - /// This method overrides the [encode] method from the superclass and calls it before - /// performing its own encoding operations. - /// - /// @param object The [KeyedArchive] to encode the [APIInfo] data into. - /// @throws ArgumentError if 'title' or 'version' is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (title == null || version == null) { - throw ArgumentError( - "APIInfo must have non-null values for: 'title', 'version'.", - ); - } - - object.encode("title", title); - object.encode("description", description); - object.encode("version", version); - object.encode("termsOfService", termsOfServiceURL); - object.encodeObject("contact", contact); - object.encodeObject("license", license); - } -} - -/// Contact information for the exposed API. -/// -/// This class represents the Contact Object as defined in the OpenAPI Specification. -/// It provides optional fields for the name, URL, and email of the contact person or organization -/// responsible for the API. -/// -/// The [APIContact] class extends [APIObject] and provides methods to encode and decode -/// the contact information to and from a [KeyedArchive], which is useful for serialization -/// and deserialization of the API metadata. -/// -/// Usage: -/// ```dart -/// var contact = APIContact( -/// name: 'API Support', -/// url: Uri.parse('https://www.example.com/support'), -/// email: 'support@example.com' -/// ); -/// ``` -class APIContact extends APIObject { - /// Creates an [APIContact] instance with optional name, URL, and email. - /// - /// This constructor allows you to create an [APIContact] object by providing - /// optional parameters for the contact's name, URL, and email address. - /// - /// Parameters: - /// - [name]: The identifying name of the contact person/organization. - /// - [url]: The URL pointing to the contact information. Must be a valid URI. - /// - [email]: The email address of the contact person/organization. - /// - /// Example: - /// ```dart - /// var contact = APIContact( - /// name: 'API Support', - /// url: Uri.parse('https://www.example.com/support'), - /// email: 'support@example.com' - /// ); - /// ``` - APIContact({this.name, this.url, this.email}); - - /// Creates an empty [APIContact] instance. - /// - /// This constructor initializes an [APIContact] object without setting any of its properties. - /// It can be useful when you need to create an instance of [APIContact] and populate its - /// properties later, or when decoding from a serialized format. - APIContact.empty(); - - /// The identifying name of the contact person/organization. - /// - /// This property represents the name of the individual or organization - /// responsible for the API. It's an optional field in the OpenAPI Specification, - /// so it can be null if no contact name is provided. - /// - /// Example: - /// ```dart - /// var contact = APIContact(name: 'API Support Team'); - /// ``` - String? name; - - /// The URL pointing to the contact information. - /// - /// This property represents a URL that provides additional contact information - /// for the API. According to the OpenAPI Specification, if provided, this field - /// MUST be in the format of a valid URL. - /// - /// This field is optional and can be null if no contact URL is specified. - /// - /// Example: - /// ```dart - /// var contact = APIContact( - /// url: Uri.parse('https://www.example.com/api-support') - /// ); - /// ``` - /// - /// Note: When setting this field, ensure that the provided URI is valid and accessible. - Uri? url; - - /// The email address of the contact person/organization. - /// - /// This property represents the email address for contacting the individual or organization - /// responsible for the API. According to the OpenAPI Specification, if provided, this field - /// MUST be in the format of a valid email address. - /// - /// This field is optional and can be null if no contact email is specified. - /// - /// Example: - /// ```dart - /// var contact = APIContact(email: 'support@example.com'); - /// ``` - /// - /// Note: When setting this field, ensure that the provided email address is valid and follows - /// the standard email format (e.g., username@domain.com). - /// - /// MUST be in the format of an email address. - String? email; - - /// Decodes the [APIContact] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APIContact] object - /// from a [KeyedArchive]. It decodes the following fields: - /// - 'name': The identifying name of the contact person/organization (String) - /// - 'url': The URL pointing to the contact information (Uri) - /// - 'email': The email address of the contact person/organization (String) - /// - /// This method overrides the [decode] method from the superclass and calls it before - /// performing its own decoding operations. - /// - /// @param object The [KeyedArchive] containing the encoded [APIContact] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - url = object.decode("url"); - email = object.decode("email"); - } - - /// Encodes the [APIContact] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APIContact] object - /// into a [KeyedArchive]. It encodes the following fields: - /// - 'name': The identifying name of the contact person/organization (String) - /// - 'url': The URL pointing to the contact information (Uri) - /// - 'email': The email address of the contact person/organization (String) - /// - /// This method overrides the [encode] method from the superclass and calls it before - /// performing its own encoding operations. - /// - /// @param object The [KeyedArchive] to encode the [APIContact] data into. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("name", name); - object.encode("url", url); - object.encode("email", email); - } -} - -/// License information for the exposed API. -/// -/// This class represents the License Object as defined in the OpenAPI Specification. -/// It provides information about the license under which the API is made available. -/// -/// The [APILicense] class extends [APIObject] and provides methods to encode and decode -/// the license information to and from a [KeyedArchive], which is useful for serialization -/// and deserialization of the API metadata. -/// -/// Usage: -/// ```dart -/// var license = APILicense('Apache 2.0', url: Uri.parse('https://www.apache.org/licenses/LICENSE-2.0.html')); -/// ``` -class APILicense extends APIObject { - /// Creates an [APILicense] instance with a required name and an optional URL. - /// - /// This constructor initializes an [APILicense] object with the provided license name - /// and an optional URL to the full license text. - /// - /// Parameters: - /// - [name]: The name of the license. This parameter is required. - /// - [url]: An optional URL pointing to the full text of the license. - /// - /// Example: - /// ```dart - /// var license = APILicense('Apache 2.0', url: Uri.parse('https://www.apache.org/licenses/LICENSE-2.0.html')); - /// ``` - APILicense(this.name, {this.url}); - - /// Creates an empty [APILicense] instance. - /// - /// This constructor initializes an [APILicense] object without setting any of its properties. - /// It can be useful when you need to create an instance of [APILicense] and populate its - /// properties later, or when decoding from a serialized format. - APILicense.empty(); - - /// The license name used for the API. - /// - /// This property represents the name of the license under which the API is made available. - /// According to the OpenAPI Specification, this field is REQUIRED for the License Object. - /// - /// Despite being marked as required in the specification, this field is nullable - /// to allow for deserialization of incomplete data. Always ensure this field is set - /// before using the [APILicense] object in production. - /// - /// Example: - /// ```dart - /// var license = APILicense('Apache 2.0'); - /// print(license.name); // Output: Apache 2.0 - /// ``` - /// - /// REQUIRED. - String? name; - - /// A URL to the license used for the API. - /// - /// This property represents a URL pointing to the full text of the license - /// under which the API is made available. According to the OpenAPI Specification, - /// if provided, this field MUST be in the format of a valid URL. - /// - /// This field is optional and can be null if no license URL is specified. - /// - /// Example: - /// ```dart - /// var license = APILicense('Apache 2.0', - /// url: Uri.parse('https://www.apache.org/licenses/LICENSE-2.0.html') - /// ); - /// ``` - /// - /// Note: When setting this field, ensure that the provided URI is valid and accessible. - /// - /// MUST be in the format of a URL. - Uri? url; - - /// Decodes the [APILicense] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APILicense] object - /// from a [KeyedArchive]. It decodes the following fields: - /// - 'name': The name of the license used for the API (String) - /// - 'url': A URL to the license used for the API (Uri) - /// - /// This method overrides the [decode] method from the superclass and calls it before - /// performing its own decoding operations. - /// - /// @param object The [KeyedArchive] containing the encoded [APILicense] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - url = object.decode("url"); - } - - /// Encodes the [APILicense] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APILicense] object - /// into a [KeyedArchive]. It encodes the following fields: - /// - 'name': The name of the license used for the API (String) - /// - 'url': A URL to the license used for the API (Uri) - /// - /// This method first calls the superclass's encode method, then checks if the required - /// 'name' field is non-null. If 'name' is null, it throws an [ArgumentError]. - /// - /// @param object The [KeyedArchive] to encode the [APILicense] data into. - /// @throws ArgumentError if 'name' is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (name == null) { - throw ArgumentError("APILicense must have non-null values for: 'name'."); - } - - object.encode("name", name); - object.encode("url", url); - } -} - -/// Adds metadata to a single tag that is used by the [APIOperation]. -/// -/// It is not mandatory to have a [APITag] per tag defined in the [APIOperation] instances. -/// -/// The [APITag] class extends [APIObject] and provides methods to encode and decode -/// the tag information to and from a [KeyedArchive], which is useful for serialization -/// and deserialization of the API metadata. -/// -/// Usage: -/// ```dart -/// var tag = APITag('user', description: 'User-related operations'); -/// ``` -class APITag extends APIObject { - /// Creates an [APITag] instance with a required name and an optional description. - /// - /// Parameters: - /// - [name]: The name of the tag. This parameter is required. - /// - [description]: An optional short description for the tag. - /// - /// Example: - /// ```dart - /// var tag = APITag('user', description: 'User-related operations'); - /// ``` - APITag(this.name, {this.description}); - - /// Creates an empty [APITag] instance. - /// - /// This constructor initializes an [APITag] object without setting any of its properties. - /// It can be useful when you need to create an instance of [APITag] and populate its - /// properties later, or when decoding from a serialized format. - APITag.empty(); - - /// The name of the tag. - /// - /// This property represents the name of the tag used to group operations. - /// According to the OpenAPI Specification, this field is REQUIRED for the Tag Object. - /// - /// Despite being marked as required in the specification, this field is nullable - /// to allow for deserialization of incomplete data. Always ensure this field is set - /// before using the [APITag] object in production. - /// - /// REQUIRED. - String? name; - - /// A short description for the tag. - /// - /// This property provides a brief description of the tag's purpose or the operations it groups. - /// According to the OpenAPI Specification, CommonMark syntax MAY be used for rich text representation. - /// - /// This field is optional and can be null if no description is provided. - /// - /// CommonMark syntax MAY be used for rich text representation. - String? description; - - /// Decodes the [APITag] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APITag] object - /// from a [KeyedArchive]. It decodes the following fields: - /// - 'name': The name of the tag (String) - /// - 'description': A short description for the tag (String) - /// - /// This method overrides the [decode] method from the superclass and calls it before - /// performing its own decoding operations. - /// - /// @param object The [KeyedArchive] containing the encoded [APITag] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - description = object.decode("description"); - } - - /// Encodes the [APITag] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APITag] object - /// into a [KeyedArchive]. It encodes the following fields: - /// - 'name': The name of the tag (String) - /// - 'description': A short description for the tag (String) - /// - /// This method first calls the superclass's encode method, then checks if the required - /// 'name' field is non-null. If 'name' is null, it throws an [ArgumentError]. - /// - /// @param object The [KeyedArchive] to encode the [APITag] data into. - /// @throws ArgumentError if 'name' is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (name == null) { - throw ArgumentError("APITag must have non-null values for: 'name'."); - } - object.encode("name", name); - object.encode("description", description); - } -} diff --git a/packages/openapi/lib/src/v3/operation.dart b/packages/openapi/lib/src/v3/operation.dart deleted file mode 100644 index 2a538a2..0000000 --- a/packages/openapi/lib/src/v3/operation.dart +++ /dev/null @@ -1,430 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Describes a single API operation on a path. -/// -/// This class represents an operation (HTTP method) in an OpenAPI specification. -/// It contains information about the operation such as tags, summary, description, -/// parameters, security requirements, request body, responses, and more. -/// -/// The class provides methods to add parameters, security requirements, and responses, -/// as well as to retrieve specific parameters by name. -/// -/// This class extends [APIObject] and implements [Codable] for serialization and deserialization. -class APIOperation extends APIObject { - /// Creates a new [APIOperation] instance. - /// - /// [id] is the unique string used to identify the operation. - /// [responses] is a map of possible responses as they are returned from executing this operation. - /// - /// Optional parameters: - /// - [tags]: A list of tags for API documentation control. - /// - [summary]: A short summary of what the operation does. - /// - [description]: A verbose explanation of the operation behavior. - /// - [parameters]: A list of parameters that are applicable for this operation. - /// - [security]: A declaration of which security mechanisms can be used for this operation. - /// - [requestBody]: The request body applicable for this operation. - /// - [callbacks]: A map of possible out-of band callbacks related to the parent operation. - /// - [deprecated]: Declares this operation to be deprecated. - APIOperation( - this.id, - this.responses, { - this.tags, - this.summary, - this.description, - this.parameters, - this.security, - this.requestBody, - this.callbacks, - this.deprecated, - }); - - /// Creates an empty [APIOperation] instance. - /// - /// This constructor initializes an [APIOperation] with no properties set, - /// allowing for manual population of fields after creation. - APIOperation.empty(); - - /// A list of tags for API documentation control. - /// - /// Tags can be used for logical grouping of operations by resources or any other qualifier. - /// These tags are used to categorize and organize API operations in documentation tools and clients. - /// Each tag is a string that represents a specific category or group. - /// Tags are optional but can greatly improve the organization and discoverability of API operations. - /// Multiple tags can be applied to a single operation, allowing for flexible categorization. - List? tags; - - /// A short summary of what the operation does. - /// - /// This property provides a concise description of the operation's purpose. - /// It should be brief, typically a single sentence or short paragraph. - /// The summary is often used in API documentation to give users a quick - /// understanding of what the operation does without needing to read the - /// full description. - String? summary; - - /// A verbose explanation of the operation behavior. - /// - /// This property provides a detailed description of what the operation does, - /// how it works, and any important information that users or developers should - /// know about its behavior. It can include information about: - /// - The purpose of the operation - /// - Expected input and output - /// - Possible side effects - /// - Usage examples - /// - Any limitations or constraints - /// - /// The description can be more extensive than the summary and is meant to provide - /// a comprehensive understanding of the operation. - /// - /// CommonMark syntax MAY be used for rich text representation, allowing for - /// formatted text, lists, code blocks, and other Markdown features to enhance - /// readability and organization of the description. - String? description; - - /// Unique string used to identify the operation. - /// - /// The id MUST be unique among all operations described in the API. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow common programming naming conventions. - /// - /// This property serves as a unique identifier for the operation within the API specification. - /// It is crucial for: - /// - Distinguishing between different operations - /// - Enabling tools and libraries to reference specific operations - /// - Maintaining consistency and clarity in API documentation - /// - /// Best practices for assigning an operationId: - /// - Use camelCase naming convention - /// - Make it descriptive of the operation's purpose - /// - Ensure it's unique across all operations in the API - /// - Keep it concise while still being meaningful - /// - /// Example: 'getUserProfile', 'createOrder', 'updateItemInventory' - /// - /// Note: While optional in the OpenAPI specification, providing an operationId - /// is strongly recommended for better API organization and tooling support. - String? id; - - /// A list of parameters that are applicable for this operation. - /// - /// This property defines the parameters that are specific to this operation. - /// These parameters can be in addition to or overriding the parameters defined - /// at the path level. - /// - /// Key points: - /// - If a parameter is already defined at the Path Item level, the definition - /// here will override it, but cannot remove it entirely. - /// - The list MUST NOT include duplicated parameters. A unique parameter is - /// defined by a combination of a name and location. - /// - The list can use the Reference Object to link to parameters that are - /// defined in the OpenAPI Object's components/parameters section. - /// - Parameters defined here are specific to this operation and may not apply - /// to other operations, even within the same path. - /// - /// This property allows for fine-grained control over the parameters for each - /// individual operation, enabling precise API documentation and client generation. - List? parameters; - - /// A declaration of which security mechanisms can be used for this operation. - /// - /// This property defines the security requirements for the specific operation. - /// It is represented as a list of [APISecurityRequirement] objects. - /// - /// Key points: - /// - Each element in the list represents an alternative security requirement. - /// - Only one of the security requirement objects needs to be satisfied to authorize a request. - /// - This definition overrides any declared top-level security for the API. - /// - To remove a top-level security declaration, an empty array can be used. - /// - If not specified, the security requirements defined at the API level apply. - /// - /// The security requirements can include various authentication schemes such as: - /// - API keys - /// - OAuth2 flows - /// - OpenID Connect Discovery - /// - HTTP authentication schemes (e.g., Basic, Bearer) - /// - /// By specifying security at the operation level, you can have fine-grained - /// control over the security requirements for different API endpoints. - List? security; - - /// The request body applicable for this operation. - /// - /// This property specifies the request body content for this operation. It is represented - /// by an [APIRequestBody] object, which describes a single request body. - /// - /// Key points: - /// - The requestBody is only supported in HTTP methods where the HTTP 1.1 specification - /// RFC7231 has explicitly defined semantics for request bodies. - /// - In cases where the HTTP spec is vague about request bodies, this property SHALL be - /// ignored by consumers. - /// - It can be used to describe the content, format, and schema of the request body. - /// - This property is particularly useful for POST, PUT, and PATCH operations. - /// - It can specify multiple content types that the API can consume. - /// - If null, it indicates that the operation does not expect a request body. - /// - /// Note: The actual support and behavior regarding request bodies may vary depending on - /// the specific HTTP method used and how strictly the implementation follows the HTTP - /// specifications. - APIRequestBody? requestBody; - - /// The list of possible responses as they are returned from executing this operation. - /// - /// This property is a map where the keys are HTTP status codes (as strings) and the values - /// are [APIResponse] objects describing the response for that status code. - /// - /// Key points: - /// - This property is REQUIRED in the OpenAPI specification. - /// - It must contain at least one response object, which may be the 'default' response. - /// - The map can use the wildcard HTTP status code '2XX', '3XX', '4XX', or '5XX' to describe - /// multiple status codes at once. - /// - The 'default' key can be used to describe the response for all undeclared status codes. - /// - /// Example: - /// ``` - /// "responses": { - /// "200": { ... }, // Successful response - /// "400": { ... }, // Bad request response - /// "default": { ... } // Unexpected error response - /// } - /// ``` - /// - /// Each [APIResponse] object in this map provides details about the response such as - /// description, headers, content, and links. - Map? responses; - - /// A map of possible out-of-band callbacks related to the parent operation. - /// - /// The key is a unique identifier for the [APICallback]. Each value in the map is a [APICallback] that describes a request that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation. - Map? callbacks; - - /// An alternative server array to service this operation. - /// - /// If an alternative server object is specified at the [APIPath] or [APIDocument] level, it will be overridden by this value. - /// - /// This property allows specifying operation-specific servers, which take precedence over servers defined at the path or document level. - /// Each [APIServerDescription] in the list represents a server that can handle requests for this specific operation. - /// - /// Key points: - /// - If specified, this array overrides any server configurations defined at higher levels (path, document). - /// - It allows for fine-grained control over which servers can handle specific operations. - /// - Useful for scenarios where certain operations are only available on specific servers. - /// - Can be used to specify different environments (e.g., production, staging) for different operations. - /// - /// The list can be null if no operation-specific servers are defined, in which case the servers defined at higher levels will be used. - List? servers; - - /// Declares this operation to be deprecated. - /// - /// This property indicates whether the operation is deprecated and should be avoided in future use. - /// - /// Key points: - /// - When set to true, it signals that the operation is no longer recommended for use. - /// - Consumers of the API SHOULD refrain from using deprecated operations. - /// - It helps in managing API lifecycle by indicating which operations are being phased out. - /// - Can be used to guide API users towards newer or preferred alternatives. - /// - The default value is false if not explicitly set. - /// - /// Note: Even when an operation is marked as deprecated, it may still be functional. - /// However, it's a strong indication that the operation may be removed or altered in future versions of the API. - bool? deprecated; - - /// Returns the parameter named [name] or null if it doesn't exist. - /// - /// This method searches the [parameters] list for a parameter with the specified [name]. - /// If found, it returns the matching [APIParameter] object. - /// If no parameter with the given name is found, or if [parameters] is null, it returns null. - /// - /// Parameters: - /// [name]: The name of the parameter to search for. - /// - /// Returns: - /// An [APIParameter] object if a parameter with the specified name is found, otherwise null. - APIParameter? parameterNamed(String name) => - parameters?.firstWhere((p) => p.name == name); - - /// Adds a parameter to the list of parameters for this operation. - /// - /// If [parameters] is null, invoking this method will set it to a list containing [parameter]. - /// Otherwise, [parameter] is added to [parameters]. - void addParameter(APIParameter parameter) { - parameters ??= []; - parameters!.add(parameter); - } - - /// Adds a security requirement to the operation's security list. - /// - /// If [security] is null, invoking this method will set it to a list containing [requirement]. - /// Otherwise, [requirement] is added to [security]. - void addSecurityRequirement(APISecurityRequirement requirement) { - security ??= []; - - security!.add(requirement); - } - - /// Adds [response] to [responses], merging schemas if necessary. - /// - /// This method adds the given [response] to the [responses] map using the [statusCode] as the key. - /// If a response already exists for the given [statusCode], it merges the new response with the existing one. - /// - /// Parameters: - /// [statusCode]: The HTTP status code for the response. - /// [response]: The APIResponse object to be added or merged. - /// - /// Behavior: - /// - If [responses] is null, it initializes it as an empty map. - /// - If no response exists for the given [statusCode], it simply adds the new response. - /// - If a response already exists: - /// - The descriptions are concatenated. - /// - Headers from the new response are added to the existing response. - /// - Content from the new response is added to the existing response. - /// - /// Note: This method modifies the [responses] property of the current object. - /// - /// Example: - /// ```dart - /// var operation = APIOperation.empty(); - /// var response = APIResponse(...); - /// operation.addResponse(200, response); - /// ``` - /// - /// This method is useful for building or updating the responses of an API operation, - /// allowing for the gradual construction of complex response structures or the - /// modification of existing responses without overwriting all information. - void addResponse(int statusCode, APIResponse? response) { - responses ??= {}; - - final key = "$statusCode"; - - final existingResponse = responses![key]; - if (existingResponse == null) { - responses![key] = response; - return; - } - - existingResponse.description = - "${existingResponse.description ?? ""}\n${response!.description}"; - response.headers?.forEach((name, header) { - existingResponse.addHeader(name, header); - }); - response.content?.forEach((contentType, mediaType) { - existingResponse.addContent(contentType, mediaType?.schema); - }); - } - - /// Defines the casting rules for specific properties of this class. - /// - /// This getter provides a map where the keys are property names and the values - /// are [cast.Cast] objects that define how these properties should be cast - /// when being decoded or encoded. - /// - /// In this case, it specifies that the 'tags' property should be cast as a - /// List of strings. This ensures that when the 'tags' property is processed, - /// it will be treated as a list of string values. - /// - /// Returns: - /// A Map where: - /// - The key 'tags' is associated with a cast.List(cast.string) value, - /// indicating that 'tags' should be cast as a list of strings. - @override - Map get castMap => {"tags": const cast.List(cast.string)}; - - /// Decodes the properties of this [APIOperation] from a [KeyedArchive] object. - /// - /// This method is responsible for populating the properties of the [APIOperation] - /// instance from the provided [KeyedArchive] object. It decodes various fields - /// such as tags, summary, description, parameters, responses, and more. - /// - /// The method handles different types of properties: - /// - Simple properties like 'tags', 'summary', 'description' are directly decoded. - /// - Complex properties like 'parameters', 'security', 'servers' are decoded as lists of objects. - /// - Map properties like 'responses' and 'callbacks' are decoded as object maps. - /// - Objects like 'requestBody' are decoded as single instances. - /// - /// Some decoded properties (like 'parameters' and 'security') are filtered to remove null values. - /// - /// This method overrides the 'decode' method from a superclass and calls the superclass - /// implementation before performing its own decoding. - /// - /// Parameters: - /// [object]: The [KeyedArchive] containing the encoded data to be decoded. - @override - void decode(KeyedArchive object) { - super.decode(object); - - tags = object.decode("tags"); - summary = object.decode("summary"); - description = object.decode("description"); - id = object.decode("operationId"); - parameters = object - .decodeObjects("parameters", () => APIParameter.empty()) - ?.nonNulls - .toList(); - requestBody = - object.decodeObject("requestBody", () => APIRequestBody.empty()); - responses = object.decodeObjectMap("responses", () => APIResponse.empty()); - callbacks = object.decodeObjectMap("callbacks", () => APICallback()); - deprecated = object.decode("deprecated"); - security = object - .decodeObjects("security", () => APISecurityRequirement.empty()) - ?.nonNulls - .toList(); - servers = - object.decodeObjects("servers", () => APIServerDescription.empty()); - } - - /// Encodes the properties of this [APIOperation] into a [KeyedArchive] object. - /// - /// This method is responsible for serializing the properties of the [APIOperation] - /// instance into the provided [KeyedArchive] object. It encodes various fields - /// such as tags, summary, description, parameters, responses, and more. - /// - /// The method handles different types of properties: - /// - Simple properties like 'tags', 'summary', 'description' are directly encoded. - /// - Complex properties like 'parameters', 'security', 'servers' are encoded as lists of objects. - /// - Map properties like 'responses' and 'callbacks' are encoded as object maps. - /// - Objects like 'requestBody' are encoded as single instances. - /// - /// This method throws an [ArgumentError] if the 'responses' property is null, - /// as it is a required field in the OpenAPI specification. - /// - /// This method overrides the 'encode' method from a superclass and calls the superclass - /// implementation before performing its own encoding. - /// - /// Parameters: - /// [object]: The [KeyedArchive] where the encoded data will be stored. - /// - /// Throws: - /// [ArgumentError]: If the 'responses' property is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (responses == null) { - throw ArgumentError( - "Invalid specification. APIOperation must have non-null values for: 'responses'.", - ); - } - - object.encode("tags", tags); - object.encode("summary", summary); - object.encode("description", description); - object.encode("operationId", id); - object.encodeObjects("parameters", parameters); - object.encodeObject("requestBody", requestBody); - object.encodeObjectMap("responses", responses); - object.encodeObjectMap("callbacks", callbacks); - object.encode("deprecated", deprecated); - object.encodeObjects("security", security); - object.encodeObjects("servers", servers); - } -} diff --git a/packages/openapi/lib/src/v3/parameter.dart b/packages/openapi/lib/src/v3/parameter.dart deleted file mode 100644 index eb2ba20..0000000 --- a/packages/openapi/lib/src/v3/parameter.dart +++ /dev/null @@ -1,606 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Enumerates the possible locations for parameters in an API request. -/// -/// - path: -/// - query: -/// - header: -/// - cookie: -enum APIParameterLocation { - /// Parameters that are appended to the URL. - /// - /// For example, in /items?id=###, the query parameter is id. - /// - /// Query parameters are used to filter, sort, or provide additional - /// information for the requested resource. They appear after the question - /// mark (?) in the URL and are separated by ampersands (&) if there are - /// multiple parameters. - query, - - /// Custom headers that are expected as part of the request. - /// - /// Headers are additional metadata sent with an HTTP request or response. - /// They provide information about the request or response, such as content type, - /// authentication tokens, or caching directives. - /// - /// Examples of common headers include: - /// - Content-Type: Specifies the media type of the resource - /// - Authorization: Contains credentials for authenticating the client - /// - User-Agent: Identifies the client software making the request - /// - /// Note that RFC7230 states header names are case insensitive. - header, - - /// Used together with Path Templating, where the parameter value is actually part of the operation's URL. - /// - /// This does not include the host or base path of the API. For example, in /items/{itemId}, the path parameter is itemId. - /// - /// Path parameters are used to identify a specific resource or resources. They are part of the URL path and are typically - /// used to specify the ID of a resource. Path parameters are always required, as they are necessary to construct the full URL. - /// - /// Examples: - /// - /users/{userId}: 'userId' is a path parameter - /// - /posts/{postId}/comments/{commentId}: both 'postId' and 'commentId' are path parameters - /// - /// When defining an API, path parameters are denoted by curly braces {} in the URL template. - path, - - /// Used to pass a specific cookie value to the API. - /// - /// Cookie parameters are used to send data to the server using HTTP cookies. - /// They are typically used for maintaining session state, tracking user preferences, - /// or passing authentication tokens. - /// - /// Cookie parameters are sent in the Cookie HTTP header. Unlike query parameters, - /// cookie parameters are not visible in the URL and are sent with every request - /// to the domain that set the cookie. - /// - /// Example of a cookie header: - /// Cookie: session_id=abc123; user_preference=dark_mode - /// - /// Note: Use of cookies should be done with consideration for security and privacy implications. - cookie -} - -/// A utility class for encoding and decoding [APIParameterLocation] values. -/// -/// This class provides two static methods: -/// - [decode]: Converts a string representation of a parameter location to an [APIParameterLocation] enum value. -/// - [encode]: Converts an [APIParameterLocation] enum value to its string representation. -/// -/// Both methods handle null values gracefully, returning null if the input is null or not recognized. -/// -/// Usage: -/// ```dart -/// // Decoding a string to APIParameterLocation -/// APIParameterLocation? location = APIParameterLocationCodec.decode("query"); -/// print(location); // Output: APIParameterLocation.query -/// -/// // Encoding an APIParameterLocation to a string -/// String? locationString = APIParameterLocationCodec.encode(APIParameterLocation.path); -/// print(locationString); // Output: "path" -/// ``` -/// -/// This class is particularly useful when working with API specifications or -/// when serializing/deserializing API parameter location data. -class APIParameterLocationCodec { - /// Decodes a string representation of a parameter location to an [APIParameterLocation] enum value. - /// - /// Returns: - /// The corresponding [APIParameterLocation] enum value, or null if not recognized. - static APIParameterLocation? decode(String? location) { - switch (location) { - case "query": - return APIParameterLocation.query; - case "header": - return APIParameterLocation.header; - case "path": - return APIParameterLocation.path; - case "cookie": - return APIParameterLocation.cookie; - default: - return null; - } - } - - /// Encodes an [APIParameterLocation] enum value to its string representation. - /// - /// This method takes an [APIParameterLocation] enum value [location] and returns - /// the corresponding string representation. If the input is null or not recognized, - /// the method returns null. - /// - /// Supported [APIParameterLocation] values and their string representations: - /// - [APIParameterLocation.query] returns "query" - /// - [APIParameterLocation.header] returns "header" - /// - [APIParameterLocation.path] returns "path" - /// - [APIParameterLocation.cookie] returns "cookie" - /// - /// Parameters: - /// [location] - An [APIParameterLocation] enum value to be encoded. - /// - /// Returns: - /// A [String] representation of the [APIParameterLocation], or null if not recognized. - static String? encode(APIParameterLocation? location) { - switch (location) { - case APIParameterLocation.query: - return "query"; - case APIParameterLocation.header: - return "header"; - case APIParameterLocation.path: - return "path"; - case APIParameterLocation.cookie: - return "cookie"; - default: - return null; - } - } -} - -/// Describes a single operation parameter in an API specification. -/// -/// A unique parameter is defined by a combination of a [name] and [location]. -class APIParameter extends APIObject { - /// Creates an [APIParameter] instance. - /// - /// Parameters: - /// - [name]: The name of the parameter. - /// - [location]: The location of the parameter (query, header, path, or cookie). - /// - [description]: A brief description of the parameter. - /// - [schema]: The schema defining the type used for the parameter. - /// - [content]: A map containing the representations for the parameter. - /// - [style]: Describes how the parameter value will be serialized. - /// - [isRequired]: Determines whether this parameter is mandatory. - /// - [deprecated]: Specifies that a parameter is deprecated. - /// - [allowEmptyValue]: Sets the ability to pass empty-valued parameters. - /// - [explode]: When true, generates separate parameters for each value of array or object. - /// - [allowReserved]: Determines whether the parameter value should allow reserved characters. - APIParameter( - this.name, - this.location, { - this.description, - this.schema, - this.content, - this.style, - bool? isRequired, - this.deprecated, - this.allowEmptyValue, - this.explode, - this.allowReserved, - }) : _required = isRequired; - - /// Creates an empty [APIParameter] instance. - /// - /// This constructor initializes an [APIParameter] without setting any properties. - /// It can be useful when you need to create a parameter object and set its - /// properties later, or when you want to create a placeholder parameter. - /// - /// Example usage: - /// ```dart - /// var emptyParameter = APIParameter.empty(); - /// // Properties can be set later - /// emptyParameter.name = 'exampleParam'; - /// emptyParameter.location = APIParameterLocation.query; - /// ``` - APIParameter.empty(); - - /// Creates an [APIParameter] instance for a header parameter. - /// - /// This constructor initializes an [APIParameter] with the location set to [APIParameterLocation.header]. - /// - /// Parameters: - /// - [name]: The name of the header parameter. - /// - [description]: Optional. A brief description of the parameter. - /// - [schema]: Optional. The schema defining the type used for the parameter. - /// - [content]: Optional. A map containing the representations for the parameter. - /// - [style]: Optional. Describes how the parameter value will be serialized. - /// - [isRequired]: Optional. Determines whether this parameter is mandatory. - /// - [deprecated]: Optional. Specifies that a parameter is deprecated. - /// - [allowEmptyValue]: Optional. Sets the ability to pass empty-valued parameters. - /// - [explode]: Optional. When true, generates separate parameters for each value of array or object. - /// - [allowReserved]: Optional. Determines whether the parameter value should allow reserved characters. - APIParameter.header( - this.name, { - this.description, - this.schema, - this.content, - this.style, - bool? isRequired, - this.deprecated, - this.allowEmptyValue, - this.explode, - this.allowReserved, - }) : _required = isRequired { - location = APIParameterLocation.header; - } - - /// Creates an [APIParameter] instance for a query parameter. - /// - /// This constructor initializes an [APIParameter] with the location set to [APIParameterLocation.query]. - /// - /// Parameters: - /// - [name]: The name of the query parameter. - /// - [description]: Optional. A brief description of the parameter. - /// - [schema]: Optional. The schema defining the type used for the parameter. - /// - [content]: Optional. A map containing the representations for the parameter. - /// - [style]: Optional. Describes how the parameter value will be serialized. - /// - [isRequired]: Optional. Determines whether this parameter is mandatory. - /// - [deprecated]: Optional. Specifies that a parameter is deprecated. - /// - [allowEmptyValue]: Optional. Sets the ability to pass empty-valued parameters. - /// - [explode]: Optional. When true, generates separate parameters for each value of array or object. - /// - [allowReserved]: Optional. Determines whether the parameter value should allow reserved characters. - APIParameter.query( - this.name, { - this.description, - this.schema, - this.content, - this.style, - bool? isRequired, - this.deprecated, - this.allowEmptyValue, - this.explode, - this.allowReserved, - }) : _required = isRequired { - location = APIParameterLocation.query; - } - - /// Creates an [APIParameter] instance for a path parameter. - /// - /// This constructor initializes an [APIParameter] with the following properties: - /// - [location] is set to [APIParameterLocation.path] - /// - [schema] is set to a string schema using [APISchemaObject.string()] - /// - [_required] is set to true, as path parameters are always required - /// - /// Parameters: - /// - [name]: The name of the path parameter. - /// - /// Usage: - /// ```dart - /// var pathParam = APIParameter.path('userId'); - /// ``` - APIParameter.path(this.name) - : location = APIParameterLocation.path, - schema = APISchemaObject.string(), - _required = true; - - /// Creates an [APIParameter] instance for a cookie parameter. - /// - /// This constructor initializes an [APIParameter] with the location set to [APIParameterLocation.cookie]. - /// - /// Parameters: - /// - [name]: The name of the cookie parameter. - /// - [description]: Optional. A brief description of the parameter. - /// - [schema]: Optional. The schema defining the type used for the parameter. - /// - [content]: Optional. A map containing the representations for the parameter. - /// - [style]: Optional. Describes how the parameter value will be serialized. - /// - [isRequired]: Optional. Determines whether this parameter is mandatory. - /// - [deprecated]: Optional. Specifies that a parameter is deprecated. - /// - [allowEmptyValue]: Optional. Sets the ability to pass empty-valued parameters. - /// - [explode]: Optional. When true, generates separate parameters for each value of array or object. - /// - [allowReserved]: Optional. Determines whether the parameter value should allow reserved characters. - APIParameter.cookie( - this.name, { - this.description, - this.schema, - this.content, - this.style, - bool? isRequired, - this.deprecated, - this.allowEmptyValue, - this.explode, - this.allowReserved, - }) : _required = isRequired { - location = APIParameterLocation.cookie; - } - - /// The name of the parameter. - /// - /// This property is REQUIRED for all parameters. The name is case sensitive and must be unique within the parameter list. - /// - /// Specific behavior based on the parameter location: - /// - If [location] is "path", the name MUST correspond to a path segment in the [APIDocument.paths] field. - /// - If [location] is "header" and the name is "Accept", "Content-Type", or "Authorization", the parameter definition will be ignored. - /// - For all other cases, the name corresponds to the parameter name used by the [location] property. - /// - /// See Path Templating in the OpenAPI Specification for more information on path parameters. - /// - /// Note: This field is nullable in the class definition, but should be non-null when used in a valid API specification. - String? name; - - /// A brief description of the parameter. - /// - /// This property provides a short explanation of the parameter's purpose, usage, or any other relevant information. - /// It can include examples to illustrate how the parameter should be used. - /// - /// The description supports CommonMark syntax, allowing for rich text formatting such as bold, italic, lists, and more. - /// This enables clear and structured documentation of the parameter. - /// - /// Example: - /// ``` - /// description: "The **user's age** in years. Must be a positive integer." - /// ``` - /// - /// Note: This property is optional but highly recommended for clear API documentation. - String? description; - - /// Determines whether this parameter is mandatory. - /// - /// This property is implemented as a getter and setter pair. - /// - /// The getter: - /// - Returns true if the parameter location is "path", regardless of the value of _required. - /// - Otherwise, returns the value of _required. - /// - /// The setter: - /// - Sets the value of _required to the provided boolean value. - /// - /// Note: If the parameter location is "path", this property is REQUIRED and its value MUST be true. - /// For other locations, the property MAY be included and its default value is false. - bool? get isRequired => - location == APIParameterLocation.path ? true : _required; - - set isRequired(bool? f) { - _required = f; - } - - /// Stores the required status of the parameter. - /// - /// This private field is used to back the [isRequired] property. - /// It's nullable to allow for cases where the required status is not explicitly set. - /// - /// Note: For path parameters, this value is ignored as they are always required. - /// For other parameter types, if not set, it defaults to false. - bool? _required; - - /// Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. - /// - /// When set to true, it indicates that the parameter is deprecated and consumers of the API - /// should refrain from using it. This allows API providers to gradually phase out parameters - /// while maintaining backward compatibility. - /// - /// Default value is false (not deprecated) when not specified. - /// - /// Example usage: - /// ```dart - /// var parameter = APIParameter('oldParam', APIParameterLocation.query); - /// parameter.deprecated = true; - /// ``` - bool? deprecated; - - /// The location of the parameter. - /// - /// This property specifies where the parameter is expected to be found in the API request. - /// It is a REQUIRED field for all parameter objects. - /// - /// The value must be one of the following: - /// - "query": The parameter is part of the query string in the URL. - /// - "header": The parameter is included as an HTTP header. - /// - "path": The parameter is part of the URL path. - /// - "cookie": The parameter is sent as an HTTP cookie. - /// - /// This field uses the [APIParameterLocation] enum to ensure type safety and - /// to restrict the possible values to the allowed set. - /// - /// Note: Although this field is nullable in the class definition, it should always - /// be set to a non-null value when used in a valid API specification. - APIParameterLocation? location; - - /// The schema defining the type used for the parameter. - /// - /// This property defines the structure and constraints of the parameter value. - /// It can specify the data type, format, validation rules, and other characteristics - /// of the parameter. - /// - /// The schema is represented by an [APISchemaObject], which allows for detailed - /// specification of simple types (like strings or integers) as well as complex - /// structures (like objects or arrays). - /// - /// This property is mutually exclusive with the [content] property. When using - /// [schema], the serialization rules for the parameter are defined by the - /// [style] and [explode] fields. - /// - /// Example usage: - /// ```dart - /// parameter.schema = APISchemaObject.string(format: 'email'); - /// ``` - APISchemaObject? schema; - - /// Sets the ability to pass empty-valued parameters. - /// - /// This property is only applicable for query parameters and allows sending a parameter with an empty value. - /// The default value is false. - /// - /// Note: If [style] is used, and if the behavior is not applicable (cannot be serialized), - /// the value of [allowEmptyValue] SHALL be ignored. - /// - /// Example usage: - /// ```dart - /// var parameter = APIParameter('queryParam', APIParameterLocation.query); - /// parameter.allowEmptyValue = true; - /// ``` - bool? allowEmptyValue = false; - - /// Describes how the parameter value will be serialized depending on the type of the parameter value. - /// - /// This property determines the format in which the parameter value should be serialized when sent in the request. - /// The appropriate serialization method depends on both the parameter's location and its data type. - /// - /// Default values (based on the value of 'in' property): - /// - For query parameters: "form" - /// - For path parameters: "simple" - /// - For header parameters: "simple" - /// - For cookie parameters: "form" - /// - /// Possible values include: - /// - "matrix" - /// - "label" - /// - "form" - /// - "simple" - /// - "spaceDelimited" - /// - "pipeDelimited" - /// - "deepObject" - /// - /// The exact behavior and applicability of each style depend on the parameter's location and data type. - /// Refer to the OpenAPI Specification for detailed information on how each style affects serialization. - String? style; - - /// Specifies whether array or object parameters should be expanded into multiple parameters. - /// - /// For other types of parameters this property has no effect. When style is form, the default value is true. For all other styles, the default value is false. - bool? explode = false; - - /// Determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding. - /// - /// This property only applies to parameters with an 'in' value of query. The default value is false. - /// - /// When set to true, reserved characters in the parameter value are allowed to be included without percent-encoding. - /// This can be useful in cases where you want to pass special characters directly in the query string. - /// - /// Example: - /// If allowReserved is true, a query parameter like "filter=name:John/age:30" could be sent as-is. - /// If false, it would need to be encoded as "filter=name%3AJohn%2Fage%3A30". - /// - /// Note: Use this property with caution, as it may affect how the server interprets the parameter value. - /// It's recommended to keep this false unless you have a specific reason to allow reserved characters. - bool? allowReserved = false; - - /// A map containing the representations for the parameter. - /// - /// The key is a media type and the value describes it. The map MUST only contain one entry. - /// - /// This property is mutually exclusive with the [schema] property. It can be used to describe - /// complex parameter structures or to specify alternative representations of the parameter value. - /// - /// The media type (key) should be a string representing the MIME type of the content, - /// such as "application/json" or "text/plain". - /// - /// Each [APIMediaType] value provides detailed information about the content, - /// including its schema, examples, and encoding properties. - /// - /// Example usage: - /// ```dart - /// parameter.content = { - /// 'application/json': APIMediaType( - /// schema: APISchemaObject.object({ - /// 'name': APISchemaObject.string(), - /// 'age': APISchemaObject.integer(), - /// }) - /// ) - /// }; - /// ``` - /// - /// Note: While the map allows for multiple entries, according to the OpenAPI Specification, - /// it MUST only contain one entry for parameter objects. - Map? content; - - /// Decodes an [APIParameter] object from a [KeyedArchive]. - /// - /// This method populates the properties of the [APIParameter] instance - /// by decoding values from the provided [KeyedArchive] object. - /// - /// The following properties are decoded: - /// - name: The name of the parameter - /// - description: A brief description of the parameter - /// - location: The location of the parameter (query, header, path, or cookie) - /// - _required: Whether the parameter is required - /// - deprecated: Whether the parameter is deprecated - /// - allowEmptyValue: Whether empty values are allowed for this parameter - /// - schema: The schema defining the type used for the parameter - /// - style: Describes how the parameter value will be serialized - /// - explode: Whether to expand array or object parameters - /// - allowReserved: Whether the parameter value should allow reserved characters - /// - content: A map containing the representations for the parameter - /// - /// Note: This method does not currently decode 'example' and 'examples' properties. - /// - /// Parameters: - /// object: The [KeyedArchive] containing the encoded [APIParameter] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - description = object.decode("description"); - location = APIParameterLocationCodec.decode(object.decode("in")); - _required = object.decode("required"); - - deprecated = object.decode("deprecated"); - allowEmptyValue = object.decode("allowEmptyValue"); - - schema = object.decodeObject("schema", () => APISchemaObject()); - style = object.decode("style"); - explode = object.decode("explode"); - allowReserved = object.decode("allowReserved"); - content = object.decodeObjectMap("content", () => APIMediaType()); - } - - /// Encodes the [APIParameter] object into a [KeyedArchive]. - /// - /// This method serializes the properties of the [APIParameter] instance - /// into the provided [KeyedArchive] object for storage or transmission. - /// - /// The following properties are encoded: - /// - name: The name of the parameter - /// - description: A brief description of the parameter - /// - location: The location of the parameter (query, header, path, or cookie) - /// - required: Whether the parameter is required (always true for path parameters) - /// - deprecated: Whether the parameter is deprecated - /// - allowEmptyValue: Whether empty values are allowed (only for query parameters) - /// - schema: The schema defining the type used for the parameter - /// - style: Describes how the parameter value will be serialized - /// - explode: Whether to expand array or object parameters - /// - allowReserved: Whether the parameter value should allow reserved characters - /// - content: A map containing the representations for the parameter - /// - /// This method also performs a validation check to ensure that both 'name' - /// and 'location' properties are non-null. If either of these properties - /// is null, it throws an [ArgumentError]. - /// - /// Parameters: - /// object: The [KeyedArchive] where the encoded data will be stored. - /// - /// Throws: - /// ArgumentError: If either 'name' or 'location' is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (name == null || location == null) { - throw ArgumentError( - "APIParameter must have non-null values for: 'name', 'location'.", - ); - } - - object.encode("name", name); - object.encode("description", description); - object.encode("in", APIParameterLocationCodec.encode(location)); - - if (location == APIParameterLocation.path) { - object.encode("required", true); - } else { - object.encode("required", _required); - } - - object.encode("deprecated", deprecated); - - if (location == APIParameterLocation.query) { - object.encode("allowEmptyValue", allowEmptyValue); - } - - object.encodeObject("schema", schema); - object.encode("style", style); - object.encode("explode", explode); - object.encode("allowReserved", allowReserved); - object.encodeObjectMap("content", content); - } -} diff --git a/packages/openapi/lib/src/v3/path.dart b/packages/openapi/lib/src/v3/path.dart deleted file mode 100644 index 4600a83..0000000 --- a/packages/openapi/lib/src/v3/path.dart +++ /dev/null @@ -1,187 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents a path in an API specification. -/// -/// An [APIPath] MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available. -class APIPath extends APIObject { - /// Constructs an [APIPath] instance. - /// - /// [summary] is an optional string summary, intended to apply to all operations in this path. - /// [description] is an optional string description, intended to apply to all operations in this path. - /// [parameters] is a list of parameters applicable for all operations described under this path. Defaults to an empty list if not provided. - /// [operations] is a map of HTTP methods to their corresponding [APIOperation] objects. Defaults to an empty map if not provided. - APIPath({ - this.summary, - this.description, - List? parameters, - Map? operations, - }) { - this.parameters = parameters ?? []; - this.operations = operations ?? {}; - } - - /// Creates an empty [APIPath] instance. - /// - /// This constructor initializes an [APIPath] with an empty list of parameters - /// and an empty map of operations. It's useful when you need to create an - /// [APIPath] instance without any initial data, which can be populated later. - APIPath.empty() - : parameters = [], - operations = {}; - - /// An optional, string summary, intended to apply to all operations in this path. - /// - /// This property provides a brief overview or summary that is applicable to all - /// operations defined within this path. It can be used to quickly convey the - /// general purpose or functionality of the path without going into specific details - /// of individual operations. - String? summary; - - /// An optional, string description, intended to apply to all operations in this path. - /// - /// This property provides a more detailed explanation that is applicable to all - /// operations defined within this path. It can be used to offer comprehensive - /// information about the path's purpose, usage, or any other relevant details. - /// - /// The description supports CommonMark syntax, allowing for rich text representation. - /// This enables the use of formatted text, links, lists, and other markdown elements - /// to create more readable and informative descriptions. - /// - /// CommonMark syntax MAY be used for rich text representation. - String? description; - - /// A list of parameters that are applicable for all the operations described under this path. - /// - /// These parameters can be overridden at the operation level, but cannot be removed there. - /// The list MUST NOT include duplicated parameters. A unique parameter is defined by a - /// combination of a name and location. The list can use the Reference Object to link to - /// parameters that are defined at the OpenAPI Object's components/parameters. - /// - /// This property is marked as 'late' to allow for delayed initialization. It holds a list - /// of [APIParameter] objects, where each object represents a parameter applicable to all - /// operations under this path. The list may contain null values, which should be handled - /// appropriately when processing the parameters. - /// - /// The parameters defined here serve as default parameters for all operations in this path, - /// providing a way to specify common parameters without repeating them for each operation. - late List parameters; - - /// Definitions of operations on this path. - /// - /// A map where keys are lowercased HTTP methods (e.g., get, put, delete, post) - /// and values are corresponding [APIOperation] objects. - /// - /// This property defines the available operations for this path, associating - /// each HTTP method with its specific operation details. The use of lowercase - /// keys ensures consistency and case-insensitive matching of HTTP methods. - /// - /// The map may contain null values, which should be handled appropriately - /// when processing the operations. This property is marked as 'late' to allow - /// for delayed initialization, typically done in the constructor or a dedicated - /// initialization method. - late Map operations; - - /// Checks if this path contains specific path parameters. - /// - /// Returns true if [parameters] contains path parameters with names that match [parameterNames] and - /// both lists have the same number of elements. - bool containsPathParameters(List parameterNames) { - final pathParams = parameters - .where((p) => p?.location == APIParameterLocation.path) - .map((p) => p?.name) - .toList(); - if (pathParams.length != parameterNames.length) { - return false; - } - - return parameterNames.every((check) => pathParams.contains(check)); - } - - // todo (joeconwaystk): alternative servers not yet implemented - - /// Decodes the [APIPath] instance from a [KeyedArchive] object. - /// - /// This method populates the properties of the [APIPath] instance using data - /// from the provided [KeyedArchive] object. It decodes the following properties: - /// - /// - [summary]: A brief summary of the path. - /// - [description]: A detailed description of the path. - /// - [parameters]: A list of [APIParameter] objects applicable to all operations in this path. - /// - [operations]: A map of HTTP methods to their corresponding [APIOperation] objects. - /// - /// The method first calls the superclass's decode method, then decodes each specific - /// property. For [parameters], it uses a factory function to create empty [APIParameter] - /// instances if needed. For [operations], it checks for the presence of each HTTP method - /// in the archive and decodes the corresponding [APIOperation] if present. - /// - /// @param object The [KeyedArchive] object containing the encoded data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - summary = object.decode("summary"); - description = object.decode("description"); - parameters = - object.decodeObjects("parameters", () => APIParameter.empty()) ?? - []; - - final methodNames = [ - "get", - "put", - "post", - "delete", - "options", - "head", - "patch", - "trace" - ]; - for (final methodName in methodNames) { - if (object.containsKey(methodName)) { - operations[methodName] = - object.decodeObject(methodName, () => APIOperation.empty()); - } - } - } - - /// Encodes the [APIPath] instance into a [KeyedArchive] object. - /// - /// This method serializes the properties of the [APIPath] instance into the provided - /// [KeyedArchive] object. It encodes the following properties: - /// - /// - [summary]: A brief summary of the path. - /// - [description]: A detailed description of the path. - /// - [parameters]: A list of [APIParameter] objects applicable to all operations in this path. - /// - [operations]: A map of HTTP methods to their corresponding [APIOperation] objects. - /// - /// The method first calls the superclass's encode method, then encodes each specific - /// property. For [parameters], it only encodes the list if it's not empty. For [operations], - /// it iterates through the map and encodes each operation, ensuring the HTTP method names - /// are in lowercase. - /// - /// @param object The [KeyedArchive] object to encode the data into. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("summary", summary); - object.encode("description", description); - if (parameters.isNotEmpty) { - object.encodeObjects("parameters", parameters); - } - - operations.forEach((opName, op) { - object.encodeObject(opName.toLowerCase(), op); - }); - } -} diff --git a/packages/openapi/lib/src/v3/request_body.dart b/packages/openapi/lib/src/v3/request_body.dart deleted file mode 100644 index 56591b0..0000000 --- a/packages/openapi/lib/src/v3/request_body.dart +++ /dev/null @@ -1,170 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Describes a single request body in an API specification. -/// -/// This class represents a request body as defined in the OpenAPI Specification. -/// It includes information about the content of the request body, an optional -/// description, and whether the request body is required. -/// -/// The class provides three constructors: -/// - A default constructor that takes content, description, and isRequired. -/// - An empty constructor. -/// - A schema constructor that creates a request body from a schema object. -/// -/// The class also implements encoding and decoding methods for serialization. -class APIRequestBody extends APIObject { - /// Creates a new [APIRequestBody] instance. - /// - /// [content] is a required parameter that represents the content of the request body. - /// It's a map where keys are media types and values are [APIMediaType] objects. - /// - /// [description] is an optional parameter that provides a brief description of the request body. - /// - /// [isRequired] is an optional parameter that determines if the request body is required in the request. - /// It defaults to false if not specified. - APIRequestBody(this.content, {this.description, this.isRequired = false}); - - /// Creates an empty [APIRequestBody] instance. - /// - /// This constructor initializes a new [APIRequestBody] with no content, - /// description, or required status. It can be used as a placeholder or - /// when you need to create an instance that will be populated later. - APIRequestBody.empty(); - - /// Creates an [APIRequestBody] instance from a schema object. - /// - /// This constructor initializes a new [APIRequestBody] using an [APISchemaObject]. - /// - /// Parameters: - /// - [schema]: An [APISchemaObject] that defines the structure of the request body. - /// - [contentTypes]: An iterable of strings representing the content types for the request body. - /// Defaults to ["application/json"]. - /// - [description]: An optional description of the request body. - /// - [isRequired]: A boolean indicating whether the request body is required. Defaults to false. - /// - /// The constructor creates a [content] map where each content type in [contentTypes] - /// is associated with an [APIMediaType] object containing the provided [schema]. - APIRequestBody.schema( - APISchemaObject schema, { - Iterable contentTypes = const ["application/json"], - this.description, - this.isRequired = false, - }) { - content = contentTypes.fold({}, (prev, elem) { - prev![elem] = APIMediaType(schema: schema); - return prev; - }); - } - - /// A brief description of the request body. - /// - /// This property provides a short explanation of the request body's purpose or content. - /// It can include examples of how to use the request body. - /// - /// The description supports CommonMark syntax for rich text formatting, - /// allowing for more detailed and structured explanations. - /// - /// This field is optional and can be null if no description is provided. - String? description; - - /// The content of the request body. - /// - /// This property is a map where the keys are media types or media type ranges, - /// and the values are [APIMediaType] objects describing the content. - /// - /// REQUIRED. The content must be provided for the request body to be valid. - /// - /// For requests that match multiple keys, only the most specific key is applicable. - /// For example, 'text/plain' would override 'text/*'. - /// - /// Example: - /// ```dart - /// content = { - /// 'application/json': APIMediaType(...), - /// 'text/plain': APIMediaType(...), - /// }; - /// ``` - /// - /// Note: Despite being marked as nullable (Map?), - /// this property is required for a valid APIRequestBody. The nullability - /// is likely for serialization purposes. - Map? content; - - /// Determines if the request body is required in the request. - /// - /// This boolean property indicates whether the request body is mandatory for the API request. - /// When set to true, the client must include the request body in the API call. - /// When set to false, the request body is optional. - /// - /// In the OpenAPI Specification, this corresponds to the 'required' field of the Request Body Object. - /// - /// Defaults to false, meaning the request body is optional unless explicitly set to true. - bool isRequired = false; - - /// Decodes the [APIRequestBody] object from a [KeyedArchive]. - /// - /// This method overrides the [decode] method from the superclass and is responsible - /// for populating the properties of the [APIRequestBody] instance from the provided - /// [KeyedArchive] object. - /// - /// The method performs the following actions: - /// 1. Calls the superclass's decode method. - /// 2. Decodes the 'description' field from the archive. - /// 3. Decodes the 'required' field, defaulting to false if not present. - /// 4. Decodes the 'content' field as an object map of [APIMediaType] instances. - /// - /// Parameters: - /// - [object]: A [KeyedArchive] containing the encoded [APIRequestBody] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - description = object.decode("description"); - isRequired = object.decode("required") ?? false; - content = object.decodeObjectMap("content", () => APIMediaType()); - } - - /// Encodes the [APIRequestBody] object into a [KeyedArchive]. - /// - /// This method overrides the [encode] method from the superclass and is responsible - /// for encoding the properties of the [APIRequestBody] instance into the provided - /// [KeyedArchive] object. - /// - /// The method performs the following actions: - /// 1. Calls the superclass's encode method. - /// 2. Checks if the 'content' property is null, throwing an ArgumentError if it is. - /// 3. Encodes the 'description' field into the archive. - /// 4. Encodes the 'required' field into the archive. - /// 5. Encodes the 'content' field as an object map into the archive. - /// - /// Parameters: - /// - [object]: A [KeyedArchive] where the encoded [APIRequestBody] data will be stored. - /// - /// Throws: - /// - [ArgumentError]: If the 'content' property is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (content == null) { - throw ArgumentError( - "APIRequestBody must have non-null values for: 'content'.", - ); - } - - object.encode("description", description); - object.encode("required", isRequired); - object.encodeObjectMap("content", content); - } -} diff --git a/packages/openapi/lib/src/v3/response.dart b/packages/openapi/lib/src/v3/response.dart deleted file mode 100644 index 2871401..0000000 --- a/packages/openapi/lib/src/v3/response.dart +++ /dev/null @@ -1,247 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents an API response as defined in the OpenAPI Specification. -/// -/// This class models a single response from an API operation, including its description, -/// headers, and content. It provides methods to add headers and content, as well as -/// functionality to encode and decode the response object. -/// -/// The [description] field is required and provides a short description of the response. -/// The [headers] field is a map of header names to their definitions. -/// The [content] field is a map of media types to their corresponding media type objects. -/// -/// This class also includes utility methods: -/// - [addHeader]: Adds a header to the response -/// - [addContent]: Adds content to the response for a specific content type -/// -/// The class implements [Codable] for easy serialization and deserialization. -class APIResponse extends APIObject { - /// Creates a new [APIResponse] instance. - /// - /// [description] is a required parameter that provides a short description of the response. - /// [content] is an optional parameter that represents a map of media types to their corresponding media type objects. - /// [headers] is an optional parameter that represents a map of header names to their definitions. - /// - /// Example: - /// ```dart - /// var response = APIResponse( - /// 'Successful response', - /// content: {'application/json': APIMediaType(schema: someSchema)}, - /// headers: {'X-Rate-Limit': APIHeader()}, - /// ); - /// ``` - APIResponse(this.description, {this.content, this.headers}); - - /// Creates an empty [APIResponse] instance. - /// - /// This constructor initializes an [APIResponse] without any predefined values. - /// It can be useful when you need to create an empty response object that will be - /// populated later or when you want to start with a blank slate. - /// - /// Example: - /// ```dart - /// var emptyResponse = APIResponse.empty(); - /// // Later, populate the response as needed - /// emptyResponse.description = 'A description'; - /// emptyResponse.addContent('application/json', someSchemaObject); - /// ``` - APIResponse.empty(); - - /// Creates an [APIResponse] instance with a schema. - /// - /// This constructor initializes an [APIResponse] with a given [description] and [schema]. - /// It allows specifying multiple content types for the same schema. - /// - /// [description] is a required parameter that provides a short description of the response. - /// [schema] is the [APISchemaObject] that defines the structure of the response body. - /// [contentTypes] is an optional iterable of content type strings. It defaults to ["application/json"]. - /// [headers] is an optional parameter that represents a map of header names to their definitions. - /// - /// The constructor creates a [content] map where each content type in [contentTypes] - /// is associated with an [APIMediaType] containing the provided [schema]. - /// - /// Example: - /// ```dart - /// var response = APIResponse.schema( - /// 'Successful response', - /// someSchemaObject, - /// contentTypes: ['application/json', 'application/xml'], - /// headers: {'X-Rate-Limit': APIHeader()}, - /// ); - /// ``` - APIResponse.schema( - this.description, - APISchemaObject schema, { - Iterable contentTypes = const ["application/json"], - this.headers, - }) { - content = contentTypes.fold({}, (prev, elem) { - prev![elem] = APIMediaType(schema: schema); - return prev; - }); - } - - /// A short description of the response. - /// - /// This property is REQUIRED according to the OpenAPI Specification. - /// It provides a brief explanation of the API response. - /// - /// The description can use CommonMark syntax for rich text representation, - /// allowing for formatted text, links, and other markup features. - /// - /// Example: - /// ```dart - /// var response = APIResponse('Successful response with user data'); - /// ``` - /// - /// Note: While the property is marked as nullable (String?), it is a required - /// field in the OpenAPI Specification and should be provided when creating - /// an APIResponse object. - String? description; - - /// Maps a header name to its definition. - /// - /// This property represents a map of HTTP headers that may be part of the API response. - /// Each key in the map is a header name (case-insensitive), and the corresponding value - /// is an [APIHeader] object that defines the header's properties. - /// - /// According to RFC7230, header names are case-insensitive. It's important to note that - /// if a response header is defined with the name "Content-Type", it SHALL be ignored. - /// This is because the content type is typically handled separately in API specifications. - /// - /// The map is nullable, allowing for responses that don't include any custom headers. - /// - /// Example: - /// ```dart - /// var response = APIResponse('Success'); - /// response.headers = { - /// 'X-Rate-Limit': APIHeader(description: 'Calls per hour allowed by the user'), - /// 'X-Expires-After': APIHeader(description: 'Date in UTC when token expires') - /// }; - /// ``` - Map? headers; - - /// A map containing descriptions of potential response payloads. - /// - /// This property represents the content of the API response for different media types. - /// The key is a media type or media type range (e.g., 'application/json', 'text/*'), - /// and the value is an [APIMediaType] object describing the content for that media type. - /// - /// For responses that match multiple keys, only the most specific key is applicable. - /// For example, 'text/plain' would override 'text/*'. - /// - /// This property is nullable, allowing for responses that don't include any content. - /// - /// Example: - /// ```dart - /// var response = APIResponse('Success'); - /// response.content = { - /// 'application/json': APIMediaType(schema: someJsonSchema), - /// 'application/xml': APIMediaType(schema: someXmlSchema) - /// }; - /// ``` - Map? content; - - // Currently missing: - // links - - /// Adds a header to the [headers] map of the API response. - /// - /// If [headers] is null, it is created. If the key does not exist in [headers], [header] is added for the key. - /// If the key exists, [header] is not added. (To replace a header, access [headers] directly.) - void addHeader(String name, APIHeader? header) { - headers ??= {}; - if (!headers!.containsKey(name)) { - headers![name] = header; - } - } - - /// Adds a [bodyObject] to [content] for a specific content type. - /// - /// [contentType] must take the form 'primaryType/subType', e.g. 'application/json'. Do not include charsets. - /// - /// If [content] is null, it is created. If [contentType] does not exist in [content], [bodyObject] is added for [contentType]. - /// If [contentType] exists, the [bodyObject] is added the list of possible schemas that were previously added. - void addContent(String contentType, APISchemaObject? bodyObject) { - content ??= {}; - - final key = contentType; - final existingContent = content![key]; - if (existingContent == null) { - content![key] = APIMediaType(schema: bodyObject); - return; - } - - final schema = existingContent.schema; - if (schema?.oneOf != null) { - schema!.oneOf!.add(bodyObject); - } else { - final container = APISchemaObject()..oneOf = [schema, bodyObject]; - existingContent.schema = container; - } - } - - /// Decodes the [APIResponse] object from a [KeyedArchive]. - /// - /// This method is part of the [Codable] interface implementation. It populates - /// the properties of the [APIResponse] object from a [KeyedArchive] object, - /// which typically represents a serialized form of the response. - /// - /// The method performs the following actions: - /// 1. Calls the superclass's decode method to handle any inherited properties. - /// 2. Decodes the 'description' field from the archive. - /// 3. Decodes the 'content' field as a map of [APIMediaType] objects. - /// 4. Decodes the 'headers' field as a map of [APIHeader] objects. - /// - /// [object] is the [KeyedArchive] containing the encoded [APIResponse] data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - description = object.decode("description"); - content = object.decodeObjectMap("content", () => APIMediaType()); - headers = object.decodeObjectMap("headers", () => APIHeader()); - } - - /// Encodes the [APIResponse] object into a [KeyedArchive]. - /// - /// This method is part of the [Codable] interface implementation. It serializes - /// the properties of the [APIResponse] object into a [KeyedArchive] object, - /// which can then be used for storage or transmission. - /// - /// The method performs the following actions: - /// 1. Calls the superclass's encode method to handle any inherited properties. - /// 2. Checks if the 'description' field is non-null, throwing an [ArgumentError] if it's null. - /// 3. Encodes the 'description' field into the archive. - /// 4. Encodes the 'headers' field as a map of [APIHeader] objects. - /// 5. Encodes the 'content' field as a map of [APIMediaType] objects. - /// - /// [object] is the [KeyedArchive] where the [APIResponse] data will be encoded. - /// - /// Throws an [ArgumentError] if the 'description' field is null, as it's a required field. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (description == null) { - throw ArgumentError( - "APIResponse must have non-null values for: 'description'.", - ); - } - - object.encode("description", description); - object.encodeObjectMap("headers", headers); - object.encodeObjectMap("content", content); - } -} diff --git a/packages/openapi/lib/src/v3/schema.dart b/packages/openapi/lib/src/v3/schema.dart deleted file mode 100644 index ff38476..0000000 --- a/packages/openapi/lib/src/v3/schema.dart +++ /dev/null @@ -1,780 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Enum representing the policy for additional properties in an API schema. -/// -/// This enum defines three possible policies for handling additional properties -/// in an API schema object: -/// -/// - [disallowed]: Prevents properties other than those defined by [APISchemaObject.properties] -/// from being included in the schema. This is the most restrictive policy. -/// -/// - [freeForm]: Allows any additional properties to be included in the schema. -/// This is the most permissive policy. -/// -/// - [restricted]: Indicates that [APISchemaObject.additionalPropertySchema] contains -/// a schema object that defines the structure for any additional properties. -/// This policy allows additional properties, but they must conform to the -/// specified schema. -/// -/// These policies provide different levels of control over the structure and -/// content of API schemas, allowing for flexible schema definitions based on -/// specific requirements. -enum APISchemaAdditionalPropertyPolicy { - /// Indicates that the [APISchemaObject] prevents properties other than those defined by [APISchemaObject.properties] from being included. - /// - /// This policy is the most restrictive, disallowing any additional properties beyond those explicitly defined in the schema. - /// It ensures that the object structure strictly adheres to the specified properties. - disallowed, - - /// Indicates that the [APISchemaObject] allows any additional properties to be included. - /// - /// This policy is the most permissive, allowing any extra properties beyond those explicitly defined in the schema. - /// It provides flexibility for including arbitrary additional data in the object structure. - freeForm, - - /// Indicates that [APISchemaObject.additionalPropertySchema] contains a schema object that defines - /// the structure for any additional properties. - /// - /// This policy allows additional properties, but they must conform to the schema specified in - /// [APISchemaObject.additionalPropertySchema]. It provides a way to allow extra properties while - /// still maintaining some control over their structure and content. - restricted -} - -/// This class extends [APIObject] and provides a comprehensive representation of -/// schema objects as defined in the OpenAPI specification. It includes properties -/// for various schema constraints such as type, format, range limitations, -/// length restrictions, pattern matching, and more. -/// -/// The class offers multiple constructors for creating different types of schemas: -/// - Default constructor -/// - Empty constructor -/// - String schema (with optional format) -/// - Number schema -/// - Integer schema -/// - Boolean schema -/// - Map schema (with options for additional properties) -/// - Array schema -/// - Object schema (with properties) -/// - File schema -/// - Free-form schema -/// -/// It also includes methods for encoding and decoding schema objects to and from -/// a [KeyedArchive], allowing for serialization and deserialization of schema definitions. -class APISchemaObject extends APIObject { - /// Default constructor for APISchemaObject. - /// - /// Creates a new instance of APISchemaObject with default values. - /// This constructor allows for flexible initialization of the schema object, - /// where properties can be set after instantiation. - APISchemaObject(); - - /// Creates an empty [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] without setting any specific properties. - /// It can be used as a starting point for building a schema object, where properties - /// can be added or modified after instantiation. - APISchemaObject.empty(); - - /// Creates a string [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.string]. - /// It also allows specifying an optional [format] for the string schema. - /// - /// Parameters: - /// [format]: An optional string that specifies the format of the string schema. - /// Common formats include 'date-time', 'email', 'hostname', etc. - APISchemaObject.string({this.format}) : type = APIType.string; - - /// Creates a number [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.number]. - /// It's used to define a schema for numeric values, which can include both integers and floating-point numbers. - APISchemaObject.number() : type = APIType.number; - - /// Creates an integer [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.integer]. - /// It's used to define a schema for integer values, which are whole numbers without fractional components. - APISchemaObject.integer() : type = APIType.integer; - - /// Creates a boolean [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.boolean]. - /// It's used to define a schema for boolean values, which can only be true or false. - APISchemaObject.boolean() : type = APIType.boolean; - - /// Creates a map [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.object], - /// representing a map-like structure. It allows specifying the type or schema of the - /// additional properties in the map. - /// - /// Parameters: - /// [ofType]: An optional [APIType] that specifies the type of values in the map. - /// [ofSchema]: An optional [APISchemaObject] that defines the schema for values in the map. - /// [any]: A boolean flag that, when true, allows any type of additional properties. - /// - /// Throws: - /// [ArgumentError] if neither [ofType], [ofSchema], nor [any] is specified. - /// - /// The constructor sets [additionalPropertySchema] based on the provided parameters: - /// - If [ofType] is provided, it creates a new [APISchemaObject] with that type. - /// - If [ofSchema] is provided, it uses that schema directly. - /// - If [any] is true, it allows any additional properties without restrictions. - /// - If none of the above are specified, it throws an [ArgumentError]. - APISchemaObject.map({ - APIType? ofType, - APISchemaObject? ofSchema, - bool any = false, - }) : type = APIType.object { - if (ofType != null) { - additionalPropertySchema = APISchemaObject()..type = ofType; - } else if (ofSchema != null) { - additionalPropertySchema = ofSchema; - } else if (any) { - } else { - throw ArgumentError( - "Invalid 'APISchemaObject.map' with neither 'ofType', 'any' or 'ofSchema' specified.", - ); - } - } - - /// Creates an array [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.array]. - /// It allows specifying the type or schema of the items in the array. - /// - /// Parameters: - /// [ofType]: An optional [APIType] that specifies the type of items in the array. - /// [ofSchema]: An optional [APISchemaObject] that defines the schema for items in the array. - /// - /// Throws: - /// [ArgumentError] if neither [ofType] nor [ofSchema] is specified. - /// - /// The constructor sets [items] based on the provided parameters: - /// - If [ofType] is provided, it creates a new [APISchemaObject] with that type. - /// - If [ofSchema] is provided, it uses that schema directly. - /// - If neither is specified, it throws an [ArgumentError]. - APISchemaObject.array({APIType? ofType, APISchemaObject? ofSchema}) - : type = APIType.array { - if (ofType != null) { - items = APISchemaObject()..type = ofType; - } else if (ofSchema != null) { - items = ofSchema; - } else { - throw ArgumentError( - "Invalid 'APISchemaObject.array' with neither 'ofType' or 'ofSchema' specified.", - ); - } - } - - /// Creates an object [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.object]. - /// It allows specifying the properties of the object schema. - /// - /// Parameters: - /// [properties]: A map of property names to their corresponding [APISchemaObject]s. - /// This defines the structure of the object schema. - APISchemaObject.object(this.properties) : type = APIType.object; - - /// Creates a file [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.string] - /// and [format] set based on the [isBase64Encoded] parameter. - /// - /// Parameters: - /// [isBase64Encoded]: A boolean flag that determines the format of the file schema. - /// - If true, sets the format to "byte" (for base64-encoded strings). - /// - If false, sets the format to "binary" (for raw binary data). - /// - /// The resulting schema object represents either a base64-encoded string (when [isBase64Encoded] is true) - /// or raw binary data (when [isBase64Encoded] is false), both of which are suitable for file content. - APISchemaObject.file({bool isBase64Encoded = false}) - : type = APIType.string, - format = isBase64Encoded ? "byte" : "binary"; - - /// Creates a free-form [APISchemaObject] instance. - /// - /// This constructor initializes an [APISchemaObject] with [type] set to [APIType.object] - /// and [additionalPropertyPolicy] set to [APISchemaAdditionalPropertyPolicy.freeForm]. - /// It represents a schema that allows any additional properties without restrictions. - /// - /// This is useful for scenarios where the object structure is not strictly defined - /// and can contain arbitrary key-value pairs. - APISchemaObject.freeForm() - : type = APIType.object, - additionalPropertyPolicy = APISchemaAdditionalPropertyPolicy.freeForm; - - /// A title for the object. - /// - /// This property allows you to specify a human-readable title for the schema object. - /// It can be used to provide a brief, descriptive name for the schema, which can be - /// helpful for documentation and user interfaces. The title is optional and does not - /// affect the validation of data against the schema. - String? title; - - /// The maximum value for a numeric instance. - /// - /// If the instance is a number, then this keyword validates if - /// "exclusiveMaximum" is true and instance is less than the provided - /// value, or else if the instance is less than or exactly equal to the - /// provided value. - num? maximum; - - /// Determines whether the maximum value is exclusive. - /// - /// An undefined value is the same as false. - /// - /// If "exclusiveMaximum" is true, then a numeric instance SHOULD NOT be - /// equal to the value specified in "maximum". If "exclusiveMaximum" is - /// false (or not specified), then a numeric instance MAY be equal to the - /// value of "maximum". - bool? exclusiveMaximum; - - /// The minimum value for a numeric instance. - /// - /// This property sets the lower limit for a numeric instance in the schema. - /// The value of "minimum" MUST be a number. - /// - /// If the instance is a number, this keyword validates in two ways: - /// 1. If "exclusiveMinimum" is true, the instance must be greater than the provided value. - /// 2. If "exclusiveMinimum" is false or not specified, the instance must be greater than or exactly equal to the provided value. - /// - /// This property works in conjunction with [exclusiveMinimum] to define the lower bound behavior. - num? minimum; - - /// Determines whether the minimum value is exclusive. - /// - /// The value of "exclusiveMinimum" MUST be a boolean, representing - /// whether the limit in "minimum" is exclusive or not. An undefined - /// value is the same as false. - /// - /// If "exclusiveMinimum" is true, then a numeric instance SHOULD NOT be - /// equal to the value specified in "minimum". If "exclusiveMinimum" is - /// false (or not specified), then a numeric instance MAY be equal to the - /// value of "minimum". - bool? exclusiveMinimum; - - /// The maximum length allowed for a string instance. - /// - /// The value of this keyword MUST be an integer. This integer MUST be - /// greater than, or equal to, 0. - /// - /// A string instance is valid against this keyword if its length is less - /// than, or equal to, the value of this keyword. - /// - /// The length of a string instance is defined as the number of its - /// characters as defined by RFC 7159 [RFC7159]. - int? maxLength; - - /// The minimum length allowed for a string instance. - /// - /// The length of a string instance is defined as the number of its - /// characters as defined by RFC 7159 [RFC7159]. - /// - /// The value of this keyword MUST be an integer. This integer MUST be - /// greater than, or equal to, 0. - /// - /// "minLength", if absent, may be considered as being present with - /// integer value 0. - int? minLength; - - /// The regular expression pattern that a string instance must match. - /// - /// A string instance is considered valid if the regular expression - /// matches the instance successfully. Recall: regular expressions are - /// not implicitly anchored. - String? pattern; - - /// The maximum number of items allowed in an array instance. - /// - /// An array instance is valid against "maxItems" if its size is less - /// than, or equal to, the value of this keyword. - int? maxItems; - - /// The minimum number of items allowed in an array instance. - /// - /// An array instance is valid against "minItems" if its size is greater - /// than, or equal to, the value of this keyword. - /// - /// If this keyword is not present, it may be considered present with a - /// value of 0. - int? minItems; - - /// Specifies whether the items in an array instance must be unique. - /// - /// If this keyword has boolean value false, the instance validates - /// successfully. If it has boolean value true, the instance validates - /// successfully if all of its elements are unique. - /// - /// If not present, this keyword may be considered present with boolean - /// value false. - bool? uniqueItems; - - /// Specifies a value that numeric instances must be divisible by. - /// - /// The value of "multipleOf" MUST be a number, strictly greater than 0. - /// - /// A numeric instance is only valid if division by this keyword's value - /// results in an integer. - num? multipleOf; - - /// The maximum number of properties allowed in an object instance. - /// - /// An object instance is valid against "maxProperties" if its number of - /// properties is less than, or equal to, the value of this keyword. - int? maxProperties; - - /// The minimum number of properties allowed in an object instance. - /// - /// An object instance is valid against "minProperties" if its number of - /// properties is greater than, or equal to, the value of this keyword. - /// - /// If this keyword is not present, it may be considered present with a - /// value of 0. - int? minProperties; - - /// A list of required property names for the schema object. - /// - /// An object instance is valid against this keyword if its property set - /// contains all elements in this keyword's array value. - List? isRequired; - - /// Specifies a list of allowed values for the schema instance. - /// - /// Elements in the array MAY be of any type, including null. - /// - /// An instance validates successfully against this keyword if its value - /// is equal to one of the elements in this keyword's array value. - List? enumerated; - - /* Modified JSON Schema for OpenAPI */ - - /// Represents the type of the API schema object. - /// - /// This property defines the data type of the schema. It can be any of the - /// values defined in the [APIType] enum, such as string, number, integer, - /// boolean, array, or object. - /// - /// The type is a fundamental property of the schema as it determines the - /// basic structure and validation rules for the data that the schema represents. - /// - /// If null, it indicates that the type is not specified, which might be the case - /// for schemas that use composition keywords like allOf, anyOf, or oneOf. - APIType? type; - - /// A list of schema objects that this schema object composes. - /// - /// This property allows for the composition of schema objects through the 'allOf' keyword. - /// The instance data must be valid against all of the schemas in this list. - /// This is ANDing the constraints specified by each schema in the list. - /// - /// If null, it indicates that no composition is specified for this schema object. - List? allOf; - - /// A list of schema objects that this schema object can be any of. - /// - /// This property allows for the composition of schema objects through the 'anyOf' keyword. - /// The instance data must be valid against at least one of the schemas in this list. - /// This is ORing the constraints specified by each schema in the list. - /// - /// If null, it indicates that no 'anyOf' composition is specified for this schema object. - List? anyOf; - - /// A list of schema objects that this schema object can be one of. - /// - /// This property allows for the composition of schema objects through the 'oneOf' keyword. - /// The instance data must be valid against exactly one of the schemas in this list. - /// This represents an exclusive OR (XOR) relationship between the schemas. - /// - /// If null, it indicates that no 'oneOf' composition is specified for this schema object. - List? oneOf; - - /// A schema object that this schema object must not match. - /// - /// This property allows for the negation of a schema through the 'not' keyword. - /// The instance data must NOT be valid against the schema defined in this property. - /// This is useful for expressing constraints that are the opposite of a given schema. - /// - /// If null, it indicates that no 'not' constraint is specified for this schema object. - APISchemaObject? not; - - /// Defines the schema for items in an array. - /// - /// This property is only applicable when the [type] is set to [APIType.array]. - /// It specifies the schema that all items in the array must conform to. - /// - /// If null, it indicates that the schema for array items is not specified, - /// allowing items of any type in the array. - APISchemaObject? items; - - /// A map of property names to their corresponding schema objects. - /// - /// This property defines the structure of an object schema by specifying - /// the schemas for its properties. Each key in the map is the name of a - /// property, and its corresponding value is an [APISchemaObject] that - /// defines the schema for that property. - /// - /// If null, it indicates that no properties are defined for this schema object. - /// This could be the case for non-object schemas or for object schemas where - /// properties are not explicitly defined (e.g., when using additionalProperties). - Map? properties; - - /// Defines the schema for additional properties in an object. - /// - /// This property is used in conjunction with [additionalPropertyPolicy] to specify - /// the schema for additional properties when [additionalPropertyPolicy] is set to - /// [APISchemaAdditionalPropertyPolicy.restricted]. - /// - /// If null, it indicates that no specific schema is defined for additional properties, - /// which could mean either that additional properties are not allowed or that they - /// can be of any type, depending on the [additionalPropertyPolicy]. - APISchemaObject? additionalPropertySchema; - - /// Specifies the policy for handling additional properties in the schema object. - /// - /// This property determines how the schema should treat properties that are not - /// explicitly defined in the [properties] map. It can have one of three values: - /// - /// - [APISchemaAdditionalPropertyPolicy.disallowed]: No additional properties are allowed. - /// - [APISchemaAdditionalPropertyPolicy.freeForm]: Any additional properties are allowed without restrictions. - /// - [APISchemaAdditionalPropertyPolicy.restricted]: Additional properties are allowed, but must conform to the schema defined in [additionalPropertySchema]. - /// - /// If null, the additional property policy is not explicitly set, and the behavior - /// may depend on the context or default to a specific policy (often 'disallowed' in strict schemas). - APISchemaAdditionalPropertyPolicy? additionalPropertyPolicy; - - /// A description of the schema object. - /// - /// This property provides a detailed explanation of the purpose, structure, - /// or constraints of the schema. It can be used to give more context to API - /// consumers about what this schema represents or how it should be used. - /// - /// If null, it indicates that no description has been provided for this schema. - String? description; - - /// Specifies the format of the data. - /// - /// This property is a string that further defines the specific format of the data - /// described by the schema. It is often used in conjunction with the [type] property - /// to provide more detailed type information. - /// - /// Common formats include: - /// - For strings: 'date-time', 'date', 'email', 'hostname', 'ipv4', 'ipv6', 'uri', etc. - /// - For numbers: 'float', 'double' - /// - For integers: 'int32', 'int64' - /// - /// The interpretation and validation of the format may depend on the data type - /// and the specific OpenAPI tooling being used. - /// - /// If null, it indicates that no specific format is defined for this schema property. - String? format; - - /// The default value for this schema object. - /// - /// This property specifies the default value to be used if the instance value is not supplied. - /// The value SHOULD be valid against the schema. - /// - /// The type of this property is dynamic, allowing for default values of any type - /// that matches the schema's type. For example: - /// - For string schemas, it could be a String. - /// - For number schemas, it could be a num. - /// - For boolean schemas, it could be a bool. - /// - For array schemas, it could be a List. - /// - For object schemas, it could be a Map. - /// - /// If null, it indicates that no default value is specified for this schema property. - dynamic defaultValue; - - /// Determines whether the schema allows null values. - /// - /// This getter returns a boolean value indicating if the schema permits null values. - /// It returns true if the schema explicitly allows null values, and false otherwise. - /// - /// The getter uses the nullish coalescing operator (??) to provide a default value of false - /// if the internal [_nullable] property is null. - /// - /// Returns: - /// A boolean value: true if the schema allows null values, false otherwise. - bool? get isNullable => _nullable ?? false; - - /// Sets whether the schema allows null values. - /// - /// This setter allows you to specify if the schema should permit null values. - /// Setting it to true means the schema will allow null, while false means it won't. - /// - /// Parameters: - /// [n]: A boolean value indicating whether null is allowed (true) or not (false). - /// Can be null, in which case it will clear any previously set value. - set isNullable(bool? n) { - _nullable = n; - } - - // APIDiscriminator discriminator; - - /// Determines whether the schema is read-only. - /// - /// This getter returns a boolean value indicating if the schema is marked as read-only. - /// It returns true if the schema is explicitly set as read-only, and false otherwise. - /// - /// The getter uses the nullish coalescing operator (??) to provide a default value of false - /// if the internal [_readOnly] property is null. - /// - /// Returns: - /// A boolean value: true if the schema is read-only, false otherwise. - bool? get isReadOnly => _readOnly ?? false; - - /// Sets whether the schema is read-only. - /// - /// This setter allows you to specify if the schema should be considered read-only. - /// Setting it to true means the schema is read-only, while false means it's not. - /// - /// Parameters: - /// [n]: A boolean value indicating whether the schema is read-only (true) or not (false). - /// Can be null, in which case it will clear any previously set value. - set isReadOnly(bool? n) { - _readOnly = n; - } - - /// Determines whether the schema is write-only. - /// - /// This getter returns a boolean value indicating if the schema is marked as write-only. - /// It returns true if the schema is explicitly set as write-only, and false otherwise. - /// - /// The getter uses the nullish coalescing operator (??) to provide a default value of false - /// if the internal [_writeOnly] property is null. - /// - /// Returns: - /// A boolean value: true if the schema is write-only, false otherwise. - bool? get isWriteOnly => _writeOnly ?? false; - - set isWriteOnly(bool? n) { - _writeOnly = n; - } - - /// Internal boolean flag to determine if the schema allows null values. - /// - /// This private property is used to store the nullable state of the schema. - /// It's accessed and modified through the public [isNullable] getter and setter. - /// - /// - If true, the schema allows null values. - /// - If false, the schema does not allow null values. - /// - If null, the nullable state is not explicitly set, defaulting to false in the getter. - bool? _nullable; - - /// Internal boolean flag to determine if the schema is read-only. - /// - /// This private property is used to store the read-only state of the schema. - /// It's accessed and modified through the public [isReadOnly] getter and setter. - /// - /// - If true, the schema is read-only. - /// - If false, the schema is not read-only. - /// - If null, the read-only state is not explicitly set, defaulting to false in the getter. - bool? _readOnly; - - /// Internal boolean flag to determine if the schema is write-only. - /// - /// This private property is used to store the write-only state of the schema. - /// It's accessed and modified through the public [isWriteOnly] getter and setter. - /// - /// - If true, the schema is write-only. - /// - If false, the schema is not write-only. - /// - If null, the write-only state is not explicitly set, defaulting to false in the getter. - bool? _writeOnly; - - /// Indicates whether the schema is deprecated. - /// - /// This property specifies if the schema has been deprecated and should be avoided in new implementations. - /// - /// - If true, the schema is considered deprecated. - /// - If false, the schema is not deprecated. - /// - If null, the deprecation status is not explicitly set. - /// - /// Deprecated schemas may still be used but are typically discouraged in favor of newer alternatives. - bool? deprecated; - - /// Provides a map of property names to their corresponding cast functions. - /// - /// This getter overrides the base implementation to specify custom casting - /// behavior for certain properties of the APISchemaObject. - /// - /// Returns: - /// A Map where: - /// - The key "required" is associated with a cast.List(cast.string) function, - /// which casts the "required" property to a List of Strings. - /// - /// This ensures that when decoding JSON data, the "required" field is properly - /// cast to a List, maintaining type safety and consistency in the object model. - @override - Map get castMap => - {"required": const cast.List(cast.string)}; - - /// Decodes a [KeyedArchive] object into this [APISchemaObject] instance. - /// - /// This method populates the properties of the [APISchemaObject] by extracting - /// values from the provided [KeyedArchive] object. It handles both simple properties - /// and complex nested structures. - /// - /// The method decodes various schema properties including: - /// - Basic properties like title, maximum, minimum, pattern, etc. - /// - Numeric constraints (maxLength, minLength, maxItems, minItems, etc.) - /// - Enumerated values and required fields - /// - Complex structures like allOf, anyOf, oneOf, and nested schemas - /// - Additional properties policy and schema - /// - Metadata like description, format, and default value - /// - /// It also handles special cases like the 'additionalProperties' field, which - /// can be a boolean or an object, affecting the [additionalPropertyPolicy] and - /// [additionalPropertySchema] properties. - /// - /// Parameters: - /// [object]: A [KeyedArchive] containing the encoded schema data. - /// - /// Note: This method overrides the [decode] method from a superclass and - /// calls the superclass implementation before proceeding with its own decoding. - @override - void decode(KeyedArchive object) { - super.decode(object); - - title = object.decode("title"); - maximum = object.decode("maximum"); - exclusiveMaximum = object.decode("exclusiveMaximum"); - minimum = object.decode("minimum"); - exclusiveMinimum = object.decode("exclusiveMinimum"); - maxLength = object.decode("maxLength"); - minLength = object.decode("minLength"); - pattern = object.decode("pattern"); - maxItems = object.decode("maxItems"); - minItems = object.decode("minItems"); - uniqueItems = object.decode("uniqueItems"); - multipleOf = object.decode("multipleOf"); - enumerated = object.decode("enum"); - minProperties = object.decode("minProperties"); - maxProperties = object.decode("maxProperties"); - isRequired = object.decode("required"); - - // - - type = APITypeCodec.decode(object.decode("type")); - allOf = object.decodeObjects("allOf", () => APISchemaObject()); - anyOf = object.decodeObjects("anyOf", () => APISchemaObject()); - oneOf = object.decodeObjects("oneOf", () => APISchemaObject()); - not = object.decodeObject("not", () => APISchemaObject()); - - items = object.decodeObject("items", () => APISchemaObject()); - properties = object.decodeObjectMap("properties", () => APISchemaObject()); - - final addlProps = object["additionalProperties"]; - if (addlProps is bool) { - if (addlProps) { - additionalPropertyPolicy = APISchemaAdditionalPropertyPolicy.freeForm; - } else { - additionalPropertyPolicy = APISchemaAdditionalPropertyPolicy.disallowed; - } - } else if (addlProps is KeyedArchive && addlProps.isEmpty) { - additionalPropertyPolicy = APISchemaAdditionalPropertyPolicy.freeForm; - } else { - additionalPropertyPolicy = APISchemaAdditionalPropertyPolicy.restricted; - additionalPropertySchema = - object.decodeObject("additionalProperties", () => APISchemaObject()); - } - - description = object.decode("description"); - format = object.decode("format"); - defaultValue = object.decode("default"); - - _nullable = object.decode("nullable"); - _readOnly = object.decode("readOnly"); - _writeOnly = object.decode("writeOnly"); - deprecated = object.decode("deprecated"); - } - - /// Encodes this [APISchemaObject] instance into a [KeyedArchive] object. - /// - /// This method serializes all properties of the [APISchemaObject] into the provided - /// [KeyedArchive] object. It handles both simple properties and complex nested structures. - /// - /// The method encodes various schema properties including: - /// - Basic properties like title, maximum, minimum, pattern, etc. - /// - Numeric constraints (maxLength, minLength, maxItems, minItems, etc.) - /// - Enumerated values and required fields - /// - Complex structures like allOf, anyOf, oneOf, and nested schemas - /// - Additional properties policy and schema - /// - Metadata like description, format, and default value - /// - /// It also handles special cases like the 'additionalProperties' field, which - /// is encoded differently based on the [additionalPropertyPolicy] and - /// [additionalPropertySchema] properties. - /// - /// Parameters: - /// [object]: A [KeyedArchive] to store the encoded schema data. - /// - /// Note: This method overrides the [encode] method from a superclass and - /// calls the superclass implementation before proceeding with its own encoding. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("title", title); - object.encode("maximum", maximum); - object.encode("exclusiveMaximum", exclusiveMaximum); - object.encode("minimum", minimum); - object.encode("exclusiveMinimum", exclusiveMinimum); - object.encode("maxLength", maxLength); - object.encode("minLength", minLength); - object.encode("pattern", pattern); - object.encode("maxItems", maxItems); - object.encode("minItems", minItems); - object.encode("uniqueItems", uniqueItems); - object.encode("multipleOf", multipleOf); - object.encode("enum", enumerated); - object.encode("minProperties", minProperties); - object.encode("maxProperties", maxProperties); - object.encode("required", isRequired); - - // - - object.encode("type", APITypeCodec.encode(type)); - object.encodeObjects("allOf", allOf); - object.encodeObjects("anyOf", anyOf); - object.encodeObjects("oneOf", oneOf); - object.encodeObject("not", not); - - object.encodeObject("items", items); - if (additionalPropertyPolicy != null || additionalPropertySchema != null) { - if (additionalPropertyPolicy == - APISchemaAdditionalPropertyPolicy.disallowed) { - object.encode("additionalProperties", false); - } else if (additionalPropertyPolicy == - APISchemaAdditionalPropertyPolicy.freeForm) { - object.encode("additionalProperties", true); - } else { - object.encodeObject("additionalProperties", additionalPropertySchema); - } - } - object.encodeObjectMap("properties", properties); - - object.encode("description", description); - object.encode("format", format); - object.encode("default", defaultValue); - - object.encode("nullable", _nullable); - object.encode("readOnly", _readOnly); - object.encode("writeOnly", _writeOnly); - object.encode("deprecated", deprecated); - } -} diff --git a/packages/openapi/lib/src/v3/security.dart b/packages/openapi/lib/src/v3/security.dart deleted file mode 100644 index 84d5615..0000000 --- a/packages/openapi/lib/src/v3/security.dart +++ /dev/null @@ -1,803 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; -import 'package:protevus_openapi/v3.dart'; - -/// Represents the different types of security schemes available in the OpenAPI specification. -/// -/// - [apiKey]: API key-based security scheme. -/// - [http]: HTTP authentication scheme. -/// - [oauth2]: OAuth 2.0 authentication scheme. -/// - [openID]: OpenID Connect authentication scheme. -enum APISecuritySchemeType { apiKey, http, oauth2, openID } - -/// A utility class for encoding and decoding [APISecuritySchemeType] values. -/// -/// This class provides static methods to convert between [APISecuritySchemeType] enum values -/// and their corresponding string representations as defined in the OpenAPI specification. -class APISecuritySchemeTypeCodec { - /// Decodes a string representation of an API security scheme type into an [APISecuritySchemeType] enum value. - /// - /// This method takes a [String] parameter `type` and returns the corresponding - /// [APISecuritySchemeType] enum value. If the input string doesn't match any - /// known security scheme type, the method returns `null`. - /// - /// Parameters: - /// - type: A [String] representing the security scheme type. - /// - /// Returns: - /// The corresponding [APISecuritySchemeType] enum value, or `null` if no match is found. - static APISecuritySchemeType? decode(String? type) { - switch (type) { - case "apiKey": - return APISecuritySchemeType.apiKey; - case "http": - return APISecuritySchemeType.http; - case "oauth2": - return APISecuritySchemeType.oauth2; - case "openID": - return APISecuritySchemeType.openID; - default: - return null; - } - } - - /// Encodes an [APISecuritySchemeType] enum value into its corresponding string representation. - /// - /// This method takes an [APISecuritySchemeType] parameter `type` and returns the corresponding - /// string representation as defined in the OpenAPI specification. If the input is `null` or - /// doesn't match any known security scheme type, the method returns `null`. - /// - /// Parameters: - /// - type: An [APISecuritySchemeType] enum value to be encoded. - /// - /// Returns: - /// A [String] representing the security scheme type, or `null` if the input is `null` or invalid. - static String? encode(APISecuritySchemeType? type) { - switch (type) { - case APISecuritySchemeType.apiKey: - return "apiKey"; - case APISecuritySchemeType.http: - return "http"; - case APISecuritySchemeType.oauth2: - return "oauth2"; - case APISecuritySchemeType.openID: - return "openID"; - default: - return null; - } - } -} - -/// Defines a security scheme that can be used by the operations. -/// -/// Supported schemes are HTTP authentication, an API key (either as a header or as a query parameter), -/// OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, -/// and OpenID Connect Discovery. -/// -/// This class represents different types of security schemes: -/// - HTTP authentication (using [APISecurityScheme.http]) -/// - API Key (using [APISecurityScheme.apiKey]) -/// - OAuth2 (using [APISecurityScheme.oauth2]) -/// - OpenID Connect (using [APISecurityScheme.openID]) -/// -/// The [type] property determines which security scheme is being used, and the corresponding -/// properties should be set based on the chosen type. -/// -/// When encoding or decoding, the class ensures that the required properties for each type -/// are present and correctly formatted. -class APISecurityScheme extends APIObject { - /// Default constructor for APISecurityScheme. - /// - /// Creates an instance of APISecurityScheme with no initial values set. - /// Use this constructor when you need to create an empty security scheme - /// that will be populated later or when you want to manually set all properties. - APISecurityScheme(); - - /// Creates an empty instance of APISecurityScheme. - /// - /// This named constructor initializes an APISecurityScheme with no pre-set values. - /// It can be used when you need to create a security scheme object that will be - /// populated with data later or when you want to manually set all properties. - APISecurityScheme.empty(); - - /// Creates an instance of APISecurityScheme for HTTP authentication. - /// - /// This constructor initializes a security scheme of type [APISecuritySchemeType.http] - /// with the specified [scheme]. - /// - /// Parameters: - /// - scheme: A [String] representing the name of the HTTP Authorization scheme - /// to be used in the Authorization header as defined in RFC7235. - /// - /// Example: - /// ```dart - /// var httpScheme = APISecurityScheme.http('bearer'); - /// ``` - APISecurityScheme.http(this.scheme) : type = APISecuritySchemeType.http; - - /// Creates an instance of APISecurityScheme for API Key authentication. - /// - /// This constructor initializes a security scheme of type [APISecuritySchemeType.apiKey] - /// with the specified [name] and [location]. - /// - /// Parameters: - /// - name: A [String] representing the name of the API key to be used. - /// - location: An [APIParameterLocation] specifying where the API key is expected - /// (e.g., query parameter, header, or cookie). - /// - /// Example: - /// ```dart - /// var apiKeyScheme = APISecurityScheme.apiKey('api_key', APIParameterLocation.header); - /// ``` - APISecurityScheme.apiKey(this.name, this.location) - : type = APISecuritySchemeType.apiKey; - - /// Creates an instance of APISecurityScheme for OAuth2 authentication. - /// - /// This constructor initializes a security scheme of type [APISecuritySchemeType.oauth2] - /// with the specified [flows]. - /// - /// Parameters: - /// - flows: A [Map] representing the OAuth2 flows - /// supported by this security scheme. The keys should be flow types - /// (e.g., "implicit", "authorizationCode", "clientCredentials", "password"), - /// and the values should be instances of [APISecuritySchemeOAuth2Flow]. - /// - /// Example: - /// ```dart - /// var oauth2Scheme = APISecurityScheme.oauth2({ - /// 'implicit': APISecuritySchemeOAuth2Flow.implicit( - /// Uri.parse('https://example.com/oauth/authorize'), - /// Uri.parse('https://example.com/oauth/token'), - /// {'read:api': 'Read access to protected resources'}, - /// ), - /// }); - /// ``` - APISecurityScheme.oauth2(this.flows) : type = APISecuritySchemeType.oauth2; - - /// Creates an instance of APISecurityScheme for OpenID Connect authentication. - /// - /// This constructor initializes a security scheme of type [APISecuritySchemeType.openID] - /// with the specified [connectURL]. - /// - /// Parameters: - /// - connectURL: A [Uri] representing the OpenID Connect URL used to discover - /// OAuth2 configuration values. This MUST be in the form of a URL. - /// - /// Example: - /// ```dart - /// var openIDScheme = APISecurityScheme.openID( - /// Uri.parse('https://example.com/.well-known/openid-configuration') - /// ); - /// ``` - APISecurityScheme.openID(this.connectURL) - : type = APISecuritySchemeType.openID; - - /// The type of the security scheme. - /// - /// This property defines the type of security scheme used, which determines - /// how the security is enforced and what additional properties are required. - /// - /// REQUIRED. Valid values are: - /// - "apiKey": For API key-based authentication - /// - "http": For HTTP authentication schemes - /// - "oauth2": For OAuth2 authentication - /// - "openIdConnect": For OpenID Connect Discovery-based authentication - /// - /// The value of this property affects which other properties of the - /// [APISecurityScheme] are required or applicable. - APISecuritySchemeType? type; - - /// A short description for the security scheme. - /// - /// This property provides a brief explanation of the security scheme's purpose or usage. - /// It can be used to give additional context or details about how the security mechanism works. - /// - /// The description MAY use CommonMark syntax for rich text representation, allowing - /// for formatted text, links, and other markdown features to enhance readability. - /// - /// This field is optional but recommended to improve the documentation of the API's security measures. - String? description; - - /// The name of the header, query or cookie parameter to be used. - /// - /// This property specifies the name of the parameter that will be used to pass the API key. - /// It is applicable only when the security scheme type is [APISecuritySchemeType.apiKey]. - /// - /// The value of this property depends on the [location] property: - /// - If [location] is [APIParameterLocation.header], this is the name of the header. - /// - If [location] is [APIParameterLocation.query], this is the name of the query parameter. - /// - If [location] is [APIParameterLocation.cookie], this is the name of the cookie. - /// - /// This property is REQUIRED when the security scheme type is [APISecuritySchemeType.apiKey]. - String? name; - - /// The location of the API key. - /// - /// This property specifies where the API key should be sent in the request. - /// It is only applicable and REQUIRED when the security scheme type is [APISecuritySchemeType.apiKey]. - /// - /// For apiKey only. REQUIRED if so. - APIParameterLocation? location; - - /// The name of the HTTP Authorization scheme to be used in the Authorization header as defined in RFC7235. - /// - /// This property specifies the name of the HTTP Authorization scheme that will be used - /// in the Authorization header for requests. It is only applicable and REQUIRED when - /// the security scheme type is [APISecuritySchemeType.http]. - /// - /// Common values include: - /// - "basic": for Basic Authentication - /// - "bearer": for Bearer Token Authentication - /// - "digest": for Digest Access Authentication - /// - /// The value of this property should correspond to the authentication scheme - /// as defined in RFC7235 and should be registered in the IANA Authentication Scheme Registry. - /// - /// For http only. REQUIRED if so. - String? scheme; - - /// A hint to the client to identify how the bearer token is formatted. - /// - /// This property provides additional information about the format of the bearer token - /// when using HTTP authentication with a 'bearer' scheme. It is typically used for - /// documentation purposes to help API consumers understand the expected token format. - /// - /// For http only. - String? format; - - /// An object containing configuration information for the flow types supported in OAuth2 authentication. - /// - /// Fixed keys are implicit, password, clientCredentials and authorizationCode. - /// - /// For oauth2 only. REQUIRED if so. - Map? flows; - - /// OpenId Connect URL to discover OAuth2 configuration values. - /// - /// This MUST be in the form of a URL. - /// - /// For openID only. REQUIRED if so. - /// - /// This property specifies the OpenID Connect URL used to discover OAuth2 configuration values. - /// It is only applicable and REQUIRED when the security scheme type is [APISecuritySchemeType.openID]. - /// - /// The URL should point to the OpenID Connect discovery endpoint, typically ending with - /// '.well-known/openid-configuration'. This endpoint provides information about the OpenID Provider's - /// configuration, including the OAuth 2.0 endpoint locations. - /// - /// Example: - /// ```dart - /// connectURL = Uri.parse('https://example.com/.well-known/openid-configuration'); - /// ``` - /// - /// Note: This URL must be a valid URI and should be accessible to clients for retrieving - /// the necessary configuration information to initiate the OpenID Connect authentication flow. - Uri? connectURL; - - /// Decodes the security scheme information from a [KeyedArchive] object. - /// - /// This method is responsible for populating the properties of the [APISecurityScheme] - /// instance based on the data stored in the provided [KeyedArchive] object. It handles - /// the decoding process for different security scheme types, including API key, OAuth2, - /// HTTP authentication, and OpenID Connect. - /// - /// The method performs the following steps: - /// 1. Calls the superclass's decode method. - /// 2. Decodes the 'type' and 'description' fields. - /// 3. Based on the security scheme type, decodes additional fields specific to that type: - /// - For API key: decodes 'name' and 'in' (location) fields. - /// - For OAuth2: decodes the 'flows' object. - /// - For HTTP: decodes 'scheme' and 'bearerFormat' fields. - /// - For OpenID Connect: decodes the 'openIdConnectUrl' field. - /// - /// If the security scheme type is not recognized, it throws an [ArgumentError]. - /// - /// Parameters: - /// - object: A [KeyedArchive] containing the encoded security scheme data. - /// - /// Throws: - /// - [ArgumentError] if the security scheme type is null or not recognized. - @override - void decode(KeyedArchive object) { - super.decode(object); - - type = APISecuritySchemeTypeCodec.decode(object.decode("type")); - description = object.decode("description"); - - switch (type) { - case APISecuritySchemeType.apiKey: - { - name = object.decode("name"); - location = APIParameterLocationCodec.decode(object.decode("in")); - } - break; - case APISecuritySchemeType.oauth2: - { - flows = object.decodeObjectMap( - "flows", - () => APISecuritySchemeOAuth2Flow.empty(), - ); - } - break; - case APISecuritySchemeType.http: - { - scheme = object.decode("scheme"); - format = object.decode("bearerFormat"); - } - break; - case APISecuritySchemeType.openID: - { - connectURL = object.decode("openIdConnectUrl"); - } - break; - default: - throw ArgumentError( - "APISecurityScheme must have non-null values for: 'type'.", - ); - } - } - - /// Encodes the security scheme information into a [KeyedArchive] object. - /// - /// This method is responsible for encoding the properties of the [APISecurityScheme] - /// instance into the provided [KeyedArchive] object. It handles the encoding process - /// for different security scheme types, including API key, OAuth2, HTTP authentication, - /// and OpenID Connect. - /// - /// The method performs the following steps: - /// 1. Calls the superclass's encode method. - /// 2. Checks if the 'type' property is set, throwing an [ArgumentError] if it's null. - /// 3. Encodes the 'type' and 'description' fields. - /// 4. Based on the security scheme type, encodes additional fields specific to that type: - /// - For API key: encodes 'name' and 'in' (location) fields. - /// - For OAuth2: encodes the 'flows' object. - /// - For HTTP: encodes 'scheme' and 'bearerFormat' fields. - /// - For OpenID Connect: encodes the 'openIdConnectUrl' field. - /// - /// For each type, it checks if the required properties are non-null and throws - /// an [ArgumentError] if any required property is missing. - /// - /// Parameters: - /// - object: A [KeyedArchive] to store the encoded security scheme data. - /// - /// Throws: - /// - [ArgumentError] if the security scheme type is null or if any required - /// property for a specific type is missing. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (type == null) { - throw ArgumentError( - "APISecurityScheme must have non-null values for: 'type'.", - ); - } - - object.encode("type", APISecuritySchemeTypeCodec.encode(type)); - object.encode("description", description); - - switch (type) { - case APISecuritySchemeType.apiKey: - { - if (name == null || location == null) { - throw ArgumentError( - "APISecurityScheme with 'apiKey' type must have non-null values for: 'name', 'location'.", - ); - } - - object.encode("name", name); - object.encode("in", APIParameterLocationCodec.encode(location)); - } - break; - case APISecuritySchemeType.oauth2: - { - if (flows == null) { - throw ArgumentError( - "APISecurityScheme with 'oauth2' type must have non-null values for: 'flows'.", - ); - } - - object.encodeObjectMap("flows", flows); - } - break; - case APISecuritySchemeType.http: - { - if (scheme == null) { - throw ArgumentError( - "APISecurityScheme with 'http' type must have non-null values for: 'scheme'.", - ); - } - - object.encode("scheme", scheme); - object.encode("bearerFormat", format); - } - break; - case APISecuritySchemeType.openID: - { - if (connectURL == null) { - throw ArgumentError( - "APISecurityScheme with 'openID' type must have non-null values for: 'connectURL'.", - ); - } - object.encode("openIdConnectUrl", connectURL); - } - break; - default: - throw ArgumentError( - "APISecurityScheme must have non-null values for: 'type'.", - ); - } - } -} - -/// This class represents the configuration for different OAuth 2.0 flows as defined in the OpenAPI specification. -/// It supports the following OAuth 2.0 flows: -/// - Authorization Code -/// - Implicit -/// - Resource Owner Password Credentials -/// - Client Credentials -/// -/// Each flow type has its own constructor with the required parameters: -/// - [APISecuritySchemeOAuth2Flow.code]: For Authorization Code flow -/// - [APISecuritySchemeOAuth2Flow.implicit]: For Implicit flow -/// - [APISecuritySchemeOAuth2Flow.password]: For Resource Owner Password Credentials flow -/// - [APISecuritySchemeOAuth2Flow.client]: For Client Credentials flow -/// -/// The class provides properties for configuring the OAuth 2.0 endpoints and available scopes: -/// - [authorizationURL]: The authorization endpoint URL (required for Authorization Code and Implicit flows) -/// - [tokenURL]: The token endpoint URL (required for Authorization Code, Password, and Client Credentials flows) -/// - [refreshURL]: The refresh token endpoint URL (optional) -/// - [scopes]: A map of available scopes and their descriptions (required for all flows) -/// -/// This class extends [APIObject] and provides methods for encoding and decoding its properties -/// to and from a [KeyedArchive] object, which is used for serialization and deserialization. -class APISecuritySchemeOAuth2Flow extends APIObject { - /// Creates an empty instance of APISecuritySchemeOAuth2Flow. - /// - /// This constructor initializes an APISecuritySchemeOAuth2Flow with no pre-set values. - /// It can be used when you need to create an OAuth2 flow object that will be - /// populated with data later or when you want to manually set all properties. - APISecuritySchemeOAuth2Flow.empty(); - - /// Creates an instance of APISecuritySchemeOAuth2Flow for the Authorization Code flow. - /// - /// This constructor initializes an OAuth2 flow configuration for the Authorization Code grant type. - /// - /// Parameters: - /// - authorizationURL: The authorization endpoint URL. REQUIRED. - /// - tokenURL: The token endpoint URL. REQUIRED. - /// - refreshURL: The refresh token endpoint URL. Optional. - /// - scopes: A map of available scopes and their descriptions. REQUIRED. - /// - /// All URL parameters should be in the form of a valid URL. - /// - /// Example: - /// ```dart - /// var codeFlow = APISecuritySchemeOAuth2Flow.code( - /// Uri.parse('https://example.com/oauth/authorize'), - /// Uri.parse('https://example.com/oauth/token'), - /// Uri.parse('https://example.com/oauth/refresh'), - /// {'read:api': 'Read access to protected resources'}, - /// ); - /// ``` - APISecuritySchemeOAuth2Flow.code( - this.authorizationURL, - this.tokenURL, - this.refreshURL, - this.scopes, - ); - - /// Creates an instance of APISecuritySchemeOAuth2Flow for the Implicit flow. - /// - /// This constructor initializes an OAuth2 flow configuration for the Implicit grant type. - /// - /// Parameters: - /// - authorizationURL: The authorization endpoint URL. REQUIRED. - /// - refreshURL: The refresh token endpoint URL. Optional. - /// - scopes: A map of available scopes and their descriptions. REQUIRED. - /// - /// The authorizationURL should be in the form of a valid URL. - /// - /// Example: - /// ```dart - /// var implicitFlow = APISecuritySchemeOAuth2Flow.implicit( - /// Uri.parse('https://example.com/oauth/authorize'), - /// Uri.parse('https://example.com/oauth/refresh'), - /// {'read:api': 'Read access to protected resources'}, - /// ); - /// ``` - APISecuritySchemeOAuth2Flow.implicit( - this.authorizationURL, - this.refreshURL, - this.scopes, - ); - - /// Creates an instance of APISecuritySchemeOAuth2Flow for the Resource Owner Password Credentials flow. - /// - /// This constructor initializes an OAuth2 flow configuration for the Password grant type. - /// - /// Parameters: - /// - tokenURL: The token endpoint URL. REQUIRED. - /// - refreshURL: The refresh token endpoint URL. Optional. - /// - scopes: A map of available scopes and their descriptions. REQUIRED. - /// - /// The tokenURL should be in the form of a valid URL. - /// - /// Example: - /// ```dart - /// var passwordFlow = APISecuritySchemeOAuth2Flow.password( - /// Uri.parse('https://example.com/oauth/token'), - /// Uri.parse('https://example.com/oauth/refresh'), - /// {'read:api': 'Read access to protected resources'}, - /// ); - /// ``` - APISecuritySchemeOAuth2Flow.password( - this.tokenURL, - this.refreshURL, - this.scopes, - ); - - /// Creates an instance of APISecuritySchemeOAuth2Flow for the Client Credentials flow. - /// - /// This constructor initializes an OAuth2 flow configuration for the Client Credentials grant type. - /// - /// Parameters: - /// - tokenURL: The token endpoint URL. REQUIRED. - /// - refreshURL: The refresh token endpoint URL. Optional. - /// - scopes: A map of available scopes and their descriptions. REQUIRED. - /// - /// The tokenURL should be in the form of a valid URL. - /// - /// Example: - /// ```dart - /// var clientFlow = APISecuritySchemeOAuth2Flow.client( - /// Uri.parse('https://example.com/oauth/token'), - /// Uri.parse('https://example.com/oauth/refresh'), - /// {'read:api': 'Read access to protected resources'}, - /// ); - /// ``` - APISecuritySchemeOAuth2Flow.client( - this.tokenURL, - this.refreshURL, - this.scopes, - ); - - /// The authorization URL to be used for this flow. - /// - /// This property represents the authorization endpoint URL for OAuth 2.0 flows - /// that require user interaction, such as the Authorization Code flow and the - /// Implicit flow. - /// - /// The authorization URL is the endpoint where the resource owner (user) is - /// redirected to grant authorization to the client application. It's typically - /// used to initiate the OAuth 2.0 authorization process. - /// - /// This property is REQUIRED for flows that use an authorization endpoint - /// (Authorization Code and Implicit flows). It MUST be in the form of a valid URL. - /// - /// Example: - /// ```dart - /// authorizationURL = Uri.parse('https://example.com/oauth/authorize'); - /// ``` - /// - /// Note: This property should not be set for flows that don't use an - /// authorization endpoint, such as the Client Credentials flow or the - /// Resource Owner Password Credentials flow. - Uri? authorizationURL; - - /// The token URL to be used for this flow. - /// - /// This property represents the token endpoint URL for OAuth 2.0 flows. - /// The token URL is the endpoint where the client application exchanges - /// an authorization grant for an access token. - /// - /// This property is REQUIRED for flows that use a token endpoint - /// (Authorization Code, Resource Owner Password Credentials, and Client Credentials flows). - /// It MUST be in the form of a valid URL. - /// - /// Example: - /// ```dart - /// tokenURL = Uri.parse('https://example.com/oauth/token'); - /// ``` - /// - /// Note: This property is not used in the Implicit flow, as the access token - /// is returned directly from the authorization endpoint in that flow. - Uri? tokenURL; - - /// The URL to be used for obtaining refresh tokens. - /// - /// This property represents the refresh token endpoint URL for OAuth 2.0 flows - /// that support token refresh. The refresh URL is used to obtain a new access token - /// using a refresh token, without requiring the user to re-authenticate. - /// - /// This property is OPTIONAL for all OAuth 2.0 flows. If provided, it MUST be in the - /// form of a valid URL. - /// - /// Example: - /// ```dart - /// refreshURL = Uri.parse('https://example.com/oauth/refresh'); - /// ``` - /// - /// Note: Not all OAuth 2.0 implementations support refresh tokens. When supported, - /// this URL allows clients to refresh their access tokens without user interaction, - /// improving the user experience for long-lived applications. - Uri? refreshURL; - - /// The available scopes for the OAuth2 security scheme. - /// - /// This property represents a map of OAuth 2.0 scopes available for the security scheme. - /// Each key in the map is a scope name, and its corresponding value is a short description of that scope. - /// - /// Scopes are used to define and limit the level of access granted to a client application. - /// They allow for fine-grained control over the permissions given to a client when accessing protected resources. - /// - /// This property is REQUIRED for all OAuth 2.0 flows defined in the OpenAPI specification. - /// - /// Example: - /// ```dart - /// scopes = { - /// 'read:users': 'Read access to user information', - /// 'write:users': 'Write access to user information', - /// }; - /// ``` - /// - /// Note: The descriptions should be concise yet informative, helping API consumers - /// understand the purpose and implications of each scope. - Map? scopes; - - /// Encodes the OAuth2 flow configuration into a [KeyedArchive] object. - /// - /// This method is responsible for serializing the properties of the [APISecuritySchemeOAuth2Flow] - /// instance into the provided [KeyedArchive] object. It encodes the following properties: - /// - /// - authorizationURL: The authorization endpoint URL (if applicable) - /// - tokenURL: The token endpoint URL (if applicable) - /// - refreshURL: The refresh token endpoint URL (if applicable) - /// - scopes: A map of available scopes and their descriptions - /// - /// This method first calls the superclass's encode method to handle any inherited properties, - /// then encodes the specific properties of the OAuth2 flow configuration. - /// - /// Parameters: - /// - object: A [KeyedArchive] to store the encoded OAuth2 flow configuration data. - @override - void encode(KeyedArchive object) { - super.encode(object); - - object.encode("authorizationUrl", authorizationURL); - object.encode("tokenUrl", tokenURL); - object.encode("refreshUrl", refreshURL); - object.encode("scopes", scopes); - } - - /// Decodes the OAuth2 flow configuration from a [KeyedArchive] object. - /// - /// This method is responsible for deserializing the properties of the [APISecuritySchemeOAuth2Flow] - /// instance from the provided [KeyedArchive] object. It decodes the following properties: - /// - /// - authorizationURL: The authorization endpoint URL (if present) - /// - tokenURL: The token endpoint URL (if present) - /// - refreshURL: The refresh token endpoint URL (if present) - /// - scopes: A map of available scopes and their descriptions - /// - /// This method first calls the superclass's decode method to handle any inherited properties, - /// then decodes the specific properties of the OAuth2 flow configuration. - /// - /// Parameters: - /// - object: A [KeyedArchive] containing the encoded OAuth2 flow configuration data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - authorizationURL = object.decode("authorizationUrl"); - - tokenURL = object.decode("tokenUrl"); - refreshURL = object.decode("refreshUrl"); - scopes = object.decode>("scopes"); - } -} - -/// Represents a security requirement in the OpenAPI specification. -/// -/// The name used for each property MUST correspond to a security scheme declared in [APIComponents.securitySchemes]. -/// [APISecurityRequirement] that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information. -/// When a list of [APISecurityRequirement] is defined on the [APIDocument] or [APIOperation], only one of [APISecurityRequirement] in the list needs to be satisfied to authorize the request. -class APISecurityRequirement extends APIObject { - /// Creates an [APISecurityRequirement] instance with the specified security requirements. - /// - /// The [requirements] parameter is a map where each key corresponds to a security scheme - /// declared in [APIComponents.securitySchemes], and the value is a list of scope names - /// required for execution (for OAuth2 or OpenID schemes) or an empty list (for other schemes). - /// - /// Example: - /// ```dart - /// var securityRequirement = APISecurityRequirement({ - /// 'api_key': [], - /// 'oauth2': ['read:api', 'write:api'], - /// }); - /// ``` - /// - /// Note: For security schemes other than OAuth2 or OpenID, the list should be empty. - APISecurityRequirement(this.requirements); - - /// Creates an empty instance of APISecurityRequirement. - /// - /// This constructor initializes an APISecurityRequirement with no pre-set security requirements. - /// It can be used when you need to create a security requirement object that will be - /// populated with data later or when you want to manually set the requirements. - APISecurityRequirement.empty(); - - /// A map representing the security requirements for an API operation or the entire API. - /// - /// If the security scheme is of type [APISecuritySchemeType.oauth2] or [APISecuritySchemeType.openID], then the value is a list of scope names required for the execution. For other security scheme types, the array MUST be empty. - Map>? requirements; - - /// Encodes the security requirements into a [KeyedArchive] object. - /// - /// This method is responsible for serializing the [requirements] of the [APISecurityRequirement] - /// instance into the provided [KeyedArchive] object. It performs the following steps: - /// - /// 1. Calls the superclass's encode method to handle any inherited properties. - /// 2. If [requirements] is not null, it iterates through each key-value pair in the map. - /// 3. For each pair, it encodes the key (security scheme name) and its corresponding value - /// (list of scope names or an empty list) into the [KeyedArchive] object. - /// - /// This encoding process allows the security requirements to be properly serialized - /// for use in the OpenAPI specification. - /// - /// Parameters: - /// - object: A [KeyedArchive] to store the encoded security requirement data. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (requirements != null) { - requirements!.forEach((key, value) { - object.encode(key, value); - }); - } - } - - /// Decodes the security requirements from a [KeyedArchive] object. - /// - /// This method is responsible for deserializing the security requirements stored in the - /// provided [KeyedArchive] object into the [requirements] property of this [APISecurityRequirement] - /// instance. It performs the following steps: - /// - /// 1. Calls the superclass's decode method to handle any inherited properties. - /// 2. Iterates through all keys in the [KeyedArchive] object. - /// 3. For each key, it attempts to decode the value as an [Iterable]. - /// 4. If successful, it converts the decoded value to a [List]. - /// 5. If [requirements] is null, it initializes it as an empty map. - /// 6. Adds the key-value pair to the [requirements] map, where the key is the security - /// scheme name and the value is the list of scope names or an empty list. - /// - /// This decoding process allows the security requirements to be properly deserialized - /// from the OpenAPI specification format. - /// - /// Parameters: - /// - object: A [KeyedArchive] containing the encoded security requirement data. - @override - void decode(KeyedArchive object) { - super.decode(object); - - for (final key in object.keys) { - final decoded = object.decode>(key); - if (decoded != null) { - final req = List.from(decoded); - requirements ??= >{}; - requirements![key] = req; - } - } - } -} diff --git a/packages/openapi/lib/src/v3/server.dart b/packages/openapi/lib/src/v3/server.dart deleted file mode 100644 index f4c733f..0000000 --- a/packages/openapi/lib/src/v3/server.dart +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; -import 'package:protevus_openapi/object.dart'; - -/// An object representing a Server. -/// -/// This class is used to describe a server in an OpenAPI specification. -/// It includes information about the server's URL, an optional description, -/// and any variables that can be used in the URL template. -/// -/// The [url] property is required and represents the URL to the target host. -/// It may include server variables in {brackets} for substitution. -/// -/// The [description] property is optional and can provide additional -/// information about the server. -/// -/// The [variables] property is a map of server variables that can be used -/// for substitution in the URL template. -class APIServerDescription extends APIObject { - /// Creates a new [APIServerDescription] instance. - /// - /// [url] is a required parameter representing the URL to the target host. - /// It may include server variables in {brackets} for substitution. - /// - /// [description] is an optional parameter that provides additional - /// information about the server. - /// - /// [variables] is an optional parameter representing a map of server - /// variables that can be used for substitution in the URL template. - APIServerDescription(this.url, {this.description, this.variables}); - - /// Creates an empty [APIServerDescription] instance. - /// - /// This constructor initializes an [APIServerDescription] object without setting any of its properties. - /// It can be useful when you need to create an instance that will be populated later. - APIServerDescription.empty(); - - /// A URL to the target host. - /// - /// This URL is required and represents the location of the target host. - /// It supports Server Variables and may be relative, indicating that the host - /// location is relative to where the OpenAPI document is being served. - /// - /// Variable substitutions will be made when a variable is named in {brackets}. - /// For example, a URL like "https://{username}.example.com" would allow - /// substitution of the {username} part. - /// - /// This field is crucial for specifying where API requests should be sent. - Uri? url; - - /// An optional string describing the host designated by the URL. - /// - /// This property provides additional information about the server, which can be useful for API consumers. - /// It may include details such as the environment (e.g., production, staging), the purpose of the server, - /// or any specific characteristics. - /// - /// The description can use CommonMark syntax for rich text representation, allowing for formatted text, - /// links, and other markup elements. - /// - /// Example: - /// ``` - /// description: "Production server for the European region" - /// ``` - /// - /// This field is optional and can be null if no description is provided. - String? description; - - /// A map between a variable name and its value. - /// - /// This property represents a mapping of server variable names to their corresponding [APIServerVariable] objects. - /// These variables can be used for substitution in the server's URL template. - /// - /// Each key in the map is a string representing the variable name, and the corresponding value - /// is an [APIServerVariable] object (or null) that defines the properties of that variable. - /// - /// For example, if the server URL is "https://{username}.example.com", the variables map might contain - /// a key "username" with an [APIServerVariable] value that specifies the default username and possible alternatives. - /// - /// This field is optional and can be null if no variables are defined for the server. - Map? variables; - - /// Decodes the [APIServerDescription] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APIServerDescription] - /// instance from the provided [KeyedArchive] object. It performs the following steps: - /// - /// 1. Calls the superclass's decode method to handle any inherited properties. - /// 2. Decodes the 'url' field from the archive and assigns it to the [url] property. - /// 3. Decodes the 'description' field and assigns it to the [description] property. - /// 4. Decodes the 'variables' field as an object map, where each value is an [APIServerVariable]. - /// It uses [APIServerVariable.empty()] as a factory function to create new instances. - /// - /// This method is typically called when deserializing the object from a JSON or similar format. - /// - /// [object] is the [KeyedArchive] containing the encoded data for this object. - @override - void decode(KeyedArchive object) { - super.decode(object); - - url = object.decode("url"); - description = object.decode("description"); - variables = - object.decodeObjectMap("variables", () => APIServerVariable.empty()); - } - - /// Encodes the [APIServerDescription] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APIServerDescription] - /// instance into the provided [KeyedArchive] object. It performs the following steps: - /// - /// 1. Calls the superclass's encode method to handle any inherited properties. - /// 2. Checks if the [url] property is null. If it is, an [ArgumentError] is thrown - /// because the 'url' field is required for a valid [APIServerDescription]. - /// 3. Encodes the [url] property into the archive with the key "url". - /// 4. Encodes the [description] property into the archive with the key "description". - /// 5. Encodes the [variables] property as an object map into the archive with the key "variables". - /// - /// This method is typically called when serializing the object to JSON or a similar format. - /// - /// [object] is the [KeyedArchive] where the encoded data for this object will be stored. - /// - /// Throws an [ArgumentError] if the [url] property is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (url == null) { - throw ArgumentError( - "APIServerDescription must have non-null values for: 'url'.", - ); - } - - object.encode("url", url); - object.encode("description", description); - object.encodeObjectMap("variables", variables); - } -} - -/// An object representing a Server Variable for server URL template substitution. -/// -/// This class extends [APIObject] and represents a variable that can be used -/// in a server URL template. It includes properties for the default value, -/// available values (enum), and an optional description. -/// -/// The [defaultValue] is required and represents the value to be used if no -/// other value is provided. -/// -/// [availableValues] is an optional list of allowed values for the variable. -/// -/// [description] is an optional field providing additional information about -/// the variable. -class APIServerVariable extends APIObject { - /// Creates a new [APIServerVariable] instance. - /// - /// [defaultValue] is a required parameter representing the default value to use for substitution. - /// This value MUST be provided by the consumer. - /// - /// [availableValues] is an optional parameter that provides a list of allowed values for the variable. - /// If provided, it represents an enumeration of string values to be used if the substitution options - /// are from a limited set. - /// - /// [description] is an optional parameter that provides additional information about the server variable. - /// CommonMark syntax MAY be used for rich text representation. - APIServerVariable( - this.defaultValue, { - this.availableValues, - this.description, - }); - - /// Creates an empty [APIServerVariable] instance. - /// - /// This constructor initializes an [APIServerVariable] object without setting any of its properties. - /// It can be useful when you need to create an instance that will be populated later. - APIServerVariable.empty(); - - /// An enumeration of string values to be used if the substitution options are from a limited set. - /// - /// This property represents an optional list of allowed values for the server variable. - /// If provided, it restricts the possible values that can be used for substitution - /// in the server URL template to this specific set of strings. - /// - /// When defined, the variable value used for URL substitution must be one of the values - /// listed in this array. This allows for validation and helps ensure that only - /// pre-defined, valid values are used in the server URL. - /// - /// The list can be null if there are no restrictions on the possible values for the variable. - List? availableValues; - - /// The default value to use for substitution in the server URL template. - /// - /// REQUIRED. Unlike the Schema Object's default, this value MUST be provided by the consumer. - String? defaultValue; - - /// An optional description for the server variable. - /// - /// This property provides additional information about the server variable, - /// which can be helpful for API consumers to understand its purpose or usage. - /// The description can include details such as the expected format of the value, - /// any constraints, or examples of valid inputs. - /// - /// CommonMark syntax MAY be used for rich text representation, allowing for - /// formatted text, links, and other markup elements to enhance readability - /// and provide more detailed explanations. - /// - /// This field is optional and can be null if no description is provided. - /// - /// Example: - /// ``` - /// description: "The username for authentication. Use 'demo' for testing." - /// ``` - String? description; - - /// Decodes the [APIServerVariable] object from a [KeyedArchive]. - /// - /// This method is responsible for populating the properties of the [APIServerVariable] - /// instance from the provided [KeyedArchive] object. It performs the following steps: - /// - /// 1. Calls the superclass's decode method to handle any inherited properties. - /// 2. Decodes the 'enum' field from the archive, casts it to a List, and assigns it to [availableValues]. - /// 3. Decodes the 'default' field and assigns it to the [defaultValue] property. - /// 4. Decodes the 'description' field and assigns it to the [description] property. - /// - /// This method is typically called when deserializing the object from a JSON or similar format. - /// - /// [object] is the [KeyedArchive] containing the encoded data for this object. - @override - void decode(KeyedArchive object) { - super.decode(object); - - final enumMap = object.decode("enum") as List; - availableValues = List.from(enumMap); - defaultValue = object.decode("default"); - description = object.decode("description"); - } - - /// Encodes the [APIServerVariable] object into a [KeyedArchive]. - /// - /// This method is responsible for serializing the properties of the [APIServerVariable] - /// instance into the provided [KeyedArchive] object. It performs the following steps: - /// - /// 1. Calls the superclass's encode method to handle any inherited properties. - /// 2. Checks if the [defaultValue] property is null. If it is, an [ArgumentError] is thrown - /// because the 'defaultValue' field is required for a valid [APIServerVariable]. - /// 3. Encodes the [availableValues] property into the archive with the key "enum". - /// 4. Encodes the [defaultValue] property into the archive with the key "default". - /// 5. Encodes the [description] property into the archive with the key "description". - /// - /// This method is typically called when serializing the object to JSON or a similar format. - /// - /// [object] is the [KeyedArchive] where the encoded data for this object will be stored. - /// - /// Throws an [ArgumentError] if the [defaultValue] property is null. - @override - void encode(KeyedArchive object) { - super.encode(object); - - if (defaultValue == null) { - throw ArgumentError( - "APIServerVariable must have non-null values for: 'defaultValue'.", - ); - } - - object.encode("enum", availableValues); - object.encode("default", defaultValue); - object.encode("description", description); - } -} diff --git a/packages/openapi/lib/src/v3/types.dart b/packages/openapi/lib/src/v3/types.dart deleted file mode 100644 index 50a2652..0000000 --- a/packages/openapi/lib/src/v3/types.dart +++ /dev/null @@ -1,85 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Represents the different data types that can be used in an API. -/// -/// This enumeration defines the following types: -/// - [string]: Represents a sequence of characters. -/// - [number]: Represents a numeric value, which can include decimals. -/// - [integer]: Represents a whole number without decimals. -/// - [boolean]: Represents a true or false value. -/// - [array]: Represents a collection of values. -/// - [object]: Represents a complex data structure with key-value pairs. -enum APIType { string, number, integer, boolean, array, object } - -/// A utility class for encoding and decoding [APIType] values. -/// -/// This class provides static methods to convert between [APIType] enum values -/// and their corresponding string representations. -class APITypeCodec { - /// Decodes a string representation of an [APIType] to its corresponding enum value. - /// - /// This method takes a [String] parameter [type] and returns the corresponding - /// [APIType] enum value. If the input string doesn't match any known type, - /// the method returns null. - /// - /// Parameters: - /// - type: A [String] representing the API type to be decoded. - /// - /// Returns: - /// The corresponding [APIType] enum value, or null if no match is found. - static APIType? decode(String? type) { - switch (type) { - case "string": - return APIType.string; - case "number": - return APIType.number; - case "integer": - return APIType.integer; - case "boolean": - return APIType.boolean; - case "array": - return APIType.array; - case "object": - return APIType.object; - default: - return null; - } - } - - /// Encodes an [APIType] enum value to its corresponding string representation. - /// - /// This method takes an [APIType] parameter [type] and returns the corresponding - /// string representation. If the input type is null or doesn't match any known type, - /// the method returns null. - /// - /// Parameters: - /// - type: An [APIType] enum value to be encoded. - /// - /// Returns: - /// The corresponding [String] representation of the [APIType], or null if the input is null or no match is found. - static String? encode(APIType? type) { - switch (type) { - case APIType.string: - return "string"; - case APIType.number: - return "number"; - case APIType.integer: - return "integer"; - case APIType.boolean: - return "boolean"; - case APIType.array: - return "array"; - case APIType.object: - return "object"; - default: - return null; - } - } -} diff --git a/packages/openapi/lib/util.dart b/packages/openapi/lib/util.dart deleted file mode 100644 index 52ba3a0..0000000 --- a/packages/openapi/lib/util.dart +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Utility library for the Protevus OpenAPI package. -/// -/// This library exports helper functions for working with lists and maps -/// from the Protevus OpenAPI package. It provides convenient access to -/// utility functions that can be used across the application. -/// -/// Exports: -/// - list_helper.dart: Contains functions for list manipulation. -/// - map_helper.dart: Contains functions for map manipulation. -library util; - -export 'package:protevus_openapi/src/util/list_helper.dart'; -export 'package:protevus_openapi/src/util/map_helper.dart'; diff --git a/packages/openapi/lib/v2.dart b/packages/openapi/lib/v2.dart deleted file mode 100644 index d357395..0000000 --- a/packages/openapi/lib/v2.dart +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library exports various components of the Protevus OpenAPI v2 specification. -/// It provides access to classes and utilities for working with OpenAPI v2 documents, -/// including document structure, headers, metadata, operations, parameters, paths, -/// responses, schemas, security definitions, and common types used throughout the API. -library v2; - -export 'package:protevus_openapi/src/v2/document.dart'; -export 'package:protevus_openapi/src/v2/header.dart'; -export 'package:protevus_openapi/src/v2/metadata.dart'; -export 'package:protevus_openapi/src/v2/operation.dart'; -export 'package:protevus_openapi/src/v2/parameter.dart'; -export 'package:protevus_openapi/src/v2/path.dart'; -export 'package:protevus_openapi/src/v2/property.dart'; -export 'package:protevus_openapi/src/v2/response.dart'; -export 'package:protevus_openapi/src/v2/schema.dart'; -export 'package:protevus_openapi/src/v2/security.dart'; -export 'package:protevus_openapi/src/v2/types.dart'; diff --git a/packages/openapi/lib/v3.dart b/packages/openapi/lib/v3.dart deleted file mode 100644 index 9619ee4..0000000 --- a/packages/openapi/lib/v3.dart +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// This library exports various components of the OpenAPI v3 specification. -/// It provides access to essential classes and structures used for defining -/// and working with OpenAPI v3 documents, including callbacks, components, -/// document structure, encodings, headers, media types, metadata, operations, -/// parameters, paths, request bodies, responses, schemas, security definitions, -/// servers, and other related types. -/// -/// By importing this library, users can access all the necessary elements -/// to create, parse, and manipulate OpenAPI v3 specifications in their Dart projects. -library v3; - -export 'package:protevus_openapi/src/v3/callback.dart'; -export 'package:protevus_openapi/src/v3/components.dart'; -export 'package:protevus_openapi/src/v3/document.dart'; -export 'package:protevus_openapi/src/v3/encoding.dart'; -export 'package:protevus_openapi/src/v3/header.dart'; -export 'package:protevus_openapi/src/v3/media_type.dart'; -export 'package:protevus_openapi/src/v3/metadata.dart'; -export 'package:protevus_openapi/src/v3/operation.dart'; -export 'package:protevus_openapi/src/v3/parameter.dart'; -export 'package:protevus_openapi/src/v3/path.dart'; -export 'package:protevus_openapi/src/v3/request_body.dart'; -export 'package:protevus_openapi/src/v3/response.dart'; -export 'package:protevus_openapi/src/v3/schema.dart'; -export 'package:protevus_openapi/src/v3/security.dart'; -export 'package:protevus_openapi/src/v3/server.dart'; -export 'package:protevus_openapi/src/v3/types.dart'; diff --git a/packages/openapi/pubspec.yaml b/packages/openapi/pubspec.yaml deleted file mode 100644 index 2da5a1b..0000000 --- a/packages/openapi/pubspec.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: protevus_openapi -description: Data structures for OpenAPI (Swagger) specification. Reads and writes JSON specifications. -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.3 - -# Add regular dependencies here. -dependencies: - protevus_typeforge: ^0.0.1 - meta: ^1.12.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/openapi/test/specs/kubernetes.json b/packages/openapi/test/specs/kubernetes.json deleted file mode 100644 index 390902a..0000000 --- a/packages/openapi/test/specs/kubernetes.json +++ /dev/null @@ -1,88145 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Kubernetes", - "version": "v1.12.0" - }, - "paths": { - "/api/": { - "get": { - "description": "get available API versions", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core" - ], - "operationId": "getCoreAPIVersions", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/api/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "getCoreV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/api/v1/componentstatuses": { - "get": { - "description": "list objects of kind ComponentStatus", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ComponentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/componentstatuses/{name}": { - "get": { - "description": "read the specified ComponentStatus", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1ComponentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ComponentStatus", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/configmaps": { - "get": { - "description": "list or watch objects of kind ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ConfigMapForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/endpoints": { - "get": { - "description": "list or watch objects of kind Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1EndpointsForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/events": { - "get": { - "description": "list or watch objects of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1EventForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/limitranges": { - "get": { - "description": "list or watch objects of kind LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1LimitRangeForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/namespaces": { - "get": { - "description": "list or watch objects of kind Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1Namespace", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "post": { - "description": "create a Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/bindings": { - "post": { - "description": "create a Binding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/configmaps": { - "get": { - "description": "list or watch objects of kind ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedConfigMap", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "post": { - "description": "create a ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedConfigMap", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/configmaps/{name}": { - "get": { - "description": "read the specified ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedConfigMap", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "delete": { - "description": "delete a ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ConfigMap", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedConfigMap", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ConfigMap", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/endpoints": { - "get": { - "description": "list or watch objects of kind Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedEndpoints", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "post": { - "description": "create Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedEndpoints", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedEndpoints", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/endpoints/{name}": { - "get": { - "description": "read the specified Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedEndpoints", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedEndpoints", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "delete": { - "description": "delete Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedEndpoints", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Endpoints", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedEndpoints", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Endpoints", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/events": { - "get": { - "description": "list or watch objects of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "post": { - "description": "create an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/events/{name}": { - "get": { - "description": "read the specified Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "delete": { - "description": "delete an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Event", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Event", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/limitranges": { - "get": { - "description": "list or watch objects of kind LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedLimitRange", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "post": { - "description": "create a LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedLimitRange", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedLimitRange", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/limitranges/{name}": { - "get": { - "description": "read the specified LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedLimitRange", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "put": { - "description": "replace the specified LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedLimitRange", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "delete": { - "description": "delete a LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedLimitRange", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified LimitRange", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedLimitRange", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the LimitRange", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "description": "list or watch objects of kind PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "post": { - "description": "create a PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedPersistentVolumeClaim", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "description": "read the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "description": "replace the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "delete": { - "description": "delete a PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified PersistentVolumeClaim", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedPersistentVolumeClaim", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolumeClaim", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status": { - "get": { - "description": "read status of the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPersistentVolumeClaimStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified PersistentVolumeClaim", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedPersistentVolumeClaimStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolumeClaim", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods": { - "get": { - "description": "list or watch objects of kind Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedPod", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "post": { - "description": "create a Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedPod", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedPod", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}": { - "get": { - "description": "read the specified Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPod", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPod", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "delete": { - "description": "delete a Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedPod", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Pod", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedPod", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/attach": { - "get": { - "description": "connect GET requests to attach of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedPodAttach", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to attach of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedPodAttach", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "name": "container", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.", - "name": "stderr", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.", - "name": "stdin", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.", - "name": "stdout", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.", - "name": "tty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/binding": { - "post": { - "description": "create binding of a Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedPodBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Binding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Binding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/eviction": { - "post": { - "description": "create eviction of a Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedPodEviction", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Eviction", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/exec": { - "get": { - "description": "connect GET requests to exec of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedPodExec", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to exec of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedPodExec", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "Command is the remote command to execute. argv array. Not executed within a shell.", - "name": "command", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Container in which to execute the command. Defaults to only container if there is only one container in the pod.", - "name": "container", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Redirect the standard error stream of the pod for this call. Defaults to true.", - "name": "stderr", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Redirect the standard input stream of the pod for this call. Defaults to false.", - "name": "stdin", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Redirect the standard output stream of the pod for this call. Defaults to true.", - "name": "stdout", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.", - "name": "tty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/log": { - "get": { - "description": "read log of the specified Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "text/plain", - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPodLog", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The container for which to stream logs. Defaults to only container if there is one container in the pod.", - "name": "container", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Follow the log stream of the pod. Defaults to false.", - "name": "follow", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.", - "name": "limitBytes", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Return previous terminated container logs. Defaults to false.", - "name": "previous", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.", - "name": "sinceSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime", - "name": "tailLines", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.", - "name": "timestamps", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/portforward": { - "get": { - "description": "connect GET requests to portforward of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedPodPortforward", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to portforward of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedPodPortforward", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "integer", - "description": "List of ports to forward Required when using WebSockets", - "name": "ports", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy": { - "get": { - "description": "connect GET requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "description": "connect PUT requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PutNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "delete": { - "description": "connect DELETE requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1DeleteNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "options": { - "description": "connect OPTIONS requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1OptionsNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "head": { - "description": "connect HEAD requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1HeadNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "patch": { - "description": "connect PATCH requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PatchNamespacedPodProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "Path is the URL path to use for the current proxy request to pod.", - "name": "path", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/proxy/{path}": { - "get": { - "description": "connect GET requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "description": "connect PUT requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PutNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "delete": { - "description": "connect DELETE requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1DeleteNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "options": { - "description": "connect OPTIONS requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1OptionsNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "head": { - "description": "connect HEAD requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1HeadNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "patch": { - "description": "connect PATCH requests to proxy of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PatchNamespacedPodProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "path to the resource", - "name": "path", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "Path is the URL path to use for the current proxy request to pod.", - "name": "path", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/pods/{name}/status": { - "get": { - "description": "read status of the specified Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPodStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPodStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Pod", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedPodStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/podtemplates": { - "get": { - "description": "list or watch objects of kind PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedPodTemplate", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "post": { - "description": "create a PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedPodTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedPodTemplate", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "description": "read the specified PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedPodTemplate", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "put": { - "description": "replace the specified PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedPodTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "delete": { - "description": "delete a PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedPodTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified PodTemplate", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedPodTemplate", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodTemplate", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers": { - "get": { - "description": "list or watch objects of kind ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedReplicationController", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "post": { - "description": "create a ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedReplicationController", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedReplicationController", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "description": "read the specified ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedReplicationController", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedReplicationController", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "delete": { - "description": "delete a ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedReplicationController", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ReplicationController", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedReplicationController", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicationController", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "description": "read scale of the specified ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedReplicationControllerScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "description": "replace scale of the specified ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicationController", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedReplicationControllerScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status": { - "get": { - "description": "read status of the specified ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedReplicationControllerStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified ReplicationController", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedReplicationControllerStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicationController", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/resourcequotas": { - "get": { - "description": "list or watch objects of kind ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedResourceQuota", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "post": { - "description": "create a ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedResourceQuota", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedResourceQuota", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "description": "read the specified ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedResourceQuota", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedResourceQuota", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "delete": { - "description": "delete a ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedResourceQuota", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ResourceQuota", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedResourceQuota", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ResourceQuota", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/resourcequotas/{name}/status": { - "get": { - "description": "read status of the specified ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedResourceQuotaStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified ResourceQuota", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedResourceQuotaStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ResourceQuota", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/secrets": { - "get": { - "description": "list or watch objects of kind Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedSecret", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "post": { - "description": "create a Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedSecret", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/secrets/{name}": { - "get": { - "description": "read the specified Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedSecret", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "delete": { - "description": "delete a Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Secret", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedSecret", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Secret", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/serviceaccounts": { - "get": { - "description": "list or watch objects of kind ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedServiceAccount", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "post": { - "description": "create a ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedServiceAccount", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNamespacedServiceAccount", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "description": "read the specified ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedServiceAccount", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedServiceAccount", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "delete": { - "description": "delete a ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedServiceAccount", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ServiceAccount", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedServiceAccount", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ServiceAccount", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services": { - "get": { - "description": "list or watch objects of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1NamespacedService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "post": { - "description": "create a Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services/{name}": { - "get": { - "description": "read the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedService", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "delete": { - "description": "delete a Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Service", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy": { - "get": { - "description": "connect GET requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "description": "connect PUT requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PutNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "delete": { - "description": "connect DELETE requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1DeleteNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "options": { - "description": "connect OPTIONS requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1OptionsNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "head": { - "description": "connect HEAD requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1HeadNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "patch": { - "description": "connect PATCH requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PatchNamespacedServiceProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "name": "path", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services/{name}/proxy/{path}": { - "get": { - "description": "connect GET requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "description": "connect PUT requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PutNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "delete": { - "description": "connect DELETE requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1DeleteNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "options": { - "description": "connect OPTIONS requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1OptionsNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "head": { - "description": "connect HEAD requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1HeadNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "patch": { - "description": "connect PATCH requests to proxy of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PatchNamespacedServiceProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "path to the resource", - "name": "path", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.", - "name": "path", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{namespace}/services/{name}/status": { - "get": { - "description": "read status of the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespacedServiceStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespacedServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Service", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespacedServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{name}": { - "get": { - "description": "read the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1Namespace", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "delete": { - "description": "delete a Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Namespace", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1Namespace", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{name}/finalize": { - "put": { - "description": "replace finalize of the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespaceFinalize", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/namespaces/{name}/status": { - "get": { - "description": "read status of the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NamespaceStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NamespaceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Namespace", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NamespaceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/nodes": { - "get": { - "description": "list or watch objects of kind Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1Node", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "post": { - "description": "create a Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1Node", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionNode", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/nodes/{name}": { - "get": { - "description": "read the specified Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1Node", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1Node", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "delete": { - "description": "delete a Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1Node", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Node", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1Node", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Node", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/nodes/{name}/proxy": { - "get": { - "description": "connect GET requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "description": "connect PUT requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PutNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "delete": { - "description": "connect DELETE requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1DeleteNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "options": { - "description": "connect OPTIONS requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1OptionsNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "head": { - "description": "connect HEAD requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1HeadNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "patch": { - "description": "connect PATCH requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PatchNodeProxy", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Node", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "Path is the URL path to use for the current proxy request to node.", - "name": "path", - "in": "query" - } - ] - }, - "/api/v1/nodes/{name}/proxy/{path}": { - "get": { - "description": "connect GET requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1GetNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "description": "connect PUT requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PutNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "post": { - "description": "connect POST requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PostNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "delete": { - "description": "connect DELETE requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1DeleteNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "options": { - "description": "connect OPTIONS requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1OptionsNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "head": { - "description": "connect HEAD requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1HeadNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "patch": { - "description": "connect PATCH requests to proxy of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "*/*" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "connectCoreV1PatchNodeProxyWithPath", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "connect", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Node", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "path to the resource", - "name": "path", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "Path is the URL path to use for the current proxy request to node.", - "name": "path", - "in": "query" - } - ] - }, - "/api/v1/nodes/{name}/status": { - "get": { - "description": "read status of the specified Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1NodeStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1NodeStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Node", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1NodeStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Node", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/persistentvolumeclaims": { - "get": { - "description": "list or watch objects of kind PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1PersistentVolumeClaimForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/persistentvolumes": { - "get": { - "description": "list or watch objects of kind PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1PersistentVolume", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "post": { - "description": "create a PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "createCoreV1PersistentVolume", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1CollectionPersistentVolume", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/persistentvolumes/{name}": { - "get": { - "description": "read the specified PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1PersistentVolume", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "description": "replace the specified PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1PersistentVolume", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "delete": { - "description": "delete a PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "deleteCoreV1PersistentVolume", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified PersistentVolume", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1PersistentVolume", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolume", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/persistentvolumes/{name}/status": { - "get": { - "description": "read status of the specified PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "readCoreV1PersistentVolumeStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "replaceCoreV1PersistentVolumeStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified PersistentVolume", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "patchCoreV1PersistentVolumeStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolume", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/api/v1/pods": { - "get": { - "description": "list or watch objects of kind Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1PodForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/podtemplates": { - "get": { - "description": "list or watch objects of kind PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1PodTemplateForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/replicationcontrollers": { - "get": { - "description": "list or watch objects of kind ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ReplicationControllerForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/resourcequotas": { - "get": { - "description": "list or watch objects of kind ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ResourceQuotaForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/secrets": { - "get": { - "description": "list or watch objects of kind Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1SecretForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/serviceaccounts": { - "get": { - "description": "list or watch objects of kind ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ServiceAccountForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/services": { - "get": { - "description": "list or watch objects of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "listCoreV1ServiceForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/configmaps": { - "get": { - "description": "watch individual changes to a list of ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ConfigMapListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/endpoints": { - "get": { - "description": "watch individual changes to a list of Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1EndpointsListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/events": { - "get": { - "description": "watch individual changes to a list of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1EventListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/limitranges": { - "get": { - "description": "watch individual changes to a list of LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1LimitRangeListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces": { - "get": { - "description": "watch individual changes to a list of Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespaceList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps": { - "get": { - "description": "watch individual changes to a list of ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedConfigMapList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/configmaps/{name}": { - "get": { - "description": "watch changes to an object of kind ConfigMap", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedConfigMap", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ConfigMap", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints": { - "get": { - "description": "watch individual changes to a list of Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedEndpointsList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/endpoints/{name}": { - "get": { - "description": "watch changes to an object of kind Endpoints", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedEndpoints", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Endpoints", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events": { - "get": { - "description": "watch individual changes to a list of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedEventList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "description": "watch changes to an object of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedEvent", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Event", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Event", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges": { - "get": { - "description": "watch individual changes to a list of LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedLimitRangeList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/limitranges/{name}": { - "get": { - "description": "watch changes to an object of kind LimitRange", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedLimitRange", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the LimitRange", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims": { - "get": { - "description": "watch individual changes to a list of PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedPersistentVolumeClaimList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/persistentvolumeclaims/{name}": { - "get": { - "description": "watch changes to an object of kind PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedPersistentVolumeClaim", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolumeClaim", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods": { - "get": { - "description": "watch individual changes to a list of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedPodList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/pods/{name}": { - "get": { - "description": "watch changes to an object of kind Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedPod", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Pod", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates": { - "get": { - "description": "watch individual changes to a list of PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedPodTemplateList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/podtemplates/{name}": { - "get": { - "description": "watch changes to an object of kind PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedPodTemplate", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodTemplate", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers": { - "get": { - "description": "watch individual changes to a list of ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedReplicationControllerList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedReplicationController", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicationController", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas": { - "get": { - "description": "watch individual changes to a list of ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedResourceQuotaList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/resourcequotas/{name}": { - "get": { - "description": "watch changes to an object of kind ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedResourceQuota", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ResourceQuota", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets": { - "get": { - "description": "watch individual changes to a list of Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedSecretList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/secrets/{name}": { - "get": { - "description": "watch changes to an object of kind Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedSecret", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Secret", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts": { - "get": { - "description": "watch individual changes to a list of ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedServiceAccountList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/serviceaccounts/{name}": { - "get": { - "description": "watch changes to an object of kind ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedServiceAccount", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ServiceAccount", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services": { - "get": { - "description": "watch individual changes to a list of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedServiceList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{namespace}/services/{name}": { - "get": { - "description": "watch changes to an object of kind Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NamespacedService", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Service", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/namespaces/{name}": { - "get": { - "description": "watch changes to an object of kind Namespace", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1Namespace", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Namespace", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Namespace", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/nodes": { - "get": { - "description": "watch individual changes to a list of Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1NodeList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/nodes/{name}": { - "get": { - "description": "watch changes to an object of kind Node", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1Node", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Node", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Node", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/persistentvolumeclaims": { - "get": { - "description": "watch individual changes to a list of PersistentVolumeClaim", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1PersistentVolumeClaimListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/persistentvolumes": { - "get": { - "description": "watch individual changes to a list of PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1PersistentVolumeList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/persistentvolumes/{name}": { - "get": { - "description": "watch changes to an object of kind PersistentVolume", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1PersistentVolume", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PersistentVolume", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/pods": { - "get": { - "description": "watch individual changes to a list of Pod", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1PodListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Pod", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/podtemplates": { - "get": { - "description": "watch individual changes to a list of PodTemplate", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1PodTemplateListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/replicationcontrollers": { - "get": { - "description": "watch individual changes to a list of ReplicationController", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ReplicationControllerListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/resourcequotas": { - "get": { - "description": "watch individual changes to a list of ResourceQuota", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ResourceQuotaListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/secrets": { - "get": { - "description": "watch individual changes to a list of Secret", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1SecretListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Secret", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/serviceaccounts": { - "get": { - "description": "watch individual changes to a list of ServiceAccount", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ServiceAccountListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/api/v1/watch/services": { - "get": { - "description": "watch individual changes to a list of Service", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "core_v1" - ], - "operationId": "watchCoreV1ServiceListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "", - "kind": "Service", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/": { - "get": { - "description": "get available API versions", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apis" - ], - "operationId": "getAPIVersions", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/admissionregistration.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration" - ], - "operationId": "getAdmissionregistrationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/admissionregistration.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "getAdmissionregistrationV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations": { - "get": { - "description": "list or watch objects of kind InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "listAdmissionregistrationV1alpha1InitializerConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "post": { - "description": "create an InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "createAdmissionregistrationV1alpha1InitializerConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "deleteAdmissionregistrationV1alpha1CollectionInitializerConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1alpha1/initializerconfigurations/{name}": { - "get": { - "description": "read the specified InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "readAdmissionregistrationV1alpha1InitializerConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "replaceAdmissionregistrationV1alpha1InitializerConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete an InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "deleteAdmissionregistrationV1alpha1InitializerConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified InitializerConfiguration", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "patchAdmissionregistrationV1alpha1InitializerConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the InitializerConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations": { - "get": { - "description": "watch individual changes to a list of InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "watchAdmissionregistrationV1alpha1InitializerConfigurationList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1alpha1/watch/initializerconfigurations/{name}": { - "get": { - "description": "watch changes to an object of kind InitializerConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1alpha1" - ], - "operationId": "watchAdmissionregistrationV1alpha1InitializerConfiguration", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the InitializerConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "getAdmissionregistrationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations": { - "get": { - "description": "list or watch objects of kind MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "listAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "post": { - "description": "create a MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "createAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "deleteAdmissionregistrationV1beta1CollectionMutatingWebhookConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/mutatingwebhookconfigurations/{name}": { - "get": { - "description": "read the specified MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "readAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "replaceAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "deleteAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified MutatingWebhookConfiguration", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "patchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the MutatingWebhookConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations": { - "get": { - "description": "list or watch objects of kind ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "listAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "post": { - "description": "create a ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "createAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "deleteAdmissionregistrationV1beta1CollectionValidatingWebhookConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/validatingwebhookconfigurations/{name}": { - "get": { - "description": "read the specified ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "readAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "replaceAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "deleteAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified ValidatingWebhookConfiguration", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "patchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ValidatingWebhookConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations": { - "get": { - "description": "watch individual changes to a list of MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfigurationList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/mutatingwebhookconfigurations/{name}": { - "get": { - "description": "watch changes to an object of kind MutatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "watchAdmissionregistrationV1beta1MutatingWebhookConfiguration", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the MutatingWebhookConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations": { - "get": { - "description": "watch individual changes to a list of ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfigurationList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/admissionregistration.k8s.io/v1beta1/watch/validatingwebhookconfigurations/{name}": { - "get": { - "description": "watch changes to an object of kind ValidatingWebhookConfiguration", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "admissionregistration_v1beta1" - ], - "operationId": "watchAdmissionregistrationV1beta1ValidatingWebhookConfiguration", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ValidatingWebhookConfiguration", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiextensions.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions" - ], - "operationId": "getApiextensionsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "getApiextensionsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions": { - "get": { - "description": "list or watch objects of kind CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "listApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "post": { - "description": "create a CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "createApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "deleteApiextensionsV1beta1CollectionCustomResourceDefinition", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}": { - "get": { - "description": "read the specified CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "readApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "deleteApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified CustomResourceDefinition", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "patchApiextensionsV1beta1CustomResourceDefinition", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CustomResourceDefinition", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/{name}/status": { - "get": { - "description": "read status of the specified CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "readApiextensionsV1beta1CustomResourceDefinitionStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "replaceApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified CustomResourceDefinition", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "patchApiextensionsV1beta1CustomResourceDefinitionStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CustomResourceDefinition", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions": { - "get": { - "description": "watch individual changes to a list of CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "watchApiextensionsV1beta1CustomResourceDefinitionList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiextensions.k8s.io/v1beta1/watch/customresourcedefinitions/{name}": { - "get": { - "description": "watch changes to an object of kind CustomResourceDefinition", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiextensions_v1beta1" - ], - "operationId": "watchApiextensionsV1beta1CustomResourceDefinition", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the CustomResourceDefinition", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration" - ], - "operationId": "getApiregistrationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiregistration.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "getApiregistrationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiregistration.k8s.io/v1/apiservices": { - "get": { - "description": "list or watch objects of kind APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "listApiregistrationV1APIService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "post": { - "description": "create an APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "createApiregistrationV1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "deleteApiregistrationV1CollectionAPIService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}": { - "get": { - "description": "read the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "readApiregistrationV1APIService", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "description": "replace the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "replaceApiregistrationV1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "delete": { - "description": "delete an APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "deleteApiregistrationV1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified APIService", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "patchApiregistrationV1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the APIService", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1/apiservices/{name}/status": { - "get": { - "description": "read status of the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "readApiregistrationV1APIServiceStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "replaceApiregistrationV1APIServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified APIService", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "patchApiregistrationV1APIServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the APIService", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices": { - "get": { - "description": "watch individual changes to a list of APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "watchApiregistrationV1APIServiceList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1/watch/apiservices/{name}": { - "get": { - "description": "watch changes to an object of kind APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1" - ], - "operationId": "watchApiregistrationV1APIService", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the APIService", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "getApiregistrationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices": { - "get": { - "description": "list or watch objects of kind APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "listApiregistrationV1beta1APIService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "post": { - "description": "create an APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "createApiregistrationV1beta1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "deleteApiregistrationV1beta1CollectionAPIService", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}": { - "get": { - "description": "read the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "readApiregistrationV1beta1APIService", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "replaceApiregistrationV1beta1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete an APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "deleteApiregistrationV1beta1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified APIService", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "patchApiregistrationV1beta1APIService", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the APIService", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/apiservices/{name}/status": { - "get": { - "description": "read status of the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "readApiregistrationV1beta1APIServiceStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "replaceApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified APIService", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "patchApiregistrationV1beta1APIServiceStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the APIService", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices": { - "get": { - "description": "watch individual changes to a list of APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "watchApiregistrationV1beta1APIServiceList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apiregistration.k8s.io/v1beta1/watch/apiservices/{name}": { - "get": { - "description": "watch changes to an object of kind APIService", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apiregistration_v1beta1" - ], - "operationId": "watchApiregistrationV1beta1APIService", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the APIService", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps" - ], - "operationId": "getAppsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apps/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "getAppsV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apps/v1/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1ControllerRevisionForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1DaemonSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1DeploymentForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "post": { - "description": "create a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1CollectionNamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "read the specified ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "delete": { - "description": "delete a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ControllerRevision", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "post": { - "description": "create a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1CollectionNamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "read the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "description": "replace the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "delete": { - "description": "delete a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "description": "read status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedDaemonSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "read the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "delete": { - "description": "delete a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "description": "read scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedDeploymentScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "patch": { - "description": "partially update scale of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "description": "read status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedDeploymentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "post": { - "description": "create a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1CollectionNamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "read the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "delete": { - "description": "delete a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "description": "read scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedReplicaSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "description": "replace scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "description": "read status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedReplicaSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "createAppsV1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1CollectionNamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "read the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "description": "replace the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "delete": { - "description": "delete a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "deleteAppsV1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "description": "read scale of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedStatefulSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "put": { - "description": "replace scale of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "patch": { - "description": "partially update scale of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "description": "read status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "readAppsV1NamespacedStatefulSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "replaceAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "patchAppsV1NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1ReplicaSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "listAppsV1StatefulSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1ControllerRevisionListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1DaemonSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1DeploymentListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedControllerRevisionList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "watch changes to an object of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedControllerRevision", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedDaemonSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "watch changes to an object of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedDaemonSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedDeploymentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedDeployment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedReplicaSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedReplicaSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedStatefulSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "watch changes to an object of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1NamespacedStatefulSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1ReplicaSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1/watch/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1" - ], - "operationId": "watchAppsV1StatefulSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "getAppsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apps/v1beta1/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "listAppsV1beta1ControllerRevisionForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "listAppsV1beta1DeploymentForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "listAppsV1beta1NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "post": { - "description": "create a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "deleteAppsV1beta1CollectionNamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "read the specified ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "deleteAppsV1beta1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified ControllerRevision", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "listAppsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "deleteAppsV1beta1CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "read the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "deleteAppsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { - "post": { - "description": "create rollback of a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1NamespacedDeploymentRollback", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DeploymentRollback", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DeploymentRollback", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "description": "read scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedDeploymentScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "description": "read status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedDeploymentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "listAppsV1beta1NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "createAppsV1beta1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "deleteAppsV1beta1CollectionNamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "read the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "deleteAppsV1beta1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "description": "read scale of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedStatefulSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "description": "read status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "readAppsV1beta1NamespacedStatefulSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "replaceAppsV1beta1NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "patchAppsV1beta1NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "listAppsV1beta1StatefulSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1ControllerRevisionListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1DeploymentListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1NamespacedControllerRevisionList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "watch changes to an object of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1NamespacedControllerRevision", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1NamespacedDeploymentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1NamespacedDeployment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1NamespacedStatefulSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "watch changes to an object of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1NamespacedStatefulSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta1/watch/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta1" - ], - "operationId": "watchAppsV1beta1StatefulSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "getAppsV1beta2APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/apps/v1beta2/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2ControllerRevisionForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2DaemonSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2DeploymentForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "list or watch objects of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevisionList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "post": { - "description": "create a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "read the specified ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "put": { - "description": "replace the specified ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete a ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update the specified ControllerRevision", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedControllerRevision", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "post": { - "description": "create a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "read the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "description": "read status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDaemonSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update status of the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "read the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "description": "read scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDeploymentScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update scale of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "description": "read status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedDeploymentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "put": { - "description": "replace status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update status of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "post": { - "description": "create a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "read the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "description": "read scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedReplicaSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "put": { - "description": "replace scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "description": "read status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedReplicaSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update status of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "post": { - "description": "create a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete collection of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2CollectionNamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "read the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "delete": { - "description": "delete a StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "deleteAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedStatefulSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale": { - "get": { - "description": "read scale of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedStatefulSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "put": { - "description": "replace scale of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update scale of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedStatefulSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status": { - "get": { - "description": "read status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "readAppsV1beta2NamespacedStatefulSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "put": { - "description": "replace status of the specified StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "replaceAppsV1beta2NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "patch": { - "description": "partially update status of the specified StatefulSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "patchAppsV1beta2NamespacedStatefulSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2ReplicaSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/statefulsets": { - "get": { - "description": "list or watch objects of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "listAppsV1beta2StatefulSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2ControllerRevisionListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2DaemonSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2DeploymentListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions": { - "get": { - "description": "watch individual changes to a list of ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedControllerRevisionList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/controllerrevisions/{name}": { - "get": { - "description": "watch changes to an object of kind ControllerRevision", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedControllerRevision", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ControllerRevision", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedDaemonSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "watch changes to an object of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedDaemonSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedDeploymentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedDeployment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedReplicaSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedReplicaSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedStatefulSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/namespaces/{namespace}/statefulsets/{name}": { - "get": { - "description": "watch changes to an object of kind StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2NamespacedStatefulSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StatefulSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2ReplicaSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/apps/v1beta2/watch/statefulsets": { - "get": { - "description": "watch individual changes to a list of StatefulSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "watchAppsV1beta2StatefulSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/authentication.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication" - ], - "operationId": "getAuthenticationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authentication.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "operationId": "getAuthenticationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authentication.k8s.io/v1/tokenreviews": { - "post": { - "description": "create a TokenReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1" - ], - "operationId": "createAuthenticationV1TokenReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authentication.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "operationId": "getAuthenticationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authentication.k8s.io/v1beta1/tokenreviews": { - "post": { - "description": "create a TokenReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authentication_v1beta1" - ], - "operationId": "createAuthenticationV1beta1TokenReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization" - ], - "operationId": "getAuthorizationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authorization.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "getAuthorizationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authorization.k8s.io/v1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/selfsubjectaccessreviews": { - "post": { - "description": "create a SelfSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1SelfSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1SelfSubjectRulesReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1/subjectaccessreviews": { - "post": { - "description": "create a SubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1" - ], - "operationId": "createAuthorizationV1SubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "getAuthorizationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/authorization.k8s.io/v1beta1/namespaces/{namespace}/localsubjectaccessreviews": { - "post": { - "description": "create a LocalSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1NamespacedLocalSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectaccessreviews": { - "post": { - "description": "create a SelfSubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1SelfSubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/selfsubjectrulesreviews": { - "post": { - "description": "create a SelfSubjectRulesReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1SelfSubjectRulesReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/authorization.k8s.io/v1beta1/subjectaccessreviews": { - "post": { - "description": "create a SubjectAccessReview", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "authorization_v1beta1" - ], - "operationId": "createAuthorizationV1beta1SubjectAccessReview", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling" - ], - "operationId": "getAutoscalingAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/autoscaling/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "getAutoscalingV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/autoscaling/v1/horizontalpodautoscalers": { - "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "listAutoscalingV1HorizontalPodAutoscalerForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "listAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "post": { - "description": "create a HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "createAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "deleteAutoscalingV1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "description": "read the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "description": "replace the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "delete": { - "description": "delete a HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "deleteAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified HorizontalPodAutoscaler", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "description": "read status of the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "readAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "replaceAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified HorizontalPodAutoscaler", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "patchAutoscalingV1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/watch/horizontalpodautoscalers": { - "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "watchAutoscalingV1HorizontalPodAutoscalerListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscalerList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "description": "watch changes to an object of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v1" - ], - "operationId": "watchAutoscalingV1NamespacedHorizontalPodAutoscaler", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "getAutoscalingV2beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/autoscaling/v2beta1/horizontalpodautoscalers": { - "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "listAutoscalingV2beta1HorizontalPodAutoscalerForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "description": "list or watch objects of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "listAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "post": { - "description": "create a HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "createAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "delete": { - "description": "delete collection of HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "deleteAutoscalingV2beta1CollectionNamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "description": "read the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "description": "replace the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "delete": { - "description": "delete a HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "deleteAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "patch": { - "description": "partially update the specified HorizontalPodAutoscaler", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/namespaces/{namespace}/horizontalpodautoscalers/{name}/status": { - "get": { - "description": "read status of the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "readAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "put": { - "description": "replace status of the specified HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "replaceAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "patch": { - "description": "partially update status of the specified HorizontalPodAutoscaler", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "patchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/watch/horizontalpodautoscalers": { - "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "watchAutoscalingV2beta1HorizontalPodAutoscalerListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers": { - "get": { - "description": "watch individual changes to a list of HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscalerList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/autoscaling/v2beta1/watch/namespaces/{namespace}/horizontalpodautoscalers/{name}": { - "get": { - "description": "watch changes to an object of kind HorizontalPodAutoscaler", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "autoscaling_v2beta1" - ], - "operationId": "watchAutoscalingV2beta1NamespacedHorizontalPodAutoscaler", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the HorizontalPodAutoscaler", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch" - ], - "operationId": "getBatchAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/batch/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "getBatchV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/batch/v1/jobs": { - "get": { - "description": "list or watch objects of kind Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "listBatchV1JobForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs": { - "get": { - "description": "list or watch objects of kind Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "listBatchV1NamespacedJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "post": { - "description": "create a Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "createBatchV1NamespacedJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "deleteBatchV1CollectionNamespacedJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}": { - "get": { - "description": "read the specified Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "readBatchV1NamespacedJob", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "replaceBatchV1NamespacedJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "delete": { - "description": "delete a Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "deleteBatchV1NamespacedJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Job", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "patchBatchV1NamespacedJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Job", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v1/namespaces/{namespace}/jobs/{name}/status": { - "get": { - "description": "read status of the specified Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "readBatchV1NamespacedJobStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "put": { - "description": "replace status of the specified Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "replaceBatchV1NamespacedJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "patch": { - "description": "partially update status of the specified Job", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "patchBatchV1NamespacedJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Job", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v1/watch/jobs": { - "get": { - "description": "watch individual changes to a list of Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "watchBatchV1JobListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs": { - "get": { - "description": "watch individual changes to a list of Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "watchBatchV1NamespacedJobList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1/watch/namespaces/{namespace}/jobs/{name}": { - "get": { - "description": "watch changes to an object of kind Job", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1" - ], - "operationId": "watchBatchV1NamespacedJob", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "Job", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Job", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "getBatchV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/batch/v1beta1/cronjobs": { - "get": { - "description": "list or watch objects of kind CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "listBatchV1beta1CronJobForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs": { - "get": { - "description": "list or watch objects of kind CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "listBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "post": { - "description": "create a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "createBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "deleteBatchV1beta1CollectionNamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "description": "read the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "readBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "replaceBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "deleteBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "patchBatchV1beta1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "description": "read status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "readBatchV1beta1NamespacedCronJobStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "replaceBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "patchBatchV1beta1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/watch/cronjobs": { - "get": { - "description": "watch individual changes to a list of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "watchBatchV1beta1CronJobListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "description": "watch individual changes to a list of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "watchBatchV1beta1NamespacedCronJobList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "description": "watch changes to an object of kind CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v1beta1" - ], - "operationId": "watchBatchV1beta1NamespacedCronJob", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "getBatchV2alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/batch/v2alpha1/cronjobs": { - "get": { - "description": "list or watch objects of kind CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "listBatchV2alpha1CronJobForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs": { - "get": { - "description": "list or watch objects of kind CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "listBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "post": { - "description": "create a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "createBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "delete": { - "description": "delete collection of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "deleteBatchV2alpha1CollectionNamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "description": "read the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "readBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "put": { - "description": "replace the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "replaceBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "delete": { - "description": "delete a CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "deleteBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "patch": { - "description": "partially update the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "patchBatchV2alpha1NamespacedCronJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/namespaces/{namespace}/cronjobs/{name}/status": { - "get": { - "description": "read status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "readBatchV2alpha1NamespacedCronJobStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "put": { - "description": "replace status of the specified CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "replaceBatchV2alpha1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "patch": { - "description": "partially update status of the specified CronJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "patchBatchV2alpha1NamespacedCronJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/watch/cronjobs": { - "get": { - "description": "watch individual changes to a list of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "watchBatchV2alpha1CronJobListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs": { - "get": { - "description": "watch individual changes to a list of CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "watchBatchV2alpha1NamespacedCronJobList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs/{name}": { - "get": { - "description": "watch changes to an object of kind CronJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "watchBatchV2alpha1NamespacedCronJob", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the CronJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/certificates.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates" - ], - "operationId": "getCertificatesAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/certificates.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "getCertificatesV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests": { - "get": { - "description": "list or watch objects of kind CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "listCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "post": { - "description": "create a CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "createCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "deleteCertificatesV1beta1CollectionCertificateSigningRequest", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}": { - "get": { - "description": "read the specified CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "readCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "replaceCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "deleteCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified CertificateSigningRequest", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "patchCertificatesV1beta1CertificateSigningRequest", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/approval": { - "put": { - "description": "replace approval of the specified CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestApproval", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/certificatesigningrequests/{name}/status": { - "get": { - "description": "read status of the specified CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "readCertificatesV1beta1CertificateSigningRequestStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "replaceCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified CertificateSigningRequest", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "patchCertificatesV1beta1CertificateSigningRequestStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests": { - "get": { - "description": "watch individual changes to a list of CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "watchCertificatesV1beta1CertificateSigningRequestList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/certificates.k8s.io/v1beta1/watch/certificatesigningrequests/{name}": { - "get": { - "description": "watch changes to an object of kind CertificateSigningRequest", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "certificates_v1beta1" - ], - "operationId": "watchCertificatesV1beta1CertificateSigningRequest", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the CertificateSigningRequest", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/events.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events" - ], - "operationId": "getEventsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/events.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "getEventsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/events.k8s.io/v1beta1/events": { - "get": { - "description": "list or watch objects of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "listEventsV1beta1EventForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events": { - "get": { - "description": "list or watch objects of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "listEventsV1beta1NamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "post": { - "description": "create an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "createEventsV1beta1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "deleteEventsV1beta1CollectionNamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/events.k8s.io/v1beta1/namespaces/{namespace}/events/{name}": { - "get": { - "description": "read the specified Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "readEventsV1beta1NamespacedEvent", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "replaceEventsV1beta1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete an Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "deleteEventsV1beta1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified Event", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "patchEventsV1beta1NamespacedEvent", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Event", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/events": { - "get": { - "description": "watch individual changes to a list of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "watchEventsV1beta1EventListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events": { - "get": { - "description": "watch individual changes to a list of Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "watchEventsV1beta1NamespacedEventList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/events.k8s.io/v1beta1/watch/namespaces/{namespace}/events/{name}": { - "get": { - "description": "watch changes to an object of kind Event", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "events_v1beta1" - ], - "operationId": "watchEventsV1beta1NamespacedEvent", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Event", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions" - ], - "operationId": "getExtensionsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/extensions/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "getExtensionsV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/extensions/v1beta1/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1DaemonSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1DeploymentForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/ingresses": { - "get": { - "description": "list or watch objects of kind Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1IngressForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets": { - "get": { - "description": "list or watch objects of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "post": { - "description": "create a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "read the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDaemonSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/daemonsets/{name}/status": { - "get": { - "description": "read status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDaemonSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified DaemonSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDaemonSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments": { - "get": { - "description": "list or watch objects of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "post": { - "description": "create a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "read the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDeployment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/rollback": { - "post": { - "description": "create rollback of a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedDeploymentRollback", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DeploymentRollback", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DeploymentRollback", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale": { - "get": { - "description": "read scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeploymentScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDeploymentScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/status": { - "get": { - "description": "read status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedDeploymentStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified Deployment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedDeploymentStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses": { - "get": { - "description": "list or watch objects of kind Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "post": { - "description": "create an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}": { - "get": { - "description": "read the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete an Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified Ingress", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedIngress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/ingresses/{name}/status": { - "get": { - "description": "read status of the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedIngressStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified Ingress", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedIngressStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies": { - "get": { - "description": "list or watch objects of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedNetworkPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "post": { - "description": "create a NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "description": "read the specified NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedNetworkPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified NetworkPolicy", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the NetworkPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "post": { - "description": "create a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionNamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "read the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSet", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/scale": { - "get": { - "description": "read scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSetScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSetScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicasets/{name}/status": { - "get": { - "description": "read status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicaSetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified ReplicaSet", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicaSetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/namespaces/{namespace}/replicationcontrollers/{name}/scale": { - "get": { - "description": "read scale of the specified ReplicationControllerDummy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1NamespacedReplicationControllerDummyScale", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "put": { - "description": "replace scale of the specified ReplicationControllerDummy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1NamespacedReplicationControllerDummyScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update scale of the specified ReplicationControllerDummy", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1NamespacedReplicationControllerDummyScale", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Scale", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/networkpolicies": { - "get": { - "description": "list or watch objects of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1NetworkPolicyForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/podsecuritypolicies": { - "get": { - "description": "list or watch objects of kind PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1PodSecurityPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "post": { - "description": "create a PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "createExtensionsV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/podsecuritypolicies/{name}": { - "get": { - "description": "read the specified PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "readExtensionsV1beta1PodSecurityPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "replaceExtensionsV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "deleteExtensionsV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified PodSecurityPolicy", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "patchExtensionsV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodSecurityPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/replicasets": { - "get": { - "description": "list or watch objects of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "listExtensionsV1beta1ReplicaSetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1DaemonSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1DeploymentListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/ingresses": { - "get": { - "description": "watch individual changes to a list of Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1IngressListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets": { - "get": { - "description": "watch individual changes to a list of DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDaemonSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/daemonsets/{name}": { - "get": { - "description": "watch changes to an object of kind DaemonSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDaemonSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the DaemonSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments": { - "get": { - "description": "watch individual changes to a list of Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDeploymentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/deployments/{name}": { - "get": { - "description": "watch changes to an object of kind Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedDeployment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Deployment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses": { - "get": { - "description": "watch individual changes to a list of Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedIngressList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/ingresses/{name}": { - "get": { - "description": "watch changes to an object of kind Ingress", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedIngress", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Ingress", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedNetworkPolicyList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "description": "watch changes to an object of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedNetworkPolicy", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the NetworkPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedReplicaSetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/namespaces/{namespace}/replicasets/{name}": { - "get": { - "description": "watch changes to an object of kind ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NamespacedReplicaSet", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ReplicaSet", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1NetworkPolicyListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/podsecuritypolicies": { - "get": { - "description": "watch individual changes to a list of PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1PodSecurityPolicyList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "description": "watch changes to an object of kind PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1PodSecurityPolicy", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodSecurityPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/extensions/v1beta1/watch/replicasets": { - "get": { - "description": "watch individual changes to a list of ReplicaSet", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "extensions_v1beta1" - ], - "operationId": "watchExtensionsV1beta1ReplicaSetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking" - ], - "operationId": "getNetworkingAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/networking.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "getNetworkingV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies": { - "get": { - "description": "list or watch objects of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "listNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "post": { - "description": "create a NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "createNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "deleteNetworkingV1CollectionNamespacedNetworkPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "description": "read the specified NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "readNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "put": { - "description": "replace the specified NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "replaceNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "delete": { - "description": "delete a NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "deleteNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified NetworkPolicy", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "patchNetworkingV1NamespacedNetworkPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the NetworkPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/v1/networkpolicies": { - "get": { - "description": "list or watch objects of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "listNetworkingV1NetworkPolicyForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1NamespacedNetworkPolicyList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}": { - "get": { - "description": "watch changes to an object of kind NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1NamespacedNetworkPolicy", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the NetworkPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/networking.k8s.io/v1/watch/networkpolicies": { - "get": { - "description": "watch individual changes to a list of NetworkPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "networking_v1" - ], - "operationId": "watchNetworkingV1NetworkPolicyListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy" - ], - "operationId": "getPolicyAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/policy/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "getPolicyV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "description": "list or watch objects of kind PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "listPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "post": { - "description": "create a PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "createPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "deletePolicyV1beta1CollectionNamespacedPodDisruptionBudget", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "description": "read the specified PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "deletePolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified PodDisruptionBudget", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudget", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodDisruptionBudget", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/namespaces/{namespace}/poddisruptionbudgets/{name}/status": { - "get": { - "description": "read status of the specified PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "readPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "put": { - "description": "replace status of the specified PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "replacePolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update status of the specified PodDisruptionBudget", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "patchPolicyV1beta1NamespacedPodDisruptionBudgetStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodDisruptionBudget", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/poddisruptionbudgets": { - "get": { - "description": "list or watch objects of kind PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "listPolicyV1beta1PodDisruptionBudgetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies": { - "get": { - "description": "list or watch objects of kind PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "listPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicyList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "post": { - "description": "create a PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "createPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "deletePolicyV1beta1CollectionPodSecurityPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/podsecuritypolicies/{name}": { - "get": { - "description": "read the specified PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "readPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "replacePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "deletePolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified PodSecurityPolicy", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "patchPolicyV1beta1PodSecurityPolicy", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodSecurityPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets": { - "get": { - "description": "watch individual changes to a list of PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudgetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/namespaces/{namespace}/poddisruptionbudgets/{name}": { - "get": { - "description": "watch changes to an object of kind PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "watchPolicyV1beta1NamespacedPodDisruptionBudget", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodDisruptionBudget", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/poddisruptionbudgets": { - "get": { - "description": "watch individual changes to a list of PodDisruptionBudget", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "watchPolicyV1beta1PodDisruptionBudgetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies": { - "get": { - "description": "watch individual changes to a list of PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "watchPolicyV1beta1PodSecurityPolicyList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/policy/v1beta1/watch/podsecuritypolicies/{name}": { - "get": { - "description": "watch changes to an object of kind PodSecurityPolicy", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "policy_v1beta1" - ], - "operationId": "watchPolicyV1beta1PodSecurityPolicy", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodSecurityPolicy", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization" - ], - "operationId": "getRbacAuthorizationAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "getRbacAuthorizationV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { - "get": { - "description": "list or watch objects of kind ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "post": { - "description": "create a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "createRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { - "get": { - "description": "read the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "readRbacAuthorizationV1ClusterRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "delete": { - "description": "delete a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ClusterRoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles": { - "get": { - "description": "list or watch objects of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "post": { - "description": "create a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "createRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { - "get": { - "description": "read the specified ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "readRbacAuthorizationV1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "put": { - "description": "replace the specified ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "replaceRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "delete": { - "description": "delete a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified ClusterRole", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "patchRbacAuthorizationV1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { - "get": { - "description": "list or watch objects of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "post": { - "description": "create a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "read the specified RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "put": { - "description": "replace the specified RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "delete": { - "description": "delete a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified RoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { - "get": { - "description": "list or watch objects of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "post": { - "description": "create a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "createRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "read the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "readRbacAuthorizationV1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "put": { - "description": "replace the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "replaceRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "delete": { - "description": "delete a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "deleteRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified Role", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "patchRbacAuthorizationV1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/rolebindings": { - "get": { - "description": "list or watch objects of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/roles": { - "get": { - "description": "list or watch objects of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { - "get": { - "description": "watch individual changes to a list of ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { - "get": { - "description": "watch individual changes to a list of ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1ClusterRoleList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { - "get": { - "description": "watch changes to an object of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { - "get": { - "description": "watch individual changes to a list of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1NamespacedRoleList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "watch changes to an object of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1/watch/roles": { - "get": { - "description": "watch individual changes to a list of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1" - ], - "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "getRbacAuthorizationV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings": { - "get": { - "description": "list or watch objects of kind ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterrolebindings/{name}": { - "get": { - "description": "read the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "readRbacAuthorizationV1alpha1ClusterRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified ClusterRoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterroles": { - "get": { - "description": "list or watch objects of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/clusterroles/{name}": { - "get": { - "description": "read the specified ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "readRbacAuthorizationV1alpha1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified ClusterRole", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings": { - "get": { - "description": "list or watch objects of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1NamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionNamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "read the specified RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "readRbacAuthorizationV1alpha1NamespacedRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified RoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles": { - "get": { - "description": "list or watch objects of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "createRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1CollectionNamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "read the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "readRbacAuthorizationV1alpha1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "replaceRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "deleteRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified Role", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "patchRbacAuthorizationV1alpha1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/rolebindings": { - "get": { - "description": "list or watch objects of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1RoleBindingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/roles": { - "get": { - "description": "list or watch objects of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "listRbacAuthorizationV1alpha1RoleForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings": { - "get": { - "description": "watch individual changes to a list of ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleBindingList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterrolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles": { - "get": { - "description": "watch individual changes to a list of ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRoleList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/clusterroles/{name}": { - "get": { - "description": "watch changes to an object of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleBindingList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles": { - "get": { - "description": "watch individual changes to a list of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRoleList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "watch changes to an object of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1RoleBindingListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1alpha1/watch/roles": { - "get": { - "description": "watch individual changes to a list of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1alpha1" - ], - "operationId": "watchRbacAuthorizationV1alpha1RoleListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "getRbacAuthorizationV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings": { - "get": { - "description": "list or watch objects of kind ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "listRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "post": { - "description": "create a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "createRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/{name}": { - "get": { - "description": "read the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "readRbacAuthorizationV1beta1ClusterRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "replaceRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified ClusterRoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "patchRbacAuthorizationV1beta1ClusterRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles": { - "get": { - "description": "list or watch objects of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "listRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "post": { - "description": "create a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "createRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionClusterRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/{name}": { - "get": { - "description": "read the specified ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "readRbacAuthorizationV1beta1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "replaceRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified ClusterRole", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "patchRbacAuthorizationV1beta1ClusterRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings": { - "get": { - "description": "list or watch objects of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "listRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "post": { - "description": "create a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "createRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRoleBinding", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "read the specified RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "readRbacAuthorizationV1beta1NamespacedRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified RoleBinding", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "patchRbacAuthorizationV1beta1NamespacedRoleBinding", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles": { - "get": { - "description": "list or watch objects of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "listRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "post": { - "description": "create a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "createRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1CollectionNamespacedRole", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "read the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "readRbacAuthorizationV1beta1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "replaceRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "deleteRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified Role", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "patchRbacAuthorizationV1beta1NamespacedRole", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/rolebindings": { - "get": { - "description": "list or watch objects of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "listRbacAuthorizationV1beta1RoleBindingForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/roles": { - "get": { - "description": "list or watch objects of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "listRbacAuthorizationV1beta1RoleForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings": { - "get": { - "description": "watch individual changes to a list of ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBindingList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterrolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind ClusterRoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles": { - "get": { - "description": "watch individual changes to a list of ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRoleList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/clusterroles/{name}": { - "get": { - "description": "watch changes to an object of kind ClusterRole", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1ClusterRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ClusterRole", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBindingList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/rolebindings/{name}": { - "get": { - "description": "watch changes to an object of kind RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleBinding", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the RoleBinding", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles": { - "get": { - "description": "watch individual changes to a list of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRoleList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/namespaces/{namespace}/roles/{name}": { - "get": { - "description": "watch changes to an object of kind Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1NamespacedRole", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the Role", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/rolebindings": { - "get": { - "description": "watch individual changes to a list of RoleBinding", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1RoleBindingListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/rbac.authorization.k8s.io/v1beta1/watch/roles": { - "get": { - "description": "watch individual changes to a list of Role", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "rbacAuthorization_v1beta1" - ], - "operationId": "watchRbacAuthorizationV1beta1RoleListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling" - ], - "operationId": "getSchedulingAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/scheduling.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "getSchedulingV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/scheduling.k8s.io/v1alpha1/priorityclasses": { - "get": { - "description": "list or watch objects of kind PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "listSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "createSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "deleteSchedulingV1alpha1CollectionPriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1alpha1/priorityclasses/{name}": { - "get": { - "description": "read the specified PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "readSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "replaceSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "deleteSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified PriorityClass", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "patchSchedulingV1alpha1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PriorityClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses": { - "get": { - "description": "watch individual changes to a list of PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "watchSchedulingV1alpha1PriorityClassList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1alpha1/watch/priorityclasses/{name}": { - "get": { - "description": "watch changes to an object of kind PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1alpha1" - ], - "operationId": "watchSchedulingV1alpha1PriorityClass", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PriorityClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "getSchedulingV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses": { - "get": { - "description": "list or watch objects of kind PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "listSchedulingV1beta1PriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "post": { - "description": "create a PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "createSchedulingV1beta1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "deleteSchedulingV1beta1CollectionPriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/priorityclasses/{name}": { - "get": { - "description": "read the specified PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "readSchedulingV1beta1PriorityClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "replaceSchedulingV1beta1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "deleteSchedulingV1beta1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified PriorityClass", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "patchSchedulingV1beta1PriorityClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PriorityClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses": { - "get": { - "description": "watch individual changes to a list of PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "watchSchedulingV1beta1PriorityClassList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/scheduling.k8s.io/v1beta1/watch/priorityclasses/{name}": { - "get": { - "description": "watch changes to an object of kind PriorityClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "scheduling_v1beta1" - ], - "operationId": "watchSchedulingV1beta1PriorityClass", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PriorityClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings" - ], - "operationId": "getSettingsAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/settings.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "getSettingsV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets": { - "get": { - "description": "list or watch objects of kind PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "listSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "createSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "deleteSettingsV1alpha1CollectionNamespacedPodPreset", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/namespaces/{namespace}/podpresets/{name}": { - "get": { - "description": "read the specified PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "readSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "replaceSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "deleteSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified PodPreset", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "patchSettingsV1alpha1NamespacedPodPreset", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodPreset", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/podpresets": { - "get": { - "description": "list or watch objects of kind PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "listSettingsV1alpha1PodPresetForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets": { - "get": { - "description": "watch individual changes to a list of PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "watchSettingsV1alpha1NamespacedPodPresetList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/watch/namespaces/{namespace}/podpresets/{name}": { - "get": { - "description": "watch changes to an object of kind PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "watchSettingsV1alpha1NamespacedPodPreset", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the PodPreset", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/settings.k8s.io/v1alpha1/watch/podpresets": { - "get": { - "description": "watch individual changes to a list of PodPreset", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "settings_v1alpha1" - ], - "operationId": "watchSettingsV1alpha1PodPresetListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/": { - "get": { - "description": "get information of a group", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage" - ], - "operationId": "getStorageAPIGroup", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/storage.k8s.io/v1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "getStorageV1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/storage.k8s.io/v1/storageclasses": { - "get": { - "description": "list or watch objects of kind StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "listStorageV1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "post": { - "description": "create a StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "createStorageV1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "delete": { - "description": "delete collection of StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "deleteStorageV1CollectionStorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1/storageclasses/{name}": { - "get": { - "description": "read the specified StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "readStorageV1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "put": { - "description": "replace the specified StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "replaceStorageV1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "delete": { - "description": "delete a StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "deleteStorageV1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "patch": { - "description": "partially update the specified StorageClass", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "patchStorageV1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StorageClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses": { - "get": { - "description": "watch individual changes to a list of StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "watchStorageV1StorageClassList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1/watch/storageclasses/{name}": { - "get": { - "description": "watch changes to an object of kind StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1" - ], - "operationId": "watchStorageV1StorageClass", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StorageClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1alpha1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "getStorageV1alpha1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/storage.k8s.io/v1alpha1/volumeattachments": { - "get": { - "description": "list or watch objects of kind VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "listStorageV1alpha1VolumeAttachment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "post": { - "description": "create a VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "createStorageV1alpha1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete collection of VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "deleteStorageV1alpha1CollectionVolumeAttachment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1alpha1/volumeattachments/{name}": { - "get": { - "description": "read the specified VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "readStorageV1alpha1VolumeAttachment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "put": { - "description": "replace the specified VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "replaceStorageV1alpha1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "delete": { - "description": "delete a VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "deleteStorageV1alpha1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "patch": { - "description": "partially update the specified VolumeAttachment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "patchStorageV1alpha1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the VolumeAttachment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1alpha1/watch/volumeattachments": { - "get": { - "description": "watch individual changes to a list of VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "watchStorageV1alpha1VolumeAttachmentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1alpha1/watch/volumeattachments/{name}": { - "get": { - "description": "watch changes to an object of kind VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1alpha1" - ], - "operationId": "watchStorageV1alpha1VolumeAttachment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the VolumeAttachment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/": { - "get": { - "description": "get available resources", - "consumes": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "getStorageV1beta1APIResources", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - }, - "/apis/storage.k8s.io/v1beta1/storageclasses": { - "get": { - "description": "list or watch objects of kind StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "listStorageV1beta1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "post": { - "description": "create a StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "createStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "deleteStorageV1beta1CollectionStorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/storageclasses/{name}": { - "get": { - "description": "read the specified StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "readStorageV1beta1StorageClass", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "replaceStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "deleteStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified StorageClass", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "patchStorageV1beta1StorageClass", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the StorageClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments": { - "get": { - "description": "list or watch objects of kind VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "listStorageV1beta1VolumeAttachment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "post": { - "description": "create a VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "createStorageV1beta1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "202": { - "description": "Accepted", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete collection of VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "deleteStorageV1beta1CollectionVolumeAttachment", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/volumeattachments/{name}": { - "get": { - "description": "read the specified VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "readStorageV1beta1VolumeAttachment", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "put": { - "description": "replace the specified VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "replaceStorageV1beta1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "201": { - "description": "Created", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "delete": { - "description": "delete a VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "deleteStorageV1beta1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "patch": { - "description": "partially update the specified VolumeAttachment", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "patchStorageV1beta1VolumeAttachment", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the VolumeAttachment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses": { - "get": { - "description": "watch individual changes to a list of StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "watchStorageV1beta1StorageClassList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/storageclasses/{name}": { - "get": { - "description": "watch changes to an object of kind StorageClass", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "watchStorageV1beta1StorageClass", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the StorageClass", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments": { - "get": { - "description": "watch individual changes to a list of VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "watchStorageV1beta1VolumeAttachmentList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/storage.k8s.io/v1beta1/watch/volumeattachments/{name}": { - "get": { - "description": "watch changes to an object of kind VolumeAttachment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "storage_v1beta1" - ], - "operationId": "watchStorageV1beta1VolumeAttachment", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server the server will respond with a 410 ResourceExpired error indicating the client must restart their list without the continue field. This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", - "name": "continue", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", - "name": "limit", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the VolumeAttachment", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/logs/": { - "get": { - "schemes": [ - "https" - ], - "tags": [ - "logs" - ], - "operationId": "logFileListHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - } - } - }, - "/logs/{logpath}": { - "get": { - "schemes": [ - "https" - ], - "tags": [ - "logs" - ], - "operationId": "logFileHandler", - "responses": { - "401": { - "description": "Unauthorized" - } - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "path to the log", - "name": "logpath", - "in": "path", - "required": true - } - ] - }, - "/version/": { - "get": { - "description": "get the code version", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "schemes": [ - "https" - ], - "tags": [ - "version" - ], - "operationId": "getCodeVersion", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" - } - }, - "401": { - "description": "Unauthorized" - } - } - } - } - }, - "definitions": { - "io.k8s.api.admissionregistration.v1alpha1.Initializer": { - "description": "Initializer describes the name and the failure policy of an initializer, and what resources it applies to.", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "Name is the identifier of the initializer. It will be added to the object that needs to be initialized. Name should be fully qualified, e.g., alwayspullimages.kubernetes.io, where \"alwayspullimages\" is the name of the webhook, and kubernetes.io is the name of the organization. Required", - "type": "string" - }, - "rules": { - "description": "Rules describes what resources/subresources the initializer cares about. The initializer cares about an operation if it matches _any_ Rule. Rule.Resources must not include subresources.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Rule" - } - } - } - }, - "io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration": { - "description": "InitializerConfiguration describes the configuration of initializers.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "initializers": { - "description": "Initializers is a list of resources and their default initializers Order-sensitive. When merging multiple InitializerConfigurations, we sort the initializers from different InitializerConfigurations by the name of the InitializerConfigurations; the order of the initializers from the same InitializerConfiguration is preserved.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfiguration", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList": { - "description": "InitializerConfigurationList is a list of InitializerConfiguration.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of InitializerConfiguration.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "InitializerConfigurationList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.admissionregistration.v1alpha1.Rule": { - "description": "Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration": { - "description": "MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList": { - "description": "MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of MutatingWebhookConfiguration.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "MutatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.RuleWithOperations": { - "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", - "properties": { - "apiGroups": { - "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } - }, - "apiVersions": { - "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } - }, - "operations": { - "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, or * for all operations. If '*' is present, the length of the slice must be one. Required.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.admissionregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "required": [ - "namespace", - "name" - ], - "properties": { - "name": { - "description": "`name` is the name of the service. Required", - "type": "string" - }, - "namespace": { - "description": "`namespace` is the namespace of the service. Required", - "type": "string" - }, - "path": { - "description": "`path` is an optional URL path which will be sent in any request to this service.", - "type": "string" - } - } - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration": { - "description": "ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "webhooks": { - "description": "Webhooks is a list of webhooks and the affected resources and operations.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.Webhook" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfiguration", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList": { - "description": "ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ValidatingWebhookConfiguration.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "admissionregistration.k8s.io", - "kind": "ValidatingWebhookConfigurationList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.admissionregistration.v1beta1.Webhook": { - "description": "Webhook describes an admission webhook and the resources and operations it applies to.", - "required": [ - "name", - "clientConfig" - ], - "properties": { - "clientConfig": { - "description": "ClientConfig defines how to communicate with the hook. Required", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig" - }, - "failurePolicy": { - "description": "FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.", - "type": "string" - }, - "name": { - "description": "The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.", - "type": "string" - }, - "namespaceSelector": { - "description": "NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "rules": { - "description": "Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.RuleWithOperations" - } - } - } - }, - "io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig": { - "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", - "required": [ - "caBundle" - ], - "properties": { - "caBundle": { - "description": "`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. Required.", - "type": "string", - "format": "byte" - }, - "service": { - "description": "`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\n\nIf the webhook is running within the cluster, then you should use `service`.\n\nPort 443 will be used if it is open, otherwise it is an error.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1beta1.ServiceReference" - }, - "url": { - "description": "`url` gives the location of the webhook, in standard URL form (`[scheme://]host:port/path`). Exactly one of `url` or `service` must be specified.\n\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\n\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\n\nThe scheme must be \"https\"; the URL must begin with \"https://\".\n\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\n\nAttempting to use a user or basic auth e.g. \"user:password@\" is not allowed. Fragments (\"#...\") and query parameters (\"?...\") are not allowed, either.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.ControllerRevision": { - "description": "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "required": [ - "revision" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "data": { - "description": "Data is the serialized representation of the state.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "type": "integer", - "format": "int64" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ControllerRevision" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSet": { - "description": "DaemonSet represents the configuration of a daemon set.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetSpec" - }, - "status": { - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "A list of daemon sets.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "selector", - "template" - ], - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "updateStrategy": { - "description": "An update strategy to replace existing DaemonSet pods with new pods.", - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy" - } - } - }, - "io.k8s.api.apps.v1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "type": "integer", - "format": "int32" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "type": "integer", - "format": "int64" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if type = \"RollingUpdate\".", - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDaemonSet" - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.Deployment": { - "description": "Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the Deployment.", - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentSpec" - }, - "status": { - "description": "Most recently observed status of the Deployment.", - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastUpdateTime": { - "description": "The last time this condition was updated.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Deployments.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.Deployment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "selector", - "template" - ], - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "strategy": { - "description": "The deployment strategy to use to replace existing pods with new ones.", - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentStrategy" - }, - "template": { - "description": "Template describes the pods that will be created.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.apps.v1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "type": "integer", - "format": "int32" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "type": "integer", - "format": "int32" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateDeployment" - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.ReplicaSet": { - "description": "ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetSpec" - }, - "status": { - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "The last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "required": [ - "selector" - ], - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.apps.v1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.apps.v1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "maxUnavailable": { - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1.StatefulSet": { - "description": "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the desired identities of pods in this set.", - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetSpec" - }, - "status": { - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1" - } - ] - }, - "io.k8s.api.apps.v1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "required": [ - "selector", - "template", - "serviceName" - ], - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "updateStrategy": { - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetUpdateStrategy" - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - } - }, - "io.k8s.api.apps.v1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "required": [ - "replicas" - ], - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "type": "integer", - "format": "int32" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "type": "integer", - "format": "int32" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - "$ref": "#/definitions/io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy" - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta1.ControllerRevision": { - "description": "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "required": [ - "revision" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "data": { - "description": "Data is the serialized representation of the state.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "type": "integer", - "format": "int64" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.Deployment": { - "description": "DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the Deployment.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec" - }, - "status": { - "description": "Most recently observed status of the Deployment.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastUpdateTime": { - "description": "The last time this condition was updated.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Deployments.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.DeploymentRollback": { - "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Required: This must match the Name of a deployment.", - "type": "string" - }, - "rollbackTo": { - "description": "The config of this deployment rollback.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig" - }, - "updatedAnnotations": { - "description": "The annotations to be updated to a deployment", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentRollback", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "template" - ], - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.", - "type": "integer", - "format": "int32" - }, - "rollbackTo": { - "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig" - }, - "selector": { - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "strategy": { - "description": "The deployment strategy to use to replace existing pods with new ones.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy" - }, - "template": { - "description": "Template describes the pods that will be created.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.apps.v1beta1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "type": "integer", - "format": "int32" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "type": "integer", - "format": "int32" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment" - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta1.RollbackConfig": { - "description": "DEPRECATED.", - "properties": { - "revision": { - "description": "The revision to rollback to. If set to 0, rollback to the last revision.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.apps.v1beta1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "maxUnavailable": { - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec" - }, - "status": { - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Scale", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "targetSelector": { - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta1.StatefulSet": { - "description": "DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the desired identities of pods in this set.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec" - }, - "status": { - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta1.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.apps.v1beta1.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "required": [ - "template", - "serviceName" - ], - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "updateStrategy": { - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy" - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - } - }, - "io.k8s.api.apps.v1beta1.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "required": [ - "replicas" - ], - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "type": "integer", - "format": "int32" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "type": "integer", - "format": "int32" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy" - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.ControllerRevision": { - "description": "DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.", - "required": [ - "revision" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "data": { - "description": "Data is the serialized representation of the state.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "revision": { - "description": "Revision indicates the revision of the state represented by Data.", - "type": "integer", - "format": "int64" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevision", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.ControllerRevisionList": { - "description": "ControllerRevisionList is a resource containing a list of ControllerRevision objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of ControllerRevisions", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ControllerRevision" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ControllerRevisionList", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.DaemonSet": { - "description": "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetSpec" - }, - "status": { - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSet", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "A list of daemon sets.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DaemonSetList", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "selector", - "template" - ], - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "updateStrategy": { - "description": "An update strategy to replace existing DaemonSet pods with new pods.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy" - } - } - }, - "io.k8s.api.apps.v1beta2.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DaemonSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "type": "integer", - "format": "int32" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "type": "integer", - "format": "int64" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy": { - "description": "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if type = \"RollingUpdate\".", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet" - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.Deployment": { - "description": "DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the Deployment.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentSpec" - }, - "status": { - "description": "Most recently observed status of the Deployment.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Deployment", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastUpdateTime": { - "description": "The last time this condition was updated.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Deployments.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Deployment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentList", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "selector", - "template" - ], - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "paused": { - "description": "Indicates that the deployment is paused.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "strategy": { - "description": "The deployment strategy to use to replace existing pods with new ones.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentStrategy" - }, - "template": { - "description": "Template describes the pods that will be created.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.apps.v1beta2.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "type": "integer", - "format": "int32" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "type": "integer", - "format": "int32" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta2.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDeployment" - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.ReplicaSet": { - "description": "DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetSpec" - }, - "status": { - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSet", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "The last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "ReplicaSetList", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "required": [ - "selector" - ], - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.apps.v1beta2.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ReplicaSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.apps.v1beta2.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "maxUnavailable": { - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy": { - "description": "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "properties": { - "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta2.Scale": { - "description": "Scale represents a scaling request for a resource.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ScaleSpec" - }, - "status": { - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.ScaleStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "Scale", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta2.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "targetSelector": { - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.StatefulSet": { - "description": "DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the desired identities of pods in this set.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetSpec" - }, - "status": { - "description": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSet", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.StatefulSetCondition": { - "description": "StatefulSetCondition describes the state of a statefulset at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of statefulset condition.", - "type": "string" - } - } - }, - "io.k8s.api.apps.v1beta2.StatefulSetList": { - "description": "StatefulSetList is a collection of StatefulSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "StatefulSetList", - "version": "v1beta2" - } - ] - }, - "io.k8s.api.apps.v1beta2.StatefulSetSpec": { - "description": "A StatefulSetSpec is the specification of a StatefulSet.", - "required": [ - "selector", - "template", - "serviceName" - ], - "properties": { - "podManagementPolicy": { - "description": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "type": "string" - }, - "replicas": { - "description": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "serviceName": { - "description": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "type": "string" - }, - "template": { - "description": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "updateStrategy": { - "description": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy" - }, - "volumeClaimTemplates": { - "description": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - } - } - }, - "io.k8s.api.apps.v1beta2.StatefulSetStatus": { - "description": "StatefulSetStatus represents the current state of a StatefulSet.", - "required": [ - "replicas" - ], - "properties": { - "collisionCount": { - "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a statefulset's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.StatefulSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentReplicas": { - "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "type": "integer", - "format": "int32" - }, - "currentRevision": { - "description": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "replicas is the number of Pods created by the StatefulSet controller.", - "type": "integer", - "format": "int32" - }, - "updateRevision": { - "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", - "type": "string" - }, - "updatedReplicas": { - "description": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy": { - "description": "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "properties": { - "rollingUpdate": { - "description": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy" - }, - "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.authentication.v1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated", - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request can be authenticated.", - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authentication.v1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - } - }, - "io.k8s.api.authentication.v1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "description": "User is the UserInfo associated with the provided token.", - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo" - } - } - }, - "io.k8s.api.authentication.v1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "description": "Any additional information provided by the authenticator.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "groups": { - "description": "The names of groups this user is a part of.", - "type": "array", - "items": { - "type": "string" - } - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - } - }, - "io.k8s.api.authentication.v1beta1.TokenReview": { - "description": "TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request can be authenticated.", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authentication.k8s.io", - "kind": "TokenReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authentication.v1beta1.TokenReviewSpec": { - "description": "TokenReviewSpec is a description of the token authentication request.", - "properties": { - "token": { - "description": "Token is the opaque bearer token.", - "type": "string" - } - } - }, - "io.k8s.api.authentication.v1beta1.TokenReviewStatus": { - "description": "TokenReviewStatus is the result of the token authentication request.", - "properties": { - "authenticated": { - "description": "Authenticated indicates that the token was associated with a known user.", - "type": "boolean" - }, - "error": { - "description": "Error indicates that the token couldn't be checked", - "type": "string" - }, - "user": { - "description": "User is the UserInfo associated with the provided token.", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo" - } - } - }, - "io.k8s.api.authentication.v1beta1.UserInfo": { - "description": "UserInfo holds the information about the user needed to implement the user.Info interface.", - "properties": { - "extra": { - "description": "Any additional information provided by the authenticator.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "groups": { - "description": "The names of groups this user is a part of.", - "type": "array", - "items": { - "type": "string" - } - }, - "uid": { - "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", - "type": "string" - }, - "username": { - "description": "The name that uniquely identifies this user among all active users.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request is allowed or not", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "required": [ - "verbs" - ], - "properties": { - "nonResourceURLs": { - "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.authorization.v1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "required": [ - "verbs" - ], - "properties": { - "apiGroups": { - "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated. user and groups must be empty", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request is allowed or not", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "description": "NonResourceAttributes describes information for a non-resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes" - }, - "resourceAttributes": { - "description": "ResourceAuthorizationAttributes describes information for a resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes" - } - } - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates the set of actions a user can perform.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectRulesReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request is allowed or not", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1" - } - ] - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "groups": { - "description": "Groups is the groups you're testing for.", - "type": "array", - "items": { - "type": "string" - } - }, - "nonResourceAttributes": { - "description": "NonResourceAttributes describes information for a non-resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes" - }, - "resourceAttributes": { - "description": "ResourceAuthorizationAttributes describes information for a resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "required": [ - "allowed" - ], - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" - } - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" - } - } - } - }, - "io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated. spec.namespace must be equal to the namespace you made the request against. If empty, it is defaulted.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request is allowed or not", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "LocalSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.NonResourceAttributes": { - "description": "NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface", - "properties": { - "path": { - "description": "Path is the URL path of the request", - "type": "string" - }, - "verb": { - "description": "Verb is the standard HTTP verb", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1beta1.NonResourceRule": { - "description": "NonResourceRule holds information that describes a rule for the non-resource", - "required": [ - "verbs" - ], - "properties": { - "nonResourceURLs": { - "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.authorization.v1beta1.ResourceAttributes": { - "description": "ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface", - "properties": { - "group": { - "description": "Group is the API Group of the Resource. \"*\" means all.", - "type": "string" - }, - "name": { - "description": "Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces \"\" (empty) is defaulted for LocalSubjectAccessReviews \"\" (empty) is empty for cluster-scoped resources \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview", - "type": "string" - }, - "resource": { - "description": "Resource is one of the existing resource types. \"*\" means all.", - "type": "string" - }, - "subresource": { - "description": "Subresource is one of the existing resource types. \"\" means none.", - "type": "string" - }, - "verb": { - "description": "Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "string" - }, - "version": { - "description": "Version is the API Version of the Resource. \"*\" means all.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1beta1.ResourceRule": { - "description": "ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "required": [ - "verbs" - ], - "properties": { - "apiGroups": { - "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "SelfSubjectAccessReview checks whether or the current user can perform an action. Not filling in a spec.namespace means \"in all namespaces\". Self is a special case, because users should always be able to check whether they can perform an action", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated. user and groups must be empty", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request is allowed or not", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "SelfSubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "nonResourceAttributes": { - "description": "NonResourceAttributes describes information for a non-resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes" - }, - "resourceAttributes": { - "description": "ResourceAuthorizationAttributes describes information for a resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes" - } - } - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReview": { - "description": "SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates the set of actions a user can perform.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SelfSubjectRulesReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SelfSubjectRulesReviewSpec": { - "properties": { - "namespace": { - "description": "Namespace to evaluate rules for. Required.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReview": { - "description": "SubjectAccessReview checks whether or not a user or group can perform an action.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec holds information about the request being evaluated", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec" - }, - "status": { - "description": "Status is filled in by the server and indicates whether the request is allowed or not", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "authorization.k8s.io", - "kind": "SubjectAccessReview", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "SubjectAccessReviewSpec is a description of the access request. Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set", - "properties": { - "extra": { - "description": "Extra corresponds to the user.Info.GetExtra() method from the authenticator. Since that is input to the authorizer it needs a reflection here.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "group": { - "description": "Groups is the groups you're testing for.", - "type": "array", - "items": { - "type": "string" - } - }, - "nonResourceAttributes": { - "description": "NonResourceAttributes describes information for a non-resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes" - }, - "resourceAttributes": { - "description": "ResourceAuthorizationAttributes describes information for a resource access request", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes" - }, - "uid": { - "description": "UID information about the requesting user.", - "type": "string" - }, - "user": { - "description": "User is the user you're testing for. If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "SubjectAccessReviewStatus", - "required": [ - "allowed" - ], - "properties": { - "allowed": { - "description": "Allowed is required. True if the action would be allowed, false otherwise.", - "type": "boolean" - }, - "denied": { - "description": "Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.", - "type": "boolean" - }, - "evaluationError": { - "description": "EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.", - "type": "string" - }, - "reason": { - "description": "Reason is optional. It indicates why a request was allowed or denied.", - "type": "string" - } - } - }, - "io.k8s.api.authorization.v1beta1.SubjectRulesReviewStatus": { - "description": "SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.", - "required": [ - "resourceRules", - "nonResourceRules", - "incomplete" - ], - "properties": { - "evaluationError": { - "description": "EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.", - "type": "string" - }, - "incomplete": { - "description": "Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.", - "type": "boolean" - }, - "nonResourceRules": { - "description": "NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceRule" - } - }, - "resourceRules": { - "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceRule" - } - } - } - }, - "io.k8s.api.autoscaling.v1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "required": [ - "kind", - "name" - ], - "properties": { - "apiVersion": { - "description": "API version of the referent", - "type": "string" - }, - "kind": { - "description": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\"", - "type": "string" - }, - "name": { - "description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "configuration of a horizontal pod autoscaler.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec" - }, - "status": { - "description": "current information about the autoscaler.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "list of horizontal pod autoscaler objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "list of horizontal pod autoscaler objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "specification of a horizontal pod autoscaler.", - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "properties": { - "maxReplicas": { - "description": "upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.", - "type": "integer", - "format": "int32" - }, - "minReplicas": { - "description": "lower limit for the number of pods that can be set by the autoscaler, default 1.", - "type": "integer", - "format": "int32" - }, - "scaleTargetRef": { - "description": "reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference" - }, - "targetCPUUtilizationPercentage": { - "description": "target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "current status of a horizontal pod autoscaler", - "required": [ - "currentReplicas", - "desiredReplicas" - ], - "properties": { - "currentCPUUtilizationPercentage": { - "description": "current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.", - "type": "integer", - "format": "int32" - }, - "currentReplicas": { - "description": "current number of replicas of pods managed by this autoscaler.", - "type": "integer", - "format": "int32" - }, - "desiredReplicas": { - "description": "desired number of replicas of pods managed by this autoscaler.", - "type": "integer", - "format": "int32" - }, - "lastScaleTime": { - "description": "last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "observedGeneration": { - "description": "most recent generation observed by this autoscaler.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.autoscaling.v1.Scale": { - "description": "Scale represents a scaling request for a resource.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec" - }, - "status": { - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "Scale", - "version": "v1" - } - ] - }, - "io.k8s.api.autoscaling.v1.ScaleSpec": { - "description": "ScaleSpec describes the attributes of a scale subresource.", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.autoscaling.v1.ScaleStatus": { - "description": "ScaleStatus represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference": { - "description": "CrossVersionObjectReference contains enough information to let you identify the referred resource.", - "required": [ - "kind", - "name" - ], - "properties": { - "apiVersion": { - "description": "API version of the referent", - "type": "string" - }, - "kind": { - "description": "Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds\"", - "type": "string" - }, - "name": { - "description": "Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricSource": { - "description": "ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \"target\" type should be set.", - "required": [ - "metricName" - ], - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "metricSelector": { - "description": "metricSelector is used to identify a specific time series within a given metric.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "targetAverageValue": { - "description": "targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "targetValue": { - "description": "targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus": { - "description": "ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.", - "required": [ - "metricName", - "currentValue" - ], - "properties": { - "currentAverageValue": { - "description": "currentAverageValue is the current value of metric averaged over autoscaled pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "currentValue": { - "description": "currentValue is the current value of the metric (as a quantity)", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "metricName": { - "description": "metricName is the name of a metric used for autoscaling in metric system.", - "type": "string" - }, - "metricSelector": { - "description": "metricSelector is used to identify a specific time series within a given metric.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler": { - "description": "HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec" - }, - "status": { - "description": "status is the current information about the autoscaler.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscaler", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition": { - "description": "HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "lastTransitionTime is the last time the condition transitioned from one status to another", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "message is a human-readable explanation containing details about the transition", - "type": "string" - }, - "reason": { - "description": "reason is the reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "status is the status of the condition (True, False, Unknown)", - "type": "string" - }, - "type": { - "description": "type describes the current condition", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerList": { - "description": "HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is the list of horizontal pod autoscaler objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "metadata is the standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "autoscaling", - "kind": "HorizontalPodAutoscalerList", - "version": "v2beta1" - } - ] - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec": { - "description": "HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.", - "required": [ - "scaleTargetRef", - "maxReplicas" - ], - "properties": { - "maxReplicas": { - "description": "maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.", - "type": "integer", - "format": "int32" - }, - "metrics": { - "description": "metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricSpec" - } - }, - "minReplicas": { - "description": "minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.", - "type": "integer", - "format": "int32" - }, - "scaleTargetRef": { - "description": "scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus": { - "description": "HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.", - "required": [ - "currentReplicas", - "desiredReplicas", - "currentMetrics", - "conditions" - ], - "properties": { - "conditions": { - "description": "conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition" - } - }, - "currentMetrics": { - "description": "currentMetrics is the last read state of the metrics used by this autoscaler.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.MetricStatus" - } - }, - "currentReplicas": { - "description": "currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.", - "type": "integer", - "format": "int32" - }, - "desiredReplicas": { - "description": "desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.", - "type": "integer", - "format": "int32" - }, - "lastScaleTime": { - "description": "lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "observedGeneration": { - "description": "observedGeneration is the most recent generation observed by this autoscaler.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.MetricSpec": { - "description": "MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).", - "required": [ - "type" - ], - "properties": { - "external": { - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricSource" - }, - "object": { - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricSource" - }, - "pods": { - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricSource" - }, - "resource": { - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricSource" - }, - "type": { - "description": "type is the type of metric source. It should be one of \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.MetricStatus": { - "description": "MetricStatus describes the last-read state of a single metric.", - "required": [ - "type" - ], - "properties": { - "external": { - "description": "external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus" - }, - "object": { - "description": "object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus" - }, - "pods": { - "description": "pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.PodsMetricStatus" - }, - "resource": { - "description": "resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus" - }, - "type": { - "description": "type is the type of metric source. It will be one of \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricSource": { - "description": "ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "required": [ - "target", - "metricName", - "targetValue" - ], - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "target": { - "description": "target is the described Kubernetes object.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference" - }, - "targetValue": { - "description": "targetValue is the target value of the metric (as a quantity).", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus": { - "description": "ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).", - "required": [ - "target", - "metricName", - "currentValue" - ], - "properties": { - "currentValue": { - "description": "currentValue is the current value of the metric (as a quantity).", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "metricName": { - "description": "metricName is the name of the metric in question.", - "type": "string" - }, - "target": { - "description": "target is the described Kubernetes object.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricSource": { - "description": "PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.", - "required": [ - "metricName", - "targetAverageValue" - ], - "properties": { - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - }, - "targetAverageValue": { - "description": "targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.PodsMetricStatus": { - "description": "PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).", - "required": [ - "metricName", - "currentAverageValue" - ], - "properties": { - "currentAverageValue": { - "description": "currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "metricName": { - "description": "metricName is the name of the metric in question", - "type": "string" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricSource": { - "description": "ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source. Only one \"target\" type should be set.", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - }, - "targetAverageUtilization": { - "description": "targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.", - "type": "integer", - "format": "int32" - }, - "targetAverageValue": { - "description": "targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - }, - "io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus": { - "description": "ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \"pods\" source.", - "required": [ - "name", - "currentAverageValue" - ], - "properties": { - "currentAverageUtilization": { - "description": "currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.", - "type": "integer", - "format": "int32" - }, - "currentAverageValue": { - "description": "currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \"pods\" metric source type. It will always be set, regardless of the corresponding metric specification.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "name": { - "description": "name is the name of the resource in question.", - "type": "string" - } - } - }, - "io.k8s.api.batch.v1.Job": { - "description": "Job represents the configuration of a single job.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec" - }, - "status": { - "description": "Current status of a job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "Job", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobCondition": { - "description": "JobCondition describes current state of a job.", - "required": [ - "type", - "status" - ], - "properties": { - "lastProbeTime": { - "description": "Last time the condition was checked.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastTransitionTime": { - "description": "Last time the condition transit from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of job condition, Complete or Failed.", - "type": "string" - } - } - }, - "io.k8s.api.batch.v1.JobList": { - "description": "JobList is a collection of jobs.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is the list of Jobs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "JobList", - "version": "v1" - } - ] - }, - "io.k8s.api.batch.v1.JobSpec": { - "description": "JobSpec describes how the job execution will look like.", - "required": [ - "template" - ], - "properties": { - "activeDeadlineSeconds": { - "description": "Specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer", - "type": "integer", - "format": "int64" - }, - "backoffLimit": { - "description": "Specifies the number of retries before marking this job failed. Defaults to 6", - "type": "integer", - "format": "int32" - }, - "completions": { - "description": "Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "type": "integer", - "format": "int32" - }, - "manualSelector": { - "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", - "type": "boolean" - }, - "parallelism": { - "description": "Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) \u003c .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.batch.v1.JobStatus": { - "description": "JobStatus represents the current state of a Job.", - "properties": { - "active": { - "description": "The number of actively running pods.", - "type": "integer", - "format": "int32" - }, - "completionTime": { - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "conditions": { - "description": "The latest available observations of an object's current state. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "failed": { - "description": "The number of pods which reached phase Failed.", - "type": "integer", - "format": "int32" - }, - "startTime": { - "description": "Represents time when the job was acknowledged by the job controller. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "succeeded": { - "description": "The number of pods which reached phase Succeeded.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.batch.v1beta1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobSpec" - }, - "status": { - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJobStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is the list of CronJobs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.CronJob" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.batch.v1beta1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "required": [ - "schedule", - "jobTemplate" - ], - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "type": "integer", - "format": "int32" - }, - "jobTemplate": { - "description": "Specifies the job that will be created when executing a CronJob.", - "$ref": "#/definitions/io.k8s.api.batch.v1beta1.JobTemplateSpec" - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "type": "integer", - "format": "int64" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.", - "type": "integer", - "format": "int32" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - } - }, - "io.k8s.api.batch.v1beta1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - } - }, - "lastScheduleTime": { - "description": "Information when was the last time the job was successfully scheduled.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.api.batch.v1beta1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec" - } - } - }, - "io.k8s.api.batch.v2alpha1.CronJob": { - "description": "CronJob represents the configuration of a single cron job.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobSpec" - }, - "status": { - "description": "Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJob", - "version": "v2alpha1" - } - ] - }, - "io.k8s.api.batch.v2alpha1.CronJobList": { - "description": "CronJobList is a collection of cron jobs.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is the list of CronJobs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "batch", - "kind": "CronJobList", - "version": "v2alpha1" - } - ] - }, - "io.k8s.api.batch.v2alpha1.CronJobSpec": { - "description": "CronJobSpec describes how the job execution will look like and when it will actually run.", - "required": [ - "schedule", - "jobTemplate" - ], - "properties": { - "concurrencyPolicy": { - "description": "Specifies how to treat concurrent executions of a Job. Valid values are: - \"Allow\" (default): allows CronJobs to run concurrently; - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \"Replace\": cancels currently running job and replaces it with a new one", - "type": "string" - }, - "failedJobsHistoryLimit": { - "description": "The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", - "type": "integer", - "format": "int32" - }, - "jobTemplate": { - "description": "Specifies the job that will be created when executing a CronJob.", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.JobTemplateSpec" - }, - "schedule": { - "description": "The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.", - "type": "string" - }, - "startingDeadlineSeconds": { - "description": "Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.", - "type": "integer", - "format": "int64" - }, - "successfulJobsHistoryLimit": { - "description": "The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.", - "type": "integer", - "format": "int32" - }, - "suspend": { - "description": "This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.", - "type": "boolean" - } - } - }, - "io.k8s.api.batch.v2alpha1.CronJobStatus": { - "description": "CronJobStatus represents the current state of a cron job.", - "properties": { - "active": { - "description": "A list of pointers to currently running jobs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - } - }, - "lastScheduleTime": { - "description": "Information when was the last time the job was successfully scheduled.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.api.batch.v2alpha1.JobTemplateSpec": { - "description": "JobTemplateSpec describes the data a Job should have when created from a template", - "properties": { - "metadata": { - "description": "Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec" - } - } - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequest": { - "description": "Describes a certificate signing request", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "The certificate request itself and any additional information.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec" - }, - "status": { - "description": "Derived information about the request.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequest", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition": { - "required": [ - "type" - ], - "properties": { - "lastUpdateTime": { - "description": "timestamp for the last update to this condition", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "human readable message with details about the request state", - "type": "string" - }, - "reason": { - "description": "brief reason for the request state", - "type": "string" - }, - "type": { - "description": "request approval state, currently Approved or Denied.", - "type": "string" - } - } - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestList": { - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "certificates.k8s.io", - "kind": "CertificateSigningRequestList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "This information is immutable after the request is created. Only the Request and Usages fields can be set on creation, other fields are derived by Kubernetes and cannot be modified by users.", - "required": [ - "request" - ], - "properties": { - "extra": { - "description": "Extra information about the requesting user. See user.Info interface for details.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "groups": { - "description": "Group information about the requesting user. See user.Info interface for details.", - "type": "array", - "items": { - "type": "string" - } - }, - "request": { - "description": "Base64-encoded PKCS#10 CSR data", - "type": "string", - "format": "byte" - }, - "uid": { - "description": "UID information about the requesting user. See user.Info interface for details.", - "type": "string" - }, - "usages": { - "description": "allowedUsages specifies a set of usage contexts the key will be valid for. See: https://tools.ietf.org/html/rfc5280#section-4.2.1.3\n https://tools.ietf.org/html/rfc5280#section-4.2.1.12", - "type": "array", - "items": { - "type": "string" - } - }, - "username": { - "description": "Information about the requesting user. See user.Info interface for details.", - "type": "string" - } - } - }, - "io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus": { - "properties": { - "certificate": { - "description": "If request was approved, the controller will place the issued certificate here.", - "type": "string", - "format": "byte" - }, - "conditions": { - "description": "Conditions applied to the request, such as approval or denial.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - } - } - } - }, - "io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource": { - "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - }, - "partition": { - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).", - "type": "integer", - "format": "int32" - }, - "readOnly": { - "description": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\". If omitted, the default is \"false\". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "boolean" - }, - "volumeID": { - "description": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Affinity": { - "description": "Affinity is a group of affinity scheduling rules.", - "properties": { - "nodeAffinity": { - "description": "Describes node affinity scheduling rules for the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity" - }, - "podAffinity": { - "description": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity" - }, - "podAntiAffinity": { - "description": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity" - } - } - }, - "io.k8s.api.core.v1.AttachedVolume": { - "description": "AttachedVolume describes a volume attached to a node", - "required": [ - "name", - "devicePath" - ], - "properties": { - "devicePath": { - "description": "DevicePath represents the device path where the volume should be available", - "type": "string" - }, - "name": { - "description": "Name of the attached volume", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.AzureDiskVolumeSource": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "required": [ - "diskName", - "diskURI" - ], - "properties": { - "cachingMode": { - "description": "Host Caching mode: None, Read Only, Read Write.", - "type": "string" - }, - "diskName": { - "description": "The Name of the data disk in the blob storage", - "type": "string" - }, - "diskURI": { - "description": "The URI the data disk in the blob storage", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "kind": { - "description": "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "secretNamespace": { - "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.AzureFileVolumeSource": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "required": [ - "secretName", - "shareName" - ], - "properties": { - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretName": { - "description": "the name of secret that contains Azure Storage Account Name and Key", - "type": "string" - }, - "shareName": { - "description": "Share Name", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Binding": { - "description": "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.", - "required": [ - "target" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "target": { - "description": "The target object that you want to bind to the standard object.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Binding", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.CSIPersistentVolumeSource": { - "description": "Represents storage that is managed by an external CSI volume driver (Beta feature)", - "required": [ - "driver", - "volumeHandle" - ], - "properties": { - "controllerPublishSecretRef": { - "description": "ControllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "driver": { - "description": "Driver is the name of the driver to use for this volume. Required.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "nodePublishSecretRef": { - "description": "NodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "nodeStageSecretRef": { - "description": "NodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "readOnly": { - "description": "Optional: The value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).", - "type": "boolean" - }, - "volumeAttributes": { - "description": "Attributes of the volume to publish.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "volumeHandle": { - "description": "VolumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Capabilities": { - "description": "Adds and removes POSIX capabilities from running containers.", - "properties": { - "add": { - "description": "Added capabilities", - "type": "array", - "items": { - "type": "string" - } - }, - "drop": { - "description": "Removed capabilities", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.CephFSPersistentVolumeSource": { - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "array", - "items": { - "type": "string" - } - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "boolean" - }, - "secretFile": { - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "string" - }, - "secretRef": { - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "user": { - "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.CephFSVolumeSource": { - "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "monitors" - ], - "properties": { - "monitors": { - "description": "Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "array", - "items": { - "type": "string" - } - }, - "path": { - "description": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /", - "type": "string" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "boolean" - }, - "secretFile": { - "description": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "string" - }, - "secretRef": { - "description": "Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "user": { - "description": "Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.CinderVolumeSource": { - "description": "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "type": "string" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "type": "boolean" - }, - "volumeID": { - "description": "volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ClientIPConfig": { - "description": "ClientIPConfig represents the configurations of Client IP based session affinity.", - "properties": { - "timeoutSeconds": { - "description": "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be \u003e0 \u0026\u0026 \u003c=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.ComponentCondition": { - "description": "Information about the condition of a component.", - "required": [ - "type", - "status" - ], - "properties": { - "error": { - "description": "Condition error code for a component. For example, a health check error code.", - "type": "string" - }, - "message": { - "description": "Message about the condition for a component. For example, information about a health check.", - "type": "string" - }, - "status": { - "description": "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".", - "type": "string" - }, - "type": { - "description": "Type of condition for a component. Valid value: \"Healthy\"", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ComponentStatus": { - "description": "ComponentStatus (and ComponentStatusList) holds the cluster validation info.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "conditions": { - "description": "List of component conditions observed", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatus", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ComponentStatusList": { - "description": "Status of all the conditions for the component as a list of ComponentStatus objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ComponentStatus objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ComponentStatusList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMap": { - "description": "ConfigMap holds configuration data for pods to consume.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "binaryData": { - "description": "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.", - "type": "object", - "additionalProperties": { - "type": "string", - "format": "byte" - } - }, - "data": { - "description": "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMap", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapEnvSource": { - "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.ConfigMapKeySelector": { - "description": "Selects a key from a ConfigMap.", - "required": [ - "key" - ], - "properties": { - "key": { - "description": "The key to select.", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap or it's key must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.ConfigMapList": { - "description": "ConfigMapList is a resource containing a list of ConfigMap objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of ConfigMaps.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ConfigMapList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ConfigMapNodeConfigSource": { - "description": "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.", - "required": [ - "namespace", - "name", - "kubeletConfigKey" - ], - "properties": { - "kubeletConfigKey": { - "description": "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.", - "type": "string" - }, - "name": { - "description": "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "namespace": { - "description": "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.", - "type": "string" - }, - "resourceVersion": { - "description": "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - }, - "uid": { - "description": "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ConfigMapProjection": { - "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.", - "properties": { - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap or it's keys must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.ConfigMapVolumeSource": { - "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", - "properties": { - "defaultMode": { - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the ConfigMap or it's keys must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.Container": { - "description": "A single application container that you want to run within a pod.", - "required": [ - "name" - ], - "properties": { - "args": { - "description": "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "type": "array", - "items": { - "type": "string" - } - }, - "command": { - "description": "Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", - "type": "array", - "items": { - "type": "string" - } - }, - "env": { - "description": "List of environment variables to set in the container. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "envFrom": { - "description": "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - } - }, - "image": { - "description": "Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", - "type": "string" - }, - "imagePullPolicy": { - "description": "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images", - "type": "string" - }, - "lifecycle": { - "description": "Actions that the management system should take in response to container lifecycle events. Cannot be updated.", - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle" - }, - "livenessProbe": { - "description": "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "$ref": "#/definitions/io.k8s.api.core.v1.Probe" - }, - "name": { - "description": "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.", - "type": "string" - }, - "ports": { - "description": "List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "x-kubernetes-patch-merge-key": "containerPort", - "x-kubernetes-patch-strategy": "merge" - }, - "readinessProbe": { - "description": "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "$ref": "#/definitions/io.k8s.api.core.v1.Probe" - }, - "resources": { - "description": "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" - }, - "securityContext": { - "description": "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext" - }, - "stdin": { - "description": "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.", - "type": "boolean" - }, - "stdinOnce": { - "description": "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false", - "type": "boolean" - }, - "terminationMessagePath": { - "description": "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.", - "type": "string" - }, - "terminationMessagePolicy": { - "description": "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.", - "type": "string" - }, - "tty": { - "description": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.", - "type": "boolean" - }, - "volumeDevices": { - "description": "volumeDevices is the list of block devices to be used by the container. This is an alpha feature and may change in the future.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" - }, - "x-kubernetes-patch-merge-key": "devicePath", - "x-kubernetes-patch-strategy": "merge" - }, - "volumeMounts": { - "description": "Pod volumes to mount into the container's filesystem. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "x-kubernetes-patch-merge-key": "mountPath", - "x-kubernetes-patch-strategy": "merge" - }, - "workingDir": { - "description": "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ContainerImage": { - "description": "Describe a container image", - "required": [ - "names" - ], - "properties": { - "names": { - "description": "Names by which this image is known. e.g. [\"k8s.gcr.io/hyperkube:v1.0.7\", \"dockerhub.io/google_containers/hyperkube:v1.0.7\"]", - "type": "array", - "items": { - "type": "string" - } - }, - "sizeBytes": { - "description": "The size of the image in bytes.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.core.v1.ContainerPort": { - "description": "ContainerPort represents a network port in a single container.", - "required": [ - "containerPort" - ], - "properties": { - "containerPort": { - "description": "Number of port to expose on the pod's IP address. This must be a valid port number, 0 \u003c x \u003c 65536.", - "type": "integer", - "format": "int32" - }, - "hostIP": { - "description": "What host IP to bind the external port to.", - "type": "string" - }, - "hostPort": { - "description": "Number of port to expose on the host. If specified, this must be a valid port number, 0 \u003c x \u003c 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.", - "type": "integer", - "format": "int32" - }, - "name": { - "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.", - "type": "string" - }, - "protocol": { - "description": "Protocol for port. Must be UDP or TCP. Defaults to \"TCP\".", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ContainerState": { - "description": "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.", - "properties": { - "running": { - "description": "Details about a running container", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning" - }, - "terminated": { - "description": "Details about a terminated container", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated" - }, - "waiting": { - "description": "Details about a waiting container", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting" - } - } - }, - "io.k8s.api.core.v1.ContainerStateRunning": { - "description": "ContainerStateRunning is a running state of a container.", - "properties": { - "startedAt": { - "description": "Time at which the container was last (re-)started", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.api.core.v1.ContainerStateTerminated": { - "description": "ContainerStateTerminated is a terminated state of a container.", - "required": [ - "exitCode" - ], - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'", - "type": "string" - }, - "exitCode": { - "description": "Exit status from the last termination of the container", - "type": "integer", - "format": "int32" - }, - "finishedAt": { - "description": "Time at which the container last terminated", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Message regarding the last termination of the container", - "type": "string" - }, - "reason": { - "description": "(brief) reason from the last termination of the container", - "type": "string" - }, - "signal": { - "description": "Signal from the last termination of the container", - "type": "integer", - "format": "int32" - }, - "startedAt": { - "description": "Time at which previous execution of the container started", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.api.core.v1.ContainerStateWaiting": { - "description": "ContainerStateWaiting is a waiting state of a container.", - "properties": { - "message": { - "description": "Message regarding why the container is not yet running.", - "type": "string" - }, - "reason": { - "description": "(brief) reason the container is not yet running.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ContainerStatus": { - "description": "ContainerStatus contains details for the current status of this container.", - "required": [ - "name", - "ready", - "restartCount", - "image", - "imageID" - ], - "properties": { - "containerID": { - "description": "Container's ID in the format 'docker://\u003ccontainer_id\u003e'.", - "type": "string" - }, - "image": { - "description": "The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images", - "type": "string" - }, - "imageID": { - "description": "ImageID of the container's image.", - "type": "string" - }, - "lastState": { - "description": "Details about the container's last termination condition.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState" - }, - "name": { - "description": "This must be a DNS_LABEL. Each container in a pod must have a unique name. Cannot be updated.", - "type": "string" - }, - "ready": { - "description": "Specifies whether the container has passed its readiness probe.", - "type": "boolean" - }, - "restartCount": { - "description": "The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.", - "type": "integer", - "format": "int32" - }, - "state": { - "description": "Details about the container's current condition.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState" - } - } - }, - "io.k8s.api.core.v1.DaemonEndpoint": { - "description": "DaemonEndpoint contains information about a single Daemon endpoint.", - "required": [ - "Port" - ], - "properties": { - "Port": { - "description": "Port number of the given endpoint.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.DownwardAPIProjection": { - "description": "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.", - "properties": { - "items": { - "description": "Items is a list of DownwardAPIVolume file", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - } - } - } - }, - "io.k8s.api.core.v1.DownwardAPIVolumeFile": { - "description": "DownwardAPIVolumeFile represents information to create the file containing the pod field", - "required": [ - "path" - ], - "properties": { - "fieldRef": { - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "path": { - "description": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'", - "type": "string" - }, - "resourceFieldRef": { - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" - } - } - }, - "io.k8s.api.core.v1.DownwardAPIVolumeSource": { - "description": "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.", - "properties": { - "defaultMode": { - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "items": { - "description": "Items is a list of downward API volume file", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - } - } - } - }, - "io.k8s.api.core.v1.EmptyDirVolumeSource": { - "description": "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.", - "properties": { - "medium": { - "description": "What type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - "type": "string" - }, - "sizeLimit": { - "description": "Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - }, - "io.k8s.api.core.v1.EndpointAddress": { - "description": "EndpointAddress is a tuple that describes single IP address.", - "required": [ - "ip" - ], - "properties": { - "hostname": { - "description": "The Hostname of this endpoint", - "type": "string" - }, - "ip": { - "description": "The IP of this endpoint. May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16), or link-local multicast ((224.0.0.0/24). IPv6 is also accepted but not fully supported on all platforms. Also, certain kubernetes components, like kube-proxy, are not IPv6 ready.", - "type": "string" - }, - "nodeName": { - "description": "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.", - "type": "string" - }, - "targetRef": { - "description": "Reference to object providing the endpoint.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - } - } - }, - "io.k8s.api.core.v1.EndpointPort": { - "description": "EndpointPort is a tuple that describes a single port.", - "required": [ - "port" - ], - "properties": { - "name": { - "description": "The name of this port (corresponds to ServicePort.Name). Must be a DNS_LABEL. Optional only if one port is defined.", - "type": "string" - }, - "port": { - "description": "The port number of the endpoint.", - "type": "integer", - "format": "int32" - }, - "protocol": { - "description": "The IP protocol for this port. Must be UDP or TCP. Default is TCP.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.EndpointSubset": { - "description": "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n }\nThe resulting set of endpoints can be viewed as:\n a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n b: [ 10.10.1.1:309, 10.10.2.2:309 ]", - "properties": { - "addresses": { - "description": "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - } - }, - "notReadyAddresses": { - "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - } - }, - "ports": { - "description": "Port numbers available on the related IP addresses.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - } - } - } - }, - "io.k8s.api.core.v1.Endpoints": { - "description": "Endpoints is a collection of endpoints that implement the actual service. Example:\n Name: \"mysvc\",\n Subsets: [\n {\n Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n },\n {\n Addresses: [{\"ip\": \"10.10.3.3\"}],\n Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n },\n ]", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "subsets": { - "description": "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Endpoints", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EndpointsList": { - "description": "EndpointsList is a list of endpoints.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of endpoints.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EndpointsList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EnvFromSource": { - "description": "EnvFromSource represents the source of a set of ConfigMaps", - "properties": { - "configMapRef": { - "description": "The ConfigMap to select from", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource" - }, - "prefix": { - "description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.", - "type": "string" - }, - "secretRef": { - "description": "The Secret to select from", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource" - } - } - }, - "io.k8s.api.core.v1.EnvVar": { - "description": "EnvVar represents an environment variable present in a Container.", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "Name of the environment variable. Must be a C_IDENTIFIER.", - "type": "string" - }, - "value": { - "description": "Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".", - "type": "string" - }, - "valueFrom": { - "description": "Source for the environment variable's value. Cannot be used if value is not empty.", - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource" - } - } - }, - "io.k8s.api.core.v1.EnvVarSource": { - "description": "EnvVarSource represents a source for the value of an EnvVar.", - "properties": { - "configMapKeyRef": { - "description": "Selects a key of a ConfigMap.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector" - }, - "fieldRef": { - "description": "Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" - }, - "resourceFieldRef": { - "description": "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" - }, - "secretKeyRef": { - "description": "Selects a key of a secret in the pod's namespace", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector" - } - } - }, - "io.k8s.api.core.v1.Event": { - "description": "Event is a report of an event somewhere in the cluster.", - "required": [ - "metadata", - "involvedObject" - ], - "properties": { - "action": { - "description": "What action was taken/failed regarding to the Regarding object.", - "type": "string" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "count": { - "description": "The number of times this event has occurred.", - "type": "integer", - "format": "int32" - }, - "eventTime": { - "description": "Time when this Event was first observed.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime" - }, - "firstTimestamp": { - "description": "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "involvedObject": { - "description": "The object that this event is about.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "lastTimestamp": { - "description": "The time at which the most recent occurrence of this event was recorded.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "reason": { - "description": "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.", - "type": "string" - }, - "related": { - "description": "Optional secondary object for more complex actions.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "reportingComponent": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "description": "Data about the Event series this event represents or nil if it's a singleton Event.", - "$ref": "#/definitions/io.k8s.api.core.v1.EventSeries" - }, - "source": { - "description": "The component reporting this event. Should be a short machine understandable string.", - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource" - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Event", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventList": { - "description": "EventList is a list of events.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of events", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "EventList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "type": "integer", - "format": "int32" - }, - "lastObservedTime": { - "description": "Time of the last occurrence observed", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime" - }, - "state": { - "description": "State of this Series: Ongoing or Finished", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.EventSource": { - "description": "EventSource contains information for an event.", - "properties": { - "component": { - "description": "Component from which the event is generated.", - "type": "string" - }, - "host": { - "description": "Node name on which the event is generated.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ExecAction": { - "description": "ExecAction describes a \"run in container\" action.", - "properties": { - "command": { - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.FCVolumeSource": { - "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "lun": { - "description": "Optional: FC target lun number", - "type": "integer", - "format": "int32" - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "targetWWNs": { - "description": "Optional: FC target worldwide names (WWNs)", - "type": "array", - "items": { - "type": "string" - } - }, - "wwids": { - "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.FlexPersistentVolumeSource": { - "description": "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", - "type": "string" - }, - "options": { - "description": "Optional: Extra command options if any.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - } - } - }, - "io.k8s.api.core.v1.FlexVolumeSource": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "description": "Driver is the name of the driver to use for this volume.", - "type": "string" - }, - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.", - "type": "string" - }, - "options": { - "description": "Optional: Extra command options if any.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "readOnly": { - "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - } - } - }, - "io.k8s.api.core.v1.FlockerVolumeSource": { - "description": "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.", - "properties": { - "datasetName": { - "description": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker should be considered as deprecated", - "type": "string" - }, - "datasetUUID": { - "description": "UUID of the dataset. This is unique identifier of a Flocker dataset", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.GCEPersistentDiskVolumeSource": { - "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.", - "required": [ - "pdName" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "string" - }, - "partition": { - "description": "The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "integer", - "format": "int32" - }, - "pdName": { - "description": "Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.GitRepoVolumeSource": { - "description": "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.", - "required": [ - "repository" - ], - "properties": { - "directory": { - "description": "Target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.", - "type": "string" - }, - "repository": { - "description": "Repository URL", - "type": "string" - }, - "revision": { - "description": "Commit hash for the specified revision.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.GlusterfsVolumeSource": { - "description": "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.", - "required": [ - "endpoints", - "path" - ], - "properties": { - "endpoints": { - "description": "EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", - "type": "string" - }, - "path": { - "description": "Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.HTTPGetAction": { - "description": "HTTPGetAction describes an action based on HTTP Get requests.", - "required": [ - "port" - ], - "properties": { - "host": { - "description": "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.", - "type": "string" - }, - "httpHeaders": { - "description": "Custom headers to set in the request. HTTP allows repeated headers.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - } - }, - "path": { - "description": "Path to access on the HTTP server.", - "type": "string" - }, - "port": { - "description": "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "scheme": { - "description": "Scheme to use for connecting to the host. Defaults to HTTP.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.HTTPHeader": { - "description": "HTTPHeader describes a custom header to be used in HTTP probes", - "required": [ - "name", - "value" - ], - "properties": { - "name": { - "description": "The header field name", - "type": "string" - }, - "value": { - "description": "The header field value", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Handler": { - "description": "Handler defines a specific action that should be taken", - "properties": { - "exec": { - "description": "One and only one of the following should be specified. Exec specifies the action to take.", - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" - }, - "httpGet": { - "description": "HTTPGet specifies the http request to perform.", - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" - }, - "tcpSocket": { - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" - } - } - }, - "io.k8s.api.core.v1.HostAlias": { - "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.", - "properties": { - "hostnames": { - "description": "Hostnames for the above IP address.", - "type": "array", - "items": { - "type": "string" - } - }, - "ip": { - "description": "IP address of the host file entry.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.HostPathVolumeSource": { - "description": "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "Path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "type": "string" - }, - "type": { - "description": "Type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ISCSIPersistentVolumeSource": { - "description": "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - "type": "string" - }, - "initiatorName": { - "description": "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.", - "type": "string" - }, - "iqn": { - "description": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "type": "integer", - "format": "int32" - }, - "portals": { - "description": "iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - "type": "array", - "items": { - "type": "string" - } - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "description": "CHAP Secret for iSCSI target and initiator authentication", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "targetPortal": { - "description": "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ISCSIVolumeSource": { - "description": "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.", - "required": [ - "targetPortal", - "iqn", - "lun" - ], - "properties": { - "chapAuthDiscovery": { - "description": "whether support iSCSI Discovery CHAP authentication", - "type": "boolean" - }, - "chapAuthSession": { - "description": "whether support iSCSI Session CHAP authentication", - "type": "boolean" - }, - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi", - "type": "string" - }, - "initiatorName": { - "description": "Custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface \u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.", - "type": "string" - }, - "iqn": { - "description": "Target iSCSI Qualified Name.", - "type": "string" - }, - "iscsiInterface": { - "description": "iSCSI Interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).", - "type": "string" - }, - "lun": { - "description": "iSCSI Target Lun number.", - "type": "integer", - "format": "int32" - }, - "portals": { - "description": "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - "type": "array", - "items": { - "type": "string" - } - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", - "type": "boolean" - }, - "secretRef": { - "description": "CHAP Secret for iSCSI target and initiator authentication", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "targetPortal": { - "description": "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.KeyToPath": { - "description": "Maps a string key to a path within a volume.", - "required": [ - "key", - "path" - ], - "properties": { - "key": { - "description": "The key to project.", - "type": "string" - }, - "mode": { - "description": "Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "path": { - "description": "The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Lifecycle": { - "description": "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.", - "properties": { - "postStart": { - "description": "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", - "$ref": "#/definitions/io.k8s.api.core.v1.Handler" - }, - "preStop": { - "description": "PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks", - "$ref": "#/definitions/io.k8s.api.core.v1.Handler" - } - } - }, - "io.k8s.api.core.v1.LimitRange": { - "description": "LimitRange sets resource usage limits for each kind of resource in a Namespace.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRange", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeItem": { - "description": "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.", - "properties": { - "default": { - "description": "Default resource requirement limit value by resource name if resource limit is omitted.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "defaultRequest": { - "description": "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "max": { - "description": "Max usage constraints on this kind by resource name.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "maxLimitRequestRatio": { - "description": "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "min": { - "description": "Min usage constraints on this kind by resource name.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "type": { - "description": "Type of resource that this limit applies to.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.LimitRangeList": { - "description": "LimitRangeList is a list of LimitRange items.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "LimitRangeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.LimitRangeSpec": { - "description": "LimitRangeSpec defines a min/max usage limit for resources that match on kind.", - "required": [ - "limits" - ], - "properties": { - "limits": { - "description": "Limits is the list of LimitRangeItem objects that are enforced.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - } - } - } - }, - "io.k8s.api.core.v1.LoadBalancerIngress": { - "description": "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.", - "properties": { - "hostname": { - "description": "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)", - "type": "string" - }, - "ip": { - "description": "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.LoadBalancerStatus": { - "description": "LoadBalancerStatus represents the status of a load-balancer.", - "properties": { - "ingress": { - "description": "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - } - } - } - }, - "io.k8s.api.core.v1.LocalObjectReference": { - "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", - "properties": { - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.LocalVolumeSource": { - "description": "Local represents directly-attached storage with node affinity (Beta feature)", - "required": [ - "path" - ], - "properties": { - "path": { - "description": "The full path to the volume on the node. It can be either a directory or block device (disk, partition, ...). Directories can be represented only by PersistentVolume with VolumeMode=Filesystem. Block devices can be represented only by VolumeMode=Block, which also requires the BlockVolume alpha feature gate to be enabled.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.NFSVolumeSource": { - "description": "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.", - "required": [ - "server", - "path" - ], - "properties": { - "path": { - "description": "Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "type": "boolean" - }, - "server": { - "description": "Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Namespace": { - "description": "Namespace provides a scope for Names. Use of multiple namespaces is optional.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec" - }, - "status": { - "description": "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Namespace", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceList": { - "description": "NamespaceList is a list of Namespaces.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NamespaceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NamespaceSpec": { - "description": "NamespaceSpec describes the attributes on a Namespace.", - "properties": { - "finalizers": { - "description": "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.NamespaceStatus": { - "description": "NamespaceStatus is information about the current status of a Namespace.", - "properties": { - "phase": { - "description": "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Node": { - "description": "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec" - }, - "status": { - "description": "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Node", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeAddress": { - "description": "NodeAddress contains information for the node's address.", - "required": [ - "type", - "address" - ], - "properties": { - "address": { - "description": "The node address.", - "type": "string" - }, - "type": { - "description": "Node address type, one of Hostname, ExternalIP or InternalIP.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.NodeAffinity": { - "description": "Node affinity is a group of node affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - } - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector" - } - } - }, - "io.k8s.api.core.v1.NodeCondition": { - "description": "NodeCondition contains condition information for a node.", - "required": [ - "type", - "status" - ], - "properties": { - "lastHeartbeatTime": { - "description": "Last time we got an update on a given condition.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastTransitionTime": { - "description": "Last time the condition transit from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "(brief) reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of node condition.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.NodeConfigSource": { - "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", - "properties": { - "configMap": { - "description": "ConfigMap is a reference to a Node's ConfigMap", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapNodeConfigSource" - } - } - }, - "io.k8s.api.core.v1.NodeConfigStatus": { - "description": "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.", - "properties": { - "active": { - "description": "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource" - }, - "assigned": { - "description": "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource" - }, - "error": { - "description": "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.", - "type": "string" - }, - "lastKnownGood": { - "description": "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource" - } - } - }, - "io.k8s.api.core.v1.NodeDaemonEndpoints": { - "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", - "properties": { - "kubeletEndpoint": { - "description": "Endpoint on which Kubelet is listening.", - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint" - } - } - }, - "io.k8s.api.core.v1.NodeList": { - "description": "NodeList is the whole list of all Nodes which have been registered with master.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of nodes", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "NodeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.NodeSelector": { - "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", - "required": [ - "nodeSelectorTerms" - ], - "properties": { - "nodeSelectorTerms": { - "description": "Required. A list of node selector terms. The terms are ORed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - } - } - } - }, - "io.k8s.api.core.v1.NodeSelectorRequirement": { - "description": "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "description": "The label key that the selector applies to.", - "type": "string" - }, - "operator": { - "description": "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.", - "type": "string" - }, - "values": { - "description": "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.NodeSelectorTerm": { - "description": "A null or empty node selector term matches no objects. The requirements of them are ANDed.", - "properties": { - "matchExpressions": { - "description": "A list of node selector requirements by node's labels.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - } - }, - "matchFields": { - "description": "A list of node selector requirements by node's fields.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - } - } - } - }, - "io.k8s.api.core.v1.NodeSpec": { - "description": "NodeSpec describes the attributes that a node is created with.", - "properties": { - "configSource": { - "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource" - }, - "externalID": { - "description": "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966", - "type": "string" - }, - "podCIDR": { - "description": "PodCIDR represents the pod IP range assigned to the node.", - "type": "string" - }, - "providerID": { - "description": "ID of the node assigned by the cloud provider in the format: \u003cProviderName\u003e://\u003cProviderSpecificNodeID\u003e", - "type": "string" - }, - "taints": { - "description": "If specified, the node's taints.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - } - }, - "unschedulable": { - "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.NodeStatus": { - "description": "NodeStatus is information about the current status of a node.", - "properties": { - "addresses": { - "description": "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "allocatable": { - "description": "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "capacity": { - "description": "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "conditions": { - "description": "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "config": { - "description": "Status of the config assigned to the node via the dynamic Kubelet config feature.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigStatus" - }, - "daemonEndpoints": { - "description": "Endpoints of daemons running on the Node.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints" - }, - "images": { - "description": "List of container images on this node", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - } - }, - "nodeInfo": { - "description": "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo" - }, - "phase": { - "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", - "type": "string" - }, - "volumesAttached": { - "description": "List of volumes that are attached to the node.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - } - }, - "volumesInUse": { - "description": "List of attachable volumes in use (mounted) by the node.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.NodeSystemInfo": { - "description": "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.", - "required": [ - "machineID", - "systemUUID", - "bootID", - "kernelVersion", - "osImage", - "containerRuntimeVersion", - "kubeletVersion", - "kubeProxyVersion", - "operatingSystem", - "architecture" - ], - "properties": { - "architecture": { - "description": "The Architecture reported by the node", - "type": "string" - }, - "bootID": { - "description": "Boot ID reported by the node.", - "type": "string" - }, - "containerRuntimeVersion": { - "description": "ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).", - "type": "string" - }, - "kernelVersion": { - "description": "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).", - "type": "string" - }, - "kubeProxyVersion": { - "description": "KubeProxy Version reported by the node.", - "type": "string" - }, - "kubeletVersion": { - "description": "Kubelet Version reported by the node.", - "type": "string" - }, - "machineID": { - "description": "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html", - "type": "string" - }, - "operatingSystem": { - "description": "The Operating System reported by the node", - "type": "string" - }, - "osImage": { - "description": "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).", - "type": "string" - }, - "systemUUID": { - "description": "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ObjectFieldSelector": { - "description": "ObjectFieldSelector selects an APIVersioned field of an object.", - "required": [ - "fieldPath" - ], - "properties": { - "apiVersion": { - "description": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".", - "type": "string" - }, - "fieldPath": { - "description": "Path of the field to select in the specified API version.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ObjectReference": { - "description": "ObjectReference contains enough information to let you inspect or modify the referred object.", - "properties": { - "apiVersion": { - "description": "API version of the referent.", - "type": "string" - }, - "fieldPath": { - "description": "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.", - "type": "string" - }, - "kind": { - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "namespace": { - "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/", - "type": "string" - }, - "resourceVersion": { - "description": "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PersistentVolume": { - "description": "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec" - }, - "status": { - "description": "Status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolume", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaim": { - "description": "PersistentVolumeClaim is a user's request for and claim to a persistent volume", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec" - }, - "status": { - "description": "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaim", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimCondition": { - "description": "PersistentVolumeClaimCondition contails details about state of pvc", - "required": [ - "type", - "status" - ], - "properties": { - "lastProbeTime": { - "description": "Last time we probed the condition.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PersistentVolumeClaimList": { - "description": "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "A list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeClaimList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeClaimSpec": { - "description": "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes", - "properties": { - "accessModes": { - "description": "AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" - }, - "selector": { - "description": "A label query over volumes to consider for binding.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "storageClassName": { - "description": "Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1", - "type": "string" - }, - "volumeMode": { - "description": "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. This is an alpha feature and may change in the future.", - "type": "string" - }, - "volumeName": { - "description": "VolumeName is the binding reference to the PersistentVolume backing this claim.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PersistentVolumeClaimStatus": { - "description": "PersistentVolumeClaimStatus is the current status of a persistent volume claim.", - "properties": { - "accessModes": { - "description": "AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1", - "type": "array", - "items": { - "type": "string" - } - }, - "capacity": { - "description": "Represents the actual resources of the underlying volume.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "conditions": { - "description": "Current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "phase": { - "description": "Phase represents the current phase of PersistentVolumeClaim.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource": { - "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).", - "required": [ - "claimName" - ], - "properties": { - "claimName": { - "description": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "type": "string" - }, - "readOnly": { - "description": "Will force the ReadOnly setting in VolumeMounts. Default false.", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.PersistentVolumeList": { - "description": "PersistentVolumeList is a list of PersistentVolume items.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PersistentVolumeList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PersistentVolumeSpec": { - "description": "PersistentVolumeSpec is the specification of a persistent volume.", - "properties": { - "accessModes": { - "description": "AccessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes", - "type": "array", - "items": { - "type": "string" - } - }, - "awsElasticBlockStore": { - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" - }, - "azureDisk": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource" - }, - "azureFile": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource" - }, - "capacity": { - "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "cephfs": { - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSPersistentVolumeSource" - }, - "cinder": { - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource" - }, - "claimRef": { - "description": "ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "csi": { - "description": "CSI represents storage that handled by an external CSI driver (Beta feature).", - "$ref": "#/definitions/io.k8s.api.core.v1.CSIPersistentVolumeSource" - }, - "fc": { - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource" - }, - "flexVolume": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "$ref": "#/definitions/io.k8s.api.core.v1.FlexPersistentVolumeSource" - }, - "flocker": { - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running", - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource" - }, - "gcePersistentDisk": { - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" - }, - "glusterfs": { - "description": "Glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource" - }, - "hostPath": { - "description": "HostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource" - }, - "iscsi": { - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.", - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIPersistentVolumeSource" - }, - "local": { - "description": "Local represents directly-attached storage with node affinity", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource" - }, - "mountOptions": { - "description": "A list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options", - "type": "array", - "items": { - "type": "string" - } - }, - "nfs": { - "description": "NFS represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource" - }, - "nodeAffinity": { - "description": "NodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.", - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeNodeAffinity" - }, - "persistentVolumeReclaimPolicy": { - "description": "What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming", - "type": "string" - }, - "photonPersistentDisk": { - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" - }, - "portworxVolume": { - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource" - }, - "quobyte": { - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource" - }, - "rbd": { - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.RBDPersistentVolumeSource" - }, - "scaleIO": { - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOPersistentVolumeSource" - }, - "storageClassName": { - "description": "Name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.", - "type": "string" - }, - "storageos": { - "description": "StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource" - }, - "volumeMode": { - "description": "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. This is an alpha feature and may change in the future.", - "type": "string" - }, - "vsphereVolume": { - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" - } - } - }, - "io.k8s.api.core.v1.PersistentVolumeStatus": { - "description": "PersistentVolumeStatus is the current status of a persistent volume.", - "properties": { - "message": { - "description": "A human-readable message indicating details about why the volume is in this state.", - "type": "string" - }, - "phase": { - "description": "Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase", - "type": "string" - }, - "reason": { - "description": "Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource": { - "description": "Represents a Photon Controller persistent disk resource.", - "required": [ - "pdID" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "pdID": { - "description": "ID that identifies Photon Controller persistent disk", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Pod": { - "description": "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec" - }, - "status": { - "description": "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Pod", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodAffinity": { - "description": "Pod affinity is a group of inter pod affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - } - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - } - } - } - }, - "io.k8s.api.core.v1.PodAffinityTerm": { - "description": "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key \u003ctopologyKey\u003e matches that of any node on which a pod of the set of pods is running", - "required": [ - "topologyKey" - ], - "properties": { - "labelSelector": { - "description": "A label query over a set of resources, in this case pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "namespaces": { - "description": "namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means \"this pod's namespace\"", - "type": "array", - "items": { - "type": "string" - } - }, - "topologyKey": { - "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PodAntiAffinity": { - "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "properties": { - "preferredDuringSchedulingIgnoredDuringExecution": { - "description": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - } - }, - "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - } - } - } - }, - "io.k8s.api.core.v1.PodCondition": { - "description": "PodCondition contains details for the current condition of this pod.", - "required": [ - "type", - "status" - ], - "properties": { - "lastProbeTime": { - "description": "Last time we probed the condition.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition. Currently only Ready. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PodDNSConfig": { - "description": "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.", - "properties": { - "nameservers": { - "description": "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.", - "type": "array", - "items": { - "type": "string" - } - }, - "options": { - "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" - } - }, - "searches": { - "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.PodDNSConfigOption": { - "description": "PodDNSConfigOption defines DNS resolver options of a pod.", - "properties": { - "name": { - "description": "Required.", - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PodList": { - "description": "PodList is a list of Pods.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of pods. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodSecurityContext": { - "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", - "properties": { - "fsGroup": { - "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.", - "type": "integer", - "format": "int64" - }, - "runAsGroup": { - "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - "type": "integer", - "format": "int64" - }, - "runAsNonRoot": { - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "boolean" - }, - "runAsUser": { - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - "type": "integer", - "format": "int64" - }, - "seLinuxOptions": { - "description": "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - }, - "supplementalGroups": { - "description": "A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.", - "type": "array", - "items": { - "type": "integer", - "format": "int64" - } - } - } - }, - "io.k8s.api.core.v1.PodSpec": { - "description": "PodSpec is a description of a pod.", - "required": [ - "containers" - ], - "properties": { - "activeDeadlineSeconds": { - "description": "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.", - "type": "integer", - "format": "int64" - }, - "affinity": { - "description": "If specified, the pod's scheduling constraints", - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.", - "type": "boolean" - }, - "containers": { - "description": "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "dnsConfig": { - "description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig" - }, - "dnsPolicy": { - "description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.", - "type": "string" - }, - "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "x-kubernetes-patch-merge-key": "ip", - "x-kubernetes-patch-strategy": "merge" - }, - "hostIPC": { - "description": "Use the host's ipc namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostNetwork": { - "description": "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.", - "type": "boolean" - }, - "hostPID": { - "description": "Use the host's pid namespace. Optional: Default to false.", - "type": "boolean" - }, - "hostname": { - "description": "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.", - "type": "string" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "initContainers": { - "description": "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "nodeName": { - "description": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.", - "type": "string" - }, - "nodeSelector": { - "description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "priority": { - "description": "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.", - "type": "integer", - "format": "int32" - }, - "priorityClassName": { - "description": "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.", - "type": "string" - }, - "restartPolicy": { - "description": "Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy", - "type": "string" - }, - "schedulerName": { - "description": "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.", - "type": "string" - }, - "securityContext": { - "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext" - }, - "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", - "type": "string" - }, - "serviceAccountName": { - "description": "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "string" - }, - "shareProcessNamespace": { - "description": "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is alpha-level and is honored only by servers that enable the PodShareProcessNamespace feature.", - "type": "boolean" - }, - "subdomain": { - "description": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\". If not specified, the pod will not have a domainname at all.", - "type": "string" - }, - "terminationGracePeriodSeconds": { - "description": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.", - "type": "integer", - "format": "int64" - }, - "tolerations": { - "description": "If specified, the pod's tolerations.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - } - }, - "volumes": { - "description": "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge,retainKeys" - } - } - }, - "io.k8s.api.core.v1.PodStatus": { - "description": "PodStatus represents information about the status of a pod. Status may trail the actual state of a system.", - "properties": { - "conditions": { - "description": "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "containerStatuses": { - "description": "The list has one entry per container in the manifest. Each entry is currently the output of `docker inspect`. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - } - }, - "hostIP": { - "description": "IP address of the host to which the pod is assigned. Empty if not yet scheduled.", - "type": "string" - }, - "initContainerStatuses": { - "description": "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - } - }, - "message": { - "description": "A human readable message indicating details about why the pod is in this condition.", - "type": "string" - }, - "nominatedNodeName": { - "description": "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.", - "type": "string" - }, - "phase": { - "description": "Current condition of the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase", - "type": "string" - }, - "podIP": { - "description": "IP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.", - "type": "string" - }, - "qosClass": { - "description": "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md", - "type": "string" - }, - "reason": { - "description": "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'", - "type": "string" - }, - "startTime": { - "description": "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.api.core.v1.PodTemplate": { - "description": "PodTemplate describes a template for creating copies of a predefined pod.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "template": { - "description": "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplate", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateList": { - "description": "PodTemplateList is a list of PodTemplates.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of pod templates", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "PodTemplateList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.PodTemplateSpec": { - "description": "PodTemplateSpec describes the data a pod should have when created from a template", - "properties": { - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec" - } - } - }, - "io.k8s.api.core.v1.PortworxVolumeSource": { - "description": "PortworxVolumeSource represents a Portworx volume resource.", - "required": [ - "volumeID" - ], - "properties": { - "fsType": { - "description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "volumeID": { - "description": "VolumeID uniquely identifies a Portworx volume", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.PreferredSchedulingTerm": { - "description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).", - "required": [ - "weight", - "preference" - ], - "properties": { - "preference": { - "description": "A node selector term, associated with the corresponding weight.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "weight": { - "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.Probe": { - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "properties": { - "exec": { - "description": "One and only one of the following should be specified. Exec specifies the action to take.", - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" - }, - "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "httpGet": { - "description": "HTTPGet specifies the http request to perform.", - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" - }, - "initialDelaySeconds": { - "description": "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "successThreshold": { - "description": "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.", - "type": "integer", - "format": "int32" - }, - "tcpSocket": { - "description": "TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported", - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" - }, - "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.ProjectedVolumeSource": { - "description": "Represents a projected volume source", - "required": [ - "sources" - ], - "properties": { - "defaultMode": { - "description": "Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "sources": { - "description": "list of volume projections", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - } - } - } - }, - "io.k8s.api.core.v1.QuobyteVolumeSource": { - "description": "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.", - "required": [ - "registry", - "volume" - ], - "properties": { - "group": { - "description": "Group to map volume access to Default is no group", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.", - "type": "boolean" - }, - "registry": { - "description": "Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes", - "type": "string" - }, - "user": { - "description": "User to map volume access to Defaults to serivceaccount user", - "type": "string" - }, - "volume": { - "description": "Volume is a string that references an already created Quobyte volume by name.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.RBDPersistentVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - "type": "string" - }, - "image": { - "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "keyring": { - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "monitors": { - "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "array", - "items": { - "type": "string" - } - }, - "pool": { - "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.RBDVolumeSource": { - "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.", - "required": [ - "monitors", - "image" - ], - "properties": { - "fsType": { - "description": "Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd", - "type": "string" - }, - "image": { - "description": "The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "keyring": { - "description": "Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "monitors": { - "description": "A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "array", - "items": { - "type": "string" - } - }, - "pool": { - "description": "The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - }, - "readOnly": { - "description": "ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "user": { - "description": "The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ReplicationController": { - "description": "ReplicationController represents the configuration of a replication controller.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec" - }, - "status": { - "description": "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationController", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerCondition": { - "description": "ReplicationControllerCondition describes the state of a replication controller at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "The last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replication controller condition.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ReplicationControllerList": { - "description": "ReplicationControllerList is a collection of replication controllers.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ReplicationControllerList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ReplicationControllerSpec": { - "description": "ReplicationControllerSpec is the specification of a replication controller.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "template": { - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.core.v1.ReplicationControllerStatus": { - "description": "ReplicationControllerStatus represents the current status of a replication controller.", - "required": [ - "replicas" - ], - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replication controller.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a replication controller's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replication controller.", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed replication controller.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replication controller.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.core.v1.ResourceFieldSelector": { - "description": "ResourceFieldSelector represents container resources (cpu, memory) and their output format", - "required": [ - "resource" - ], - "properties": { - "containerName": { - "description": "Container name: required for volumes, optional for env vars", - "type": "string" - }, - "divisor": { - "description": "Specifies the output format of the exposed resources, defaults to \"1\"", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - }, - "resource": { - "description": "Required: resource to select", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ResourceQuota": { - "description": "ResourceQuota sets aggregate quota restrictions enforced per namespace", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec" - }, - "status": { - "description": "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuota", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaList": { - "description": "ResourceQuotaList is a list of ResourceQuota items.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ResourceQuotaList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ResourceQuotaSpec": { - "description": "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.", - "properties": { - "hard": { - "description": "Hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "scopes": { - "description": "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.core.v1.ResourceQuotaStatus": { - "description": "ResourceQuotaStatus defines the enforced hard limits and observed use.", - "properties": { - "hard": { - "description": "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "used": { - "description": "Used is the current observed total usage of the resource in the namespace.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - } - }, - "io.k8s.api.core.v1.ResourceRequirements": { - "description": "ResourceRequirements describes the compute resource requirements.", - "properties": { - "limits": { - "description": "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - }, - "requests": { - "description": "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" - } - } - } - }, - "io.k8s.api.core.v1.SELinuxOptions": { - "description": "SELinuxOptions are the labels to be applied to the container", - "properties": { - "level": { - "description": "Level is SELinux level label that applies to the container.", - "type": "string" - }, - "role": { - "description": "Role is a SELinux role label that applies to the container.", - "type": "string" - }, - "type": { - "description": "Type is a SELinux type label that applies to the container.", - "type": "string" - }, - "user": { - "description": "User is a SELinux user label that applies to the container.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ScaleIOPersistentVolumeSource": { - "description": "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "gateway": { - "description": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretReference" - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ScaleIOVolumeSource": { - "description": "ScaleIOVolumeSource represents a persistent ScaleIO volume", - "required": [ - "gateway", - "system", - "secretRef" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "gateway": { - "description": "The host address of the ScaleIO API Gateway.", - "type": "string" - }, - "protectionDomain": { - "description": "The name of the ScaleIO Protection Domain for the configured storage.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "sslEnabled": { - "description": "Flag to enable/disable SSL communication with Gateway, default false", - "type": "boolean" - }, - "storageMode": { - "description": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.", - "type": "string" - }, - "storagePool": { - "description": "The ScaleIO Storage Pool associated with the protection domain.", - "type": "string" - }, - "system": { - "description": "The name of the storage system as configured in ScaleIO.", - "type": "string" - }, - "volumeName": { - "description": "The name of a volume already created in the ScaleIO system that is associated with this volume source.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Secret": { - "description": "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "data": { - "description": "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4", - "type": "object", - "additionalProperties": { - "type": "string", - "format": "byte" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "stringData": { - "description": "stringData allows specifying non-binary secret data in string form. It is provided as a write-only convenience method. All keys and values are merged into the data field on write, overwriting any existing values. It is never output when reading from the API.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "type": { - "description": "Used to facilitate programmatic handling of secret data.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Secret", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretEnvSource": { - "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", - "properties": { - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the Secret must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.SecretKeySelector": { - "description": "SecretKeySelector selects a key of a Secret.", - "required": [ - "key" - ], - "properties": { - "key": { - "description": "The key of the secret to select from. Must be a valid secret key.", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the Secret or it's key must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.SecretList": { - "description": "SecretList is a list of Secret.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "SecretList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.SecretProjection": { - "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.", - "properties": { - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "optional": { - "description": "Specify whether the Secret or its key must be defined", - "type": "boolean" - } - } - }, - "io.k8s.api.core.v1.SecretReference": { - "description": "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace", - "properties": { - "name": { - "description": "Name is unique within a namespace to reference a secret resource.", - "type": "string" - }, - "namespace": { - "description": "Namespace defines the space within which the secret name must be unique.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.SecretVolumeSource": { - "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.", - "properties": { - "defaultMode": { - "description": "Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", - "type": "integer", - "format": "int32" - }, - "items": { - "description": "If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - } - }, - "optional": { - "description": "Specify whether the Secret or it's keys must be defined", - "type": "boolean" - }, - "secretName": { - "description": "Name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.SecurityContext": { - "description": "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.", - "properties": { - "allowPrivilegeEscalation": { - "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN", - "type": "boolean" - }, - "capabilities": { - "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.", - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities" - }, - "privileged": { - "description": "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "Whether this container has a read-only root filesystem. Default is false.", - "type": "boolean" - }, - "runAsGroup": { - "description": "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "integer", - "format": "int64" - }, - "runAsNonRoot": { - "description": "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "boolean" - }, - "runAsUser": { - "description": "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "type": "integer", - "format": "int64" - }, - "seLinuxOptions": { - "description": "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - } - } - }, - "io.k8s.api.core.v1.Service": { - "description": "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec" - }, - "status": { - "description": "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Service", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccount": { - "description": "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "automountServiceAccountToken": { - "description": "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.", - "type": "boolean" - }, - "imagePullSecrets": { - "description": "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "secrets": { - "description": "Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount. More info: https://kubernetes.io/docs/concepts/configuration/secret", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccount", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceAccountList": { - "description": "ServiceAccountList is a list of ServiceAccount objects", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceAccountList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServiceList": { - "description": "ServiceList holds a list of services.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of services", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "ServiceList", - "version": "v1" - } - ] - }, - "io.k8s.api.core.v1.ServicePort": { - "description": "ServicePort contains information on service's port.", - "required": [ - "port" - ], - "properties": { - "name": { - "description": "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.", - "type": "string" - }, - "nodePort": { - "description": "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport", - "type": "integer", - "format": "int32" - }, - "port": { - "description": "The port that will be exposed by this service.", - "type": "integer", - "format": "int32" - }, - "protocol": { - "description": "The IP protocol for this port. Supports \"TCP\" and \"UDP\". Default is TCP.", - "type": "string" - }, - "targetPort": { - "description": "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.core.v1.ServiceSpec": { - "description": "ServiceSpec describes the attributes that a user creates on a service.", - "properties": { - "clusterIP": { - "description": "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "externalIPs": { - "description": "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.", - "type": "array", - "items": { - "type": "string" - } - }, - "externalName": { - "description": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires Type to be ExternalName.", - "type": "string" - }, - "externalTrafficPolicy": { - "description": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", - "type": "string" - }, - "healthCheckNodePort": { - "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", - "type": "integer", - "format": "int32" - }, - "loadBalancerIP": { - "description": "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.", - "type": "string" - }, - "loadBalancerSourceRanges": { - "description": "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/", - "type": "array", - "items": { - "type": "string" - } - }, - "ports": { - "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "x-kubernetes-patch-merge-key": "port", - "x-kubernetes-patch-strategy": "merge" - }, - "publishNotReadyAddresses": { - "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery.", - "type": "boolean" - }, - "selector": { - "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "sessionAffinity": { - "description": "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", - "type": "string" - }, - "sessionAffinityConfig": { - "description": "sessionAffinityConfig contains the configurations of session affinity.", - "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig" - }, - "type": { - "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.ServiceStatus": { - "description": "ServiceStatus represents the current status of a service.", - "properties": { - "loadBalancer": { - "description": "LoadBalancer contains the current status of the load-balancer, if one is present.", - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus" - } - } - }, - "io.k8s.api.core.v1.SessionAffinityConfig": { - "description": "SessionAffinityConfig represents the configurations of session affinity.", - "properties": { - "clientIP": { - "description": "clientIP contains the configurations of Client IP based session affinity.", - "$ref": "#/definitions/io.k8s.api.core.v1.ClientIPConfig" - } - } - }, - "io.k8s.api.core.v1.StorageOSPersistentVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "volumeName": { - "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - "type": "string" - }, - "volumeNamespace": { - "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.StorageOSVolumeSource": { - "description": "Represents a StorageOS persistent volume resource.", - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "readOnly": { - "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", - "type": "boolean" - }, - "secretRef": { - "description": "SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "volumeName": { - "description": "VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.", - "type": "string" - }, - "volumeNamespace": { - "description": "VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.TCPSocketAction": { - "description": "TCPSocketAction describes an action based on opening a socket", - "required": [ - "port" - ], - "properties": { - "host": { - "description": "Optional: Host name to connect to, defaults to the pod IP.", - "type": "string" - }, - "port": { - "description": "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.core.v1.Taint": { - "description": "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.", - "required": [ - "key", - "effect" - ], - "properties": { - "effect": { - "description": "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Required. The taint key to be applied to a node.", - "type": "string" - }, - "timeAdded": { - "description": "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "value": { - "description": "Required. The taint value corresponding to the taint key.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Toleration": { - "description": "The pod this Toleration is attached to tolerates any taint that matches the triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e.", - "properties": { - "effect": { - "description": "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.", - "type": "string" - }, - "key": { - "description": "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.", - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.", - "type": "string" - }, - "tolerationSeconds": { - "description": "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.", - "type": "integer", - "format": "int64" - }, - "value": { - "description": "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.Volume": { - "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod.", - "required": [ - "name" - ], - "properties": { - "awsElasticBlockStore": { - "description": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore", - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" - }, - "azureDisk": { - "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource" - }, - "azureFile": { - "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource" - }, - "cephfs": { - "description": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime", - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource" - }, - "cinder": { - "description": "Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource" - }, - "configMap": { - "description": "ConfigMap represents a configMap that should populate this volume", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource" - }, - "downwardAPI": { - "description": "DownwardAPI represents downward API about the pod that should populate this volume", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource" - }, - "emptyDir": { - "description": "EmptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir", - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource" - }, - "fc": { - "description": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource" - }, - "flexVolume": { - "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.", - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource" - }, - "flocker": { - "description": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running", - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource" - }, - "gcePersistentDisk": { - "description": "GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk", - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" - }, - "gitRepo": { - "description": "GitRepo represents a git repository at a particular revision.", - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource" - }, - "glusterfs": { - "description": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource" - }, - "hostPath": { - "description": "HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath", - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource" - }, - "iscsi": { - "description": "ISCSI represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource" - }, - "name": { - "description": "Volume's name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", - "type": "string" - }, - "nfs": { - "description": "NFS represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs", - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource" - }, - "persistentVolumeClaim": { - "description": "PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" - }, - "photonPersistentDisk": { - "description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" - }, - "portworxVolume": { - "description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource" - }, - "projected": { - "description": "Items for all in one resources secrets, configmaps, and downward API", - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource" - }, - "quobyte": { - "description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime", - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource" - }, - "rbd": { - "description": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md", - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" - }, - "scaleIO": { - "description": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.", - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource" - }, - "secret": { - "description": "Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource" - }, - "storageos": { - "description": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.", - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource" - }, - "vsphereVolume": { - "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine", - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" - } - } - }, - "io.k8s.api.core.v1.VolumeDevice": { - "description": "volumeDevice describes a mapping of a raw block device within a container.", - "required": [ - "name", - "devicePath" - ], - "properties": { - "devicePath": { - "description": "devicePath is the path inside of the container that the device will be mapped to.", - "type": "string" - }, - "name": { - "description": "name must match the name of a persistentVolumeClaim in the pod", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.VolumeMount": { - "description": "VolumeMount describes a mounting of a Volume within a container.", - "required": [ - "name", - "mountPath" - ], - "properties": { - "mountPath": { - "description": "Path within the container at which the volume should be mounted. Must not contain ':'.", - "type": "string" - }, - "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationHostToContainer is used. This field is beta in 1.10.", - "type": "string" - }, - "name": { - "description": "This must match the Name of a Volume.", - "type": "string" - }, - "readOnly": { - "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", - "type": "boolean" - }, - "subPath": { - "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.VolumeNodeAffinity": { - "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", - "properties": { - "required": { - "description": "Required specifies hard node constraints that must be met.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector" - } - } - }, - "io.k8s.api.core.v1.VolumeProjection": { - "description": "Projection that may be projected along with other supported volume types", - "properties": { - "configMap": { - "description": "information about the configMap data to project", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection" - }, - "downwardAPI": { - "description": "information about the downwardAPI data to project", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection" - }, - "secret": { - "description": "information about the secret data to project", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection" - } - } - }, - "io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource": { - "description": "Represents a vSphere volume resource.", - "required": [ - "volumePath" - ], - "properties": { - "fsType": { - "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", - "type": "string" - }, - "storagePolicyID": { - "description": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.", - "type": "string" - }, - "storagePolicyName": { - "description": "Storage Policy Based Management (SPBM) profile name.", - "type": "string" - }, - "volumePath": { - "description": "Path that identifies vSphere volume vmdk", - "type": "string" - } - } - }, - "io.k8s.api.core.v1.WeightedPodAffinityTerm": { - "description": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)", - "required": [ - "weight", - "podAffinityTerm" - ], - "properties": { - "podAffinityTerm": { - "description": "Required. A pod affinity term, associated with the corresponding weight.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "weight": { - "description": "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.events.v1beta1.Event": { - "description": "Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.", - "required": [ - "eventTime" - ], - "properties": { - "action": { - "description": "What action was taken/failed regarding to the regarding object.", - "type": "string" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "deprecatedCount": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "type": "integer", - "format": "int32" - }, - "deprecatedFirstTimestamp": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "deprecatedLastTimestamp": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "deprecatedSource": { - "description": "Deprecated field assuring backward compatibility with core.v1 Event type", - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource" - }, - "eventTime": { - "description": "Required. Time when this Event was first observed.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "note": { - "description": "Optional. A human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.", - "type": "string" - }, - "reason": { - "description": "Why the action was taken.", - "type": "string" - }, - "regarding": { - "description": "The object this Event is about. In most cases it's an Object reporting controller implements. E.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "related": { - "description": "Optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "reportingController": { - "description": "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.", - "type": "string" - }, - "reportingInstance": { - "description": "ID of the controller instance, e.g. `kubelet-xyzf`.", - "type": "string" - }, - "series": { - "description": "Data about the Event series this event represents or nil if it's a singleton Event.", - "$ref": "#/definitions/io.k8s.api.events.v1beta1.EventSeries" - }, - "type": { - "description": "Type of this event (Normal, Warning), new types could be added in the future.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "Event", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventList": { - "description": "EventList is a list of Event objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of schema objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.events.v1beta1.Event" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "events.k8s.io", - "kind": "EventList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.events.v1beta1.EventSeries": { - "description": "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.", - "required": [ - "count", - "lastObservedTime", - "state" - ], - "properties": { - "count": { - "description": "Number of occurrences in this series up to the last heartbeat time", - "type": "integer", - "format": "int32" - }, - "lastObservedTime": { - "description": "Time when last Event from the series was seen before last heartbeat.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime" - }, - "state": { - "description": "Information whether this series is ongoing or finished.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used. Deprecated: use AllowedFlexVolume from policy API Group instead.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined. Deprecated: use AllowedHostPath from policy API Group instead.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSet": { - "description": "DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec" - }, - "status": { - "description": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "DaemonSet", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DaemonSetCondition": { - "description": "DaemonSetCondition describes the state of a DaemonSet at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of DaemonSet condition.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSetList": { - "description": "DaemonSetList is a collection of daemon sets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "A list of daemon sets.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "DaemonSetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DaemonSetSpec": { - "description": "DaemonSetSpec is the specification of a daemon set.", - "required": [ - "template" - ], - "properties": { - "minReadySeconds": { - "description": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "templateGeneration": { - "description": "DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.", - "type": "integer", - "format": "int64" - }, - "updateStrategy": { - "description": "An update strategy to replace existing DaemonSet pods with new pods.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSetStatus": { - "description": "DaemonSetStatus represents the current status of a daemon set.", - "required": [ - "currentNumberScheduled", - "numberMisscheduled", - "desiredNumberScheduled", - "numberReady" - ], - "properties": { - "collisionCount": { - "description": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a DaemonSet's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "currentNumberScheduled": { - "description": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "desiredNumberScheduled": { - "description": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberAvailable": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "numberMisscheduled": { - "description": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "type": "integer", - "format": "int32" - }, - "numberReady": { - "description": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "type": "integer", - "format": "int32" - }, - "numberUnavailable": { - "description": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "The most recent generation observed by the daemon set controller.", - "type": "integer", - "format": "int64" - }, - "updatedNumberScheduled": { - "description": "The total number of nodes that are running updated daemon pod", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy": { - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if type = \"RollingUpdate\".", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet" - }, - "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.Deployment": { - "description": "DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the Deployment.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec" - }, - "status": { - "description": "Most recently observed status of the Deployment.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Deployment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DeploymentCondition": { - "description": "DeploymentCondition describes the state of a deployment at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "lastUpdateTime": { - "description": "The last time this condition was updated.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of deployment condition.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.DeploymentList": { - "description": "DeploymentList is a list of Deployments.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Deployments.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "DeploymentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DeploymentRollback": { - "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Required: This must match the Name of a deployment.", - "type": "string" - }, - "rollbackTo": { - "description": "The config of this deployment rollback.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" - }, - "updatedAnnotations": { - "description": "The annotations to be updated to a deployment", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "DeploymentRollback", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.DeploymentSpec": { - "description": "DeploymentSpec is the specification of the desired behavior of the Deployment.", - "required": [ - "template" - ], - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "paused": { - "description": "Indicates that the deployment is paused and will not be processed by the deployment controller.", - "type": "boolean" - }, - "progressDeadlineSeconds": { - "description": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is not set by default.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "type": "integer", - "format": "int32" - }, - "revisionHistoryLimit": { - "description": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.", - "type": "integer", - "format": "int32" - }, - "rollbackTo": { - "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" - }, - "selector": { - "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "strategy": { - "description": "The deployment strategy to use to replace existing pods with new ones.", - "x-kubernetes-patch-strategy": "retainKeys", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy" - }, - "template": { - "description": "Template describes the pods that will be created.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.extensions.v1beta1.DeploymentStatus": { - "description": "DeploymentStatus is the most recently observed status of the Deployment.", - "properties": { - "availableReplicas": { - "description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "collisionCount": { - "description": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a deployment's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "observedGeneration": { - "description": "The generation observed by the deployment controller.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "Total number of ready pods targeted by this deployment.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "type": "integer", - "format": "int32" - }, - "unavailableReplicas": { - "description": "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.", - "type": "integer", - "format": "int32" - }, - "updatedReplicas": { - "description": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.DeploymentStrategy": { - "description": "DeploymentStrategy describes how to replace existing pods with new ones.", - "properties": { - "rollingUpdate": { - "description": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment" - }, - "type": { - "description": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use FSGroupStrategyOptions from policy API Group instead.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IDRange" - } - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressPath": { - "description": "HTTPIngressPath associates a path regex with a backend. Incoming urls matching the path are forwarded to the backend.", - "required": [ - "backend" - ], - "properties": { - "backend": { - "description": "Backend defines the referenced service endpoint to which the traffic will be forwarded to.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend" - }, - "path": { - "description": "Path is an extended POSIX regex as defined by IEEE Std 1003.1, (i.e this follows the egrep/unix syntax, not the perl syntax) matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \"path\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. If unspecified, the path defaults to a catch all sending traffic to the backend.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue": { - "description": "HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://\u003chost\u003e/\u003cpath\u003e?\u003csearchpart\u003e -\u003e backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.", - "required": [ - "paths" - ], - "properties": { - "paths": { - "description": "A collection of paths that map requests to backends.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined. Deprecated: use HostPortRange from policy API Group instead.", - "required": [ - "min", - "max" - ], - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "type": "integer", - "format": "int32" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs. Deprecated: use IDRange from policy API Group instead.", - "required": [ - "min", - "max" - ], - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "type": "integer", - "format": "int64" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.extensions.v1beta1.IPBlock": { - "description": "DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", - "required": [ - "cidr" - ], - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" Except values will be rejected if they are outside the CIDR range", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.Ingress": { - "description": "Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec" - }, - "status": { - "description": "Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Ingress", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressBackend": { - "description": "IngressBackend describes all endpoints for a given service and port.", - "required": [ - "serviceName", - "servicePort" - ], - "properties": { - "serviceName": { - "description": "Specifies the name of the referenced service.", - "type": "string" - }, - "servicePort": { - "description": "Specifies the port of the referenced service.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressList": { - "description": "IngressList is a collection of Ingress.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of Ingress.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "IngressList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.IngressRule": { - "description": "IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.", - "properties": { - "host": { - "description": "Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \"host\" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the\n\t IP in the Spec of the parent Ingress.\n2. The `:` delimiter is not respected because ports are not allowed.\n\t Currently the port of an Ingress is implicitly :80 for http and\n\t :443 for https.\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.", - "type": "string" - }, - "http": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressSpec": { - "description": "IngressSpec describes the Ingress the user wishes to exist.", - "properties": { - "backend": { - "description": "A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend" - }, - "rules": { - "description": "A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - } - }, - "tls": { - "description": "TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressStatus": { - "description": "IngressStatus describe the current state of the Ingress.", - "properties": { - "loadBalancer": { - "description": "LoadBalancer contains the current status of the load-balancer.", - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus" - } - } - }, - "io.k8s.api.extensions.v1beta1.IngressTLS": { - "description": "IngressTLS describes the transport layer security associated with an Ingress.", - "properties": { - "hosts": { - "description": "Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.", - "type": "array", - "items": { - "type": "string" - } - }, - "secretName": { - "description": "SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \"Host\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicy": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior for this NetworkPolicy.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "NetworkPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", - "properties": { - "ports": { - "description": "List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort" - } - }, - "to": { - "description": "List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.", - "properties": { - "from": { - "description": "List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer" - } - }, - "ports": { - "description": "List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicyList": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of schema objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "NetworkPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicyPeer": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.", - "properties": { - "ipBlock": { - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IPBlock" - }, - "namespaceSelector": { - "description": "Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "podSelector": { - "description": "This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicyPort": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.", - "properties": { - "port": { - "description": "If specified, the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "protocol": { - "description": "Optional. The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.NetworkPolicySpec": { - "description": "DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.", - "required": [ - "podSelector" - ], - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule" - } - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default).", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule" - } - }, - "podSelector": { - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are Ingress, Egress, or Ingress,Egress. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "spec defines the policy enforced.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects. Deprecated: use PodSecurityPolicyList from policy API Group instead.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is a list of schema objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.", - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "type": "array", - "items": { - "type": "string" - } - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.AllowedFlexVolume" - } - }, - "allowedHostPaths": { - "description": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.AllowedHostPath" - } - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "type": "array", - "items": { - "type": "string" - } - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "fsGroup": { - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions" - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange" - } - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "type": "array", - "items": { - "type": "string" - } - }, - "runAsUser": { - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions" - }, - "seLinux": { - "description": "seLinux is the strategy that will dictate the allowable labels that may be set.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions" - }, - "supplementalGroups": { - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions" - }, - "volumes": { - "description": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.extensions.v1beta1.ReplicaSet": { - "description": "DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec" - }, - "status": { - "description": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "ReplicaSet", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetCondition": { - "description": "ReplicaSetCondition describes the state of a replica set at a certain point.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "The last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "A human readable message indicating details about the transition.", - "type": "string" - }, - "reason": { - "description": "The reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status of the condition, one of True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type of replica set condition.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetList": { - "description": "ReplicaSetList is a collection of ReplicaSets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "ReplicaSetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetSpec": { - "description": "ReplicaSetSpec is the specification of a ReplicaSet.", - "properties": { - "minReadySeconds": { - "description": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "template": { - "description": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - } - } - }, - "io.k8s.api.extensions.v1beta1.ReplicaSetStatus": { - "description": "ReplicaSetStatus represents the current status of a ReplicaSet.", - "required": [ - "replicas" - ], - "properties": { - "availableReplicas": { - "description": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "type": "integer", - "format": "int32" - }, - "conditions": { - "description": "Represents the latest available observations of a replica set's current state.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - }, - "fullyLabeledReplicas": { - "description": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "type": "integer", - "format": "int64" - }, - "readyReplicas": { - "description": "The number of ready replicas for this replica set.", - "type": "integer", - "format": "int32" - }, - "replicas": { - "description": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.RollbackConfig": { - "description": "DEPRECATED.", - "properties": { - "revision": { - "description": "The revision to rollback to. If set to 0, rollback to the last revision.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet": { - "description": "Spec to control the desired behavior of daemon set rolling update.", - "properties": { - "maxUnavailable": { - "description": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.extensions.v1beta1.RollingUpdateDeployment": { - "description": "Spec to control the desired behavior of rolling update.", - "properties": { - "maxSurge": { - "description": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "maxUnavailable": { - "description": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - } - } - }, - "io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.", - "required": [ - "rule" - ], - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IDRange" - } - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.", - "required": [ - "rule" - ], - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - } - } - }, - "io.k8s.api.extensions.v1beta1.Scale": { - "description": "represents a scaling request for a resource.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec" - }, - "status": { - "description": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "extensions", - "kind": "Scale", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.extensions.v1beta1.ScaleSpec": { - "description": "describes the attributes of a scale subresource", - "properties": { - "replicas": { - "description": "desired number of instances for the scaled object.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.extensions.v1beta1.ScaleStatus": { - "description": "represents the current status of a scale subresource.", - "required": [ - "replicas" - ], - "properties": { - "replicas": { - "description": "actual number of observed instances of the scaled object.", - "type": "integer", - "format": "int32" - }, - "selector": { - "description": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "targetSelector": { - "description": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "type": "string" - } - } - }, - "io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IDRange" - } - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - } - }, - "io.k8s.api.networking.v1.IPBlock": { - "description": "IPBlock describes a particular CIDR (Ex. \"192.168.1.1/24\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.", - "required": [ - "cidr" - ], - "properties": { - "cidr": { - "description": "CIDR is a string representing the IP Block Valid examples are \"192.168.1.1/24\"", - "type": "string" - }, - "except": { - "description": "Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \"192.168.1.1/24\" Except values will be rejected if they are outside the CIDR range", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.networking.v1.NetworkPolicy": { - "description": "NetworkPolicy describes what network traffic is allowed for a set of Pods", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior for this NetworkPolicy.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicy", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyEgressRule": { - "description": "NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8", - "properties": { - "ports": { - "description": "List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - } - }, - "to": { - "description": "List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - } - } - } - }, - "io.k8s.api.networking.v1.NetworkPolicyIngressRule": { - "description": "NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.", - "properties": { - "from": { - "description": "List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least on item, this rule allows traffic only if the traffic matches at least one item in the from list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - } - }, - "ports": { - "description": "List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - } - } - } - }, - "io.k8s.api.networking.v1.NetworkPolicyList": { - "description": "NetworkPolicyList is a list of NetworkPolicy objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of schema objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "networking.k8s.io", - "kind": "NetworkPolicyList", - "version": "v1" - } - ] - }, - "io.k8s.api.networking.v1.NetworkPolicyPeer": { - "description": "NetworkPolicyPeer describes a peer to allow traffic from. Only certain combinations of fields are allowed", - "properties": { - "ipBlock": { - "description": "IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.", - "$ref": "#/definitions/io.k8s.api.networking.v1.IPBlock" - }, - "namespaceSelector": { - "description": "Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\n\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "podSelector": { - "description": "This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\n\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - }, - "io.k8s.api.networking.v1.NetworkPolicyPort": { - "description": "NetworkPolicyPort describes a port to allow traffic on", - "properties": { - "port": { - "description": "The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "protocol": { - "description": "The protocol (TCP or UDP) which traffic must match. If not specified, this field defaults to TCP.", - "type": "string" - } - } - }, - "io.k8s.api.networking.v1.NetworkPolicySpec": { - "description": "NetworkPolicySpec provides the specification of a NetworkPolicy", - "required": [ - "podSelector" - ], - "properties": { - "egress": { - "description": "List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" - } - }, - "ingress": { - "description": "List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - } - }, - "podSelector": { - "description": "Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "policyTypes": { - "description": "List of rule types that the NetworkPolicy relates to. Valid options are Ingress, Egress, or Ingress,Egress. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \"Egress\" (since such a policy would not include an Egress section and would otherwise default to just [ \"Ingress\" ]). This field is beta-level in 1.8", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.policy.v1beta1.AllowedFlexVolume": { - "description": "AllowedFlexVolume represents a single Flexvolume that is allowed to be used.", - "required": [ - "driver" - ], - "properties": { - "driver": { - "description": "driver is the name of the Flexvolume driver.", - "type": "string" - } - } - }, - "io.k8s.api.policy.v1beta1.AllowedHostPath": { - "description": "AllowedHostPath defines the host volume conditions that will be enabled by a policy for pods to use. It requires the path prefix to be defined.", - "properties": { - "pathPrefix": { - "description": "pathPrefix is the path prefix that the host volume must match. It does not support `*`. Trailing slashes are trimmed when validating the path prefix with a host path.\n\nExamples: `/foo` would allow `/foo`, `/foo/` and `/foo/bar` `/foo` would not allow `/food` or `/etc/foo`", - "type": "string" - } - } - }, - "io.k8s.api.policy.v1beta1.Eviction": { - "description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "deleteOptions": { - "description": "DeleteOptions may be provided", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "ObjectMeta describes the pod that is being evicted.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "Eviction", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.FSGroupStrategyOptions": { - "description": "FSGroupStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of fs groups. If you would like to force a single fs group then supply a single range with the same start and end. Required for MustRunAs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - } - }, - "rule": { - "description": "rule is the strategy that will dictate what FSGroup is used in the SecurityContext.", - "type": "string" - } - } - }, - "io.k8s.api.policy.v1beta1.HostPortRange": { - "description": "HostPortRange defines a range of host ports that will be enabled by a policy for pods to use. It requires both the start and end to be defined.", - "required": [ - "min", - "max" - ], - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "type": "integer", - "format": "int32" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.api.policy.v1beta1.IDRange": { - "description": "IDRange provides a min/max of an allowed range of IDs.", - "required": [ - "min", - "max" - ], - "properties": { - "max": { - "description": "max is the end of the range, inclusive.", - "type": "integer", - "format": "int64" - }, - "min": { - "description": "min is the start of the range, inclusive.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudget": { - "description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired behavior of the PodDisruptionBudget.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec" - }, - "status": { - "description": "Most recently observed status of the PodDisruptionBudget.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudget", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetList": { - "description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodDisruptionBudgetList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.", - "properties": { - "maxUnavailable": { - "description": "An eviction is allowed if at most \"maxUnavailable\" pods selected by \"selector\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \"minAvailable\".", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "minAvailable": { - "description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\".", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" - }, - "selector": { - "description": "Label query over pods whose evictions are managed by the disruption budget.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - }, - "io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.", - "required": [ - "disruptedPods", - "disruptionsAllowed", - "currentHealthy", - "desiredHealthy", - "expectedPods" - ], - "properties": { - "currentHealthy": { - "description": "current number of healthy pods", - "type": "integer", - "format": "int32" - }, - "desiredHealthy": { - "description": "minimum desired number of healthy pods", - "type": "integer", - "format": "int32" - }, - "disruptedPods": { - "description": "DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - }, - "disruptionsAllowed": { - "description": "Number of pod disruptions that are currently allowed.", - "type": "integer", - "format": "int32" - }, - "expectedPods": { - "description": "total number of pods counted by this disruption budget", - "type": "integer", - "format": "int32" - }, - "observedGeneration": { - "description": "Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and other status informatio is valid only if observedGeneration equals to PDB's object generation.", - "type": "integer", - "format": "int64" - } - } - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicy": { - "description": "PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "spec defines the policy enforced.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicySpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicy", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicyList": { - "description": "PodSecurityPolicyList is a list of PodSecurityPolicy objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is a list of schema objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodSecurityPolicy" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "policy", - "kind": "PodSecurityPolicyList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.policy.v1beta1.PodSecurityPolicySpec": { - "description": "PodSecurityPolicySpec defines the policy enforced.", - "required": [ - "seLinux", - "runAsUser", - "supplementalGroups", - "fsGroup" - ], - "properties": { - "allowPrivilegeEscalation": { - "description": "allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.", - "type": "boolean" - }, - "allowedCapabilities": { - "description": "allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.", - "type": "array", - "items": { - "type": "string" - } - }, - "allowedFlexVolumes": { - "description": "allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the \"volumes\" field.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedFlexVolume" - } - }, - "allowedHostPaths": { - "description": "allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.AllowedHostPath" - } - }, - "defaultAddCapabilities": { - "description": "defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.", - "type": "array", - "items": { - "type": "string" - } - }, - "defaultAllowPrivilegeEscalation": { - "description": "defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.", - "type": "boolean" - }, - "fsGroup": { - "description": "fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.FSGroupStrategyOptions" - }, - "hostIPC": { - "description": "hostIPC determines if the policy allows the use of HostIPC in the pod spec.", - "type": "boolean" - }, - "hostNetwork": { - "description": "hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.", - "type": "boolean" - }, - "hostPID": { - "description": "hostPID determines if the policy allows the use of HostPID in the pod spec.", - "type": "boolean" - }, - "hostPorts": { - "description": "hostPorts determines which host port ranges are allowed to be exposed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.HostPortRange" - } - }, - "privileged": { - "description": "privileged determines if a pod can request to be run as privileged.", - "type": "boolean" - }, - "readOnlyRootFilesystem": { - "description": "readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.", - "type": "boolean" - }, - "requiredDropCapabilities": { - "description": "requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.", - "type": "array", - "items": { - "type": "string" - } - }, - "runAsUser": { - "description": "runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions" - }, - "seLinux": { - "description": "seLinux is the strategy that will dictate the allowable labels that may be set.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SELinuxStrategyOptions" - }, - "supplementalGroups": { - "description": "supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions" - }, - "volumes": { - "description": "volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.policy.v1beta1.RunAsUserStrategyOptions": { - "description": "RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy.", - "required": [ - "rule" - ], - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - } - }, - "rule": { - "description": "rule is the strategy that will dictate the allowable RunAsUser values that may be set.", - "type": "string" - } - } - }, - "io.k8s.api.policy.v1beta1.SELinuxStrategyOptions": { - "description": "SELinuxStrategyOptions defines the strategy type and any options used to create the strategy.", - "required": [ - "rule" - ], - "properties": { - "rule": { - "description": "rule is the strategy that will dictate the allowable labels that may be set.", - "type": "string" - }, - "seLinuxOptions": { - "description": "seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - } - } - }, - "io.k8s.api.policy.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy.", - "properties": { - "ranges": { - "description": "ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.IDRange" - } - }, - "rule": { - "description": "rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.", - "type": "string" - } - } - }, - "io.k8s.api.rbac.v1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - } - }, - "io.k8s.api.rbac.v1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "required": [ - "rules" - ], - "properties": { - "aggregationRule": { - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", - "$ref": "#/definitions/io.k8s.api.rbac.v1.AggregationRule" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "required": [ - "roleRef" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "roleRef": { - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef" - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.PolicyRule": { - "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - "required": [ - "verbs" - ], - "properties": { - "apiGroups": { - "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - "type": "array", - "items": { - "type": "string" - } - }, - "nonResourceURLs": { - "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.rbac.v1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "required": [ - "rules" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "required": [ - "roleRef" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "roleRef": { - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef" - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of RoleBindings", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleList": { - "description": "RoleList is a collection of Roles", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of Roles", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1" - } - ] - }, - "io.k8s.api.rbac.v1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "required": [ - "apiGroup", - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup is the group for the resource being referenced", - "type": "string" - }, - "kind": { - "description": "Kind is the type of resource being referenced", - "type": "string" - }, - "name": { - "description": "Name is the name of resource being referenced", - "type": "string" - } - } - }, - "io.k8s.api.rbac.v1.Subject": { - "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", - "required": [ - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", - "type": "string" - }, - "kind": { - "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", - "type": "string" - }, - "name": { - "description": "Name of the object being referenced.", - "type": "string" - }, - "namespace": { - "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", - "type": "string" - } - } - }, - "io.k8s.api.rbac.v1alpha1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - } - }, - "io.k8s.api.rbac.v1alpha1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "required": [ - "rules" - ], - "properties": { - "aggregationRule": { - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.AggregationRule" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.PolicyRule" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "required": [ - "roleRef" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "roleRef": { - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleRef" - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Subject" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.PolicyRule": { - "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - "required": [ - "verbs" - ], - "properties": { - "apiGroups": { - "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - "type": "array", - "items": { - "type": "string" - } - }, - "nonResourceURLs": { - "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.rbac.v1alpha1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "required": [ - "rules" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.PolicyRule" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "required": [ - "roleRef" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "roleRef": { - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleRef" - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Subject" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of RoleBindings", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.RoleList": { - "description": "RoleList is a collection of Roles", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of Roles", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.rbac.v1alpha1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "required": [ - "apiGroup", - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup is the group for the resource being referenced", - "type": "string" - }, - "kind": { - "description": "Kind is the type of resource being referenced", - "type": "string" - }, - "name": { - "description": "Name is the name of resource being referenced", - "type": "string" - } - } - }, - "io.k8s.api.rbac.v1alpha1.Subject": { - "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", - "required": [ - "kind", - "name" - ], - "properties": { - "apiVersion": { - "description": "APIVersion holds the API group and version of the referenced subject. Defaults to \"v1\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects.", - "type": "string" - }, - "kind": { - "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", - "type": "string" - }, - "name": { - "description": "Name of the object being referenced.", - "type": "string" - }, - "namespace": { - "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", - "type": "string" - } - } - }, - "io.k8s.api.rbac.v1beta1.AggregationRule": { - "description": "AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole", - "properties": { - "clusterRoleSelectors": { - "description": "ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - } - } - } - }, - "io.k8s.api.rbac.v1beta1.ClusterRole": { - "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", - "required": [ - "rules" - ], - "properties": { - "aggregationRule": { - "description": "AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.AggregationRule" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "rules": { - "description": "Rules holds all the PolicyRules for this ClusterRole", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRole", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBinding": { - "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", - "required": [ - "roleRef" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "roleRef": { - "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef" - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleBindingList": { - "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ClusterRoleBindings", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.ClusterRoleList": { - "description": "ClusterRoleList is a collection of ClusterRoles", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of ClusterRoles", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "ClusterRoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.PolicyRule": { - "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", - "required": [ - "verbs" - ], - "properties": { - "apiGroups": { - "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", - "type": "array", - "items": { - "type": "string" - } - }, - "nonResourceURLs": { - "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", - "type": "array", - "items": { - "type": "string" - } - }, - "resourceNames": { - "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "description": "Resources is a list of resources this rule applies to. '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.", - "type": "array", - "items": { - "type": "string" - } - }, - "verbs": { - "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.api.rbac.v1beta1.Role": { - "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", - "required": [ - "rules" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "rules": { - "description": "Rules holds all the PolicyRules for this Role", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "Role", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBinding": { - "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", - "required": [ - "roleRef" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "roleRef": { - "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef" - }, - "subjects": { - "description": "Subjects holds references to the objects the role applies to.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBinding", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleBindingList": { - "description": "RoleBindingList is a collection of RoleBindings", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of RoleBindings", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleBindingList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleList": { - "description": "RoleList is a collection of Roles", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of Roles", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "rbac.authorization.k8s.io", - "kind": "RoleList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.rbac.v1beta1.RoleRef": { - "description": "RoleRef contains information that points to the role being used", - "required": [ - "apiGroup", - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup is the group for the resource being referenced", - "type": "string" - }, - "kind": { - "description": "Kind is the type of resource being referenced", - "type": "string" - }, - "name": { - "description": "Name is the name of resource being referenced", - "type": "string" - } - } - }, - "io.k8s.api.rbac.v1beta1.Subject": { - "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", - "required": [ - "kind", - "name" - ], - "properties": { - "apiGroup": { - "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", - "type": "string" - }, - "kind": { - "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", - "type": "string" - }, - "name": { - "description": "Name of the object being referenced.", - "type": "string" - }, - "namespace": { - "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", - "type": "string" - } - } - }, - "io.k8s.api.scheduling.v1alpha1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "required": [ - "value" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "type": "integer", - "format": "int32" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.scheduling.v1alpha1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is the list of PriorityClasses", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1alpha1.PriorityClass" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClass": { - "description": "PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.", - "required": [ - "value" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "description": { - "description": "description is an arbitrary string that usually provides guidelines on when this priority class should be used.", - "type": "string" - }, - "globalDefault": { - "description": "globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.", - "type": "boolean" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "value": { - "description": "The value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.", - "type": "integer", - "format": "int32" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.scheduling.v1beta1.PriorityClassList": { - "description": "PriorityClassList is a collection of priority classes.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "items is the list of PriorityClasses", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.scheduling.v1beta1.PriorityClass" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "scheduling.k8s.io", - "kind": "PriorityClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.settings.v1alpha1.PodPreset": { - "description": "PodPreset is a policy resource that defines additional runtime requirements for a Pod.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetSpec" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "settings.k8s.io", - "kind": "PodPreset", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.settings.v1alpha1.PodPresetList": { - "description": "PodPresetList is a list of PodPreset objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is a list of schema objects.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "settings.k8s.io", - "kind": "PodPresetList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.settings.v1alpha1.PodPresetSpec": { - "description": "PodPresetSpec is a description of a pod preset.", - "properties": { - "env": { - "description": "Env defines the collection of EnvVar to inject into containers.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - } - }, - "envFrom": { - "description": "EnvFrom defines the collection of EnvFromSource to inject into containers.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - } - }, - "selector": { - "description": "Selector is a label query over a set of resources, in this case pods. Required.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" - }, - "volumeMounts": { - "description": "VolumeMounts defines the collection of VolumeMount to inject into containers.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - } - }, - "volumes": { - "description": "Volumes defines the collection of Volume to inject into the pod.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - } - } - } - }, - "io.k8s.api.storage.v1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "required": [ - "provisioner" - ], - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "type": "array", - "items": { - "type": "string" - } - }, - "parameters": { - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of StorageClasses", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1" - } - ] - }, - "io.k8s.api.storage.v1alpha1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec" - }, - "status": { - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.storage.v1alpha1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1alpha1" - } - ] - }, - "io.k8s.api.storage.v1alpha1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - } - }, - "io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "required": [ - "attacher", - "source", - "nodeName" - ], - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "description": "Source represents the volume that should be attached.", - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeAttachmentSource" - } - } - }, - "io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "required": [ - "attached" - ], - "properties": { - "attachError": { - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeError" - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "detachError": { - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", - "$ref": "#/definitions/io.k8s.api.storage.v1alpha1.VolumeError" - } - } - }, - "io.k8s.api.storage.v1alpha1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "description": "Time the error was encountered.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.api.storage.v1beta1.StorageClass": { - "description": "StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\n\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.", - "required": [ - "provisioner" - ], - "properties": { - "allowVolumeExpansion": { - "description": "AllowVolumeExpansion shows whether the storage class allow volume expand", - "type": "boolean" - }, - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "mountOptions": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with these mountOptions, e.g. [\"ro\", \"soft\"]. Not validated - mount of the PVs will simply fail if one is invalid.", - "type": "array", - "items": { - "type": "string" - } - }, - "parameters": { - "description": "Parameters holds the parameters for the provisioner that should create volumes of this storage class.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "provisioner": { - "description": "Provisioner indicates the type of the provisioner.", - "type": "string" - }, - "reclaimPolicy": { - "description": "Dynamically provisioned PersistentVolumes of this storage class are created with this reclaimPolicy. Defaults to Delete.", - "type": "string" - }, - "volumeBindingMode": { - "description": "VolumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound. When unset, VolumeBindingImmediate is used. This field is alpha-level and is only honored by servers that enable the VolumeScheduling feature.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClass", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.StorageClassList": { - "description": "StorageClassList is a collection of storage classes.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of StorageClasses", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "StorageClassList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachment": { - "description": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.", - "required": [ - "spec" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSpec" - }, - "status": { - "description": "Status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachment", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentList": { - "description": "VolumeAttachmentList is a collection of VolumeAttachment objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items is the list of VolumeAttachments", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachment" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "storage.k8s.io", - "kind": "VolumeAttachmentList", - "version": "v1beta1" - } - ] - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSource": { - "description": "VolumeAttachmentSource represents a volume that should be attached. Right now only PersistenVolumes can be attached via external attacher, in future we may allow also inline volumes in pods. Exactly one member can be set.", - "properties": { - "persistentVolumeName": { - "description": "Name of the persistent volume to attach.", - "type": "string" - } - } - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentSpec": { - "description": "VolumeAttachmentSpec is the specification of a VolumeAttachment request.", - "required": [ - "attacher", - "source", - "nodeName" - ], - "properties": { - "attacher": { - "description": "Attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().", - "type": "string" - }, - "nodeName": { - "description": "The node that the volume should be attached to.", - "type": "string" - }, - "source": { - "description": "Source represents the volume that should be attached.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeAttachmentSource" - } - } - }, - "io.k8s.api.storage.v1beta1.VolumeAttachmentStatus": { - "description": "VolumeAttachmentStatus is the status of a VolumeAttachment request.", - "required": [ - "attached" - ], - "properties": { - "attachError": { - "description": "The last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError" - }, - "attached": { - "description": "Indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "boolean" - }, - "attachmentMetadata": { - "description": "Upon successful attach, this field is populated with any information returned by the attach operation that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "detachError": { - "description": "The last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.VolumeError" - } - } - }, - "io.k8s.api.storage.v1beta1.VolumeError": { - "description": "VolumeError captures an error encountered during a volume operation.", - "properties": { - "message": { - "description": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", - "type": "string" - }, - "time": { - "description": "Time the error was encountered.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition": { - "description": "CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format \u003c.spec.name\u003e.\u003c.spec.group\u003e.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec describes how the user wants the resources to appear", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec" - }, - "status": { - "description": "Status indicates the actual state of the CustomResourceDefinition", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinition", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition": { - "description": "CustomResourceDefinitionCondition contains details for the current condition of this pod.", - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionList": { - "description": "CustomResourceDefinitionList is a list of CustomResourceDefinition objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "description": "Items individual CustomResourceDefinitions", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinition" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apiextensions.k8s.io", - "kind": "CustomResourceDefinitionList", - "version": "v1beta1" - } - ] - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames": { - "description": "CustomResourceDefinitionNames indicates the names to serve this CustomResourceDefinition", - "required": [ - "plural", - "kind" - ], - "properties": { - "categories": { - "description": "Categories is a list of grouped resources custom resources belong to (e.g. 'all')", - "type": "array", - "items": { - "type": "string" - } - }, - "kind": { - "description": "Kind is the serialized kind of the resource. It is normally CamelCase and singular.", - "type": "string" - }, - "listKind": { - "description": "ListKind is the serialized kind of the list for this resource. Defaults to \u003ckind\u003eList.", - "type": "string" - }, - "plural": { - "description": "Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.", - "type": "string" - }, - "shortNames": { - "description": "ShortNames are short names for the resource. It must be all lowercase.", - "type": "array", - "items": { - "type": "string" - } - }, - "singular": { - "description": "Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased \u003ckind\u003e", - "type": "string" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionSpec": { - "description": "CustomResourceDefinitionSpec describes how a user wants their resource to appear", - "required": [ - "group", - "names", - "scope" - ], - "properties": { - "group": { - "description": "Group is the group this resource belongs in", - "type": "string" - }, - "names": { - "description": "Names are the names used to describe this custom resource", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames" - }, - "scope": { - "description": "Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced", - "type": "string" - }, - "subresources": { - "description": "Subresources describes the subresources for CustomResources", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources" - }, - "validation": { - "description": "Validation describes the validation methods for CustomResources", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation" - }, - "version": { - "description": "Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use `Versions`.", - "type": "string" - }, - "versions": { - "description": "Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion" - } - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionStatus": { - "description": "CustomResourceDefinitionStatus indicates the state of the CustomResourceDefinition", - "required": [ - "conditions", - "acceptedNames", - "storedVersions" - ], - "properties": { - "acceptedNames": { - "description": "AcceptedNames are the names that are actually being used to serve discovery They may be different than the names in spec.", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionNames" - }, - "conditions": { - "description": "Conditions indicate state for particular aspects of a CustomResourceDefinition", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionCondition" - } - }, - "storedVersions": { - "description": "StoredVersions are all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so the migration controller can first finish a migration to another version (i.e. that no old objects are left in the storage), and then remove the rest of the versions from this list. None of the versions in this list can be removed from the spec.Versions field.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceDefinitionVersion": { - "required": [ - "name", - "served", - "storage" - ], - "properties": { - "name": { - "description": "Name is the version name, e.g. “v1”, “v2beta1”, etc.", - "type": "string" - }, - "served": { - "description": "Served is a flag enabling/disabling this version from being served via REST APIs", - "type": "boolean" - }, - "storage": { - "description": "Storage flags the version as storage version. There must be exactly one flagged as storage version.", - "type": "boolean" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale": { - "description": "CustomResourceSubresourceScale defines how to serve the scale subresource for CustomResources.", - "required": [ - "specReplicasPath", - "statusReplicasPath" - ], - "properties": { - "labelSelectorPath": { - "description": "LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. Must be set to work with HPA. If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string.", - "type": "string" - }, - "specReplicasPath": { - "description": "SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.", - "type": "string" - }, - "statusReplicasPath": { - "description": "StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0.", - "type": "string" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus": { - "description": "CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza" - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresources": { - "description": "CustomResourceSubresources defines the status and scale subresources for CustomResources.", - "properties": { - "scale": { - "description": "Scale denotes the scale subresource for CustomResources", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceScale" - }, - "status": { - "description": "Status denotes the status subresource for CustomResources", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceSubresourceStatus" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.CustomResourceValidation": { - "description": "CustomResourceValidation is a list of validation methods for CustomResources.", - "properties": { - "openAPIV3Schema": { - "description": "OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.", - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation": { - "description": "ExternalDocumentation allows referencing an external resource for extended documentation.", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON": { - "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", - "required": [ - "Raw" - ], - "properties": { - "Raw": { - "type": "string", - "format": "byte" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps": { - "description": "JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/).", - "properties": { - "$ref": { - "type": "string" - }, - "$schema": { - "type": "string" - }, - "additionalItems": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool" - }, - "allOf": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "anyOf": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "default": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "definitions": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "dependencies": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray" - } - }, - "description": { - "type": "string" - }, - "enum": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - } - }, - "example": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSON" - }, - "exclusiveMaximum": { - "type": "boolean" - }, - "exclusiveMinimum": { - "type": "boolean" - }, - "externalDocs": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.ExternalDocumentation" - }, - "format": { - "type": "string" - }, - "id": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray" - }, - "maxItems": { - "type": "integer", - "format": "int64" - }, - "maxLength": { - "type": "integer", - "format": "int64" - }, - "maxProperties": { - "type": "integer", - "format": "int64" - }, - "maximum": { - "type": "number", - "format": "double" - }, - "minItems": { - "type": "integer", - "format": "int64" - }, - "minLength": { - "type": "integer", - "format": "int64" - }, - "minProperties": { - "type": "integer", - "format": "int64" - }, - "minimum": { - "type": "number", - "format": "double" - }, - "multipleOf": { - "type": "number", - "format": "double" - }, - "not": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - }, - "oneOf": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "pattern": { - "type": "string" - }, - "patternProperties": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "properties": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "required": { - "type": "array", - "items": { - "type": "string" - } - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - }, - "uniqueItems": { - "type": "boolean" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrArray": { - "description": "JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes.", - "required": [ - "Schema", - "JSONSchemas" - ], - "properties": { - "JSONSchemas": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - }, - "Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrBool": { - "description": "JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property.", - "required": [ - "Allows", - "Schema" - ], - "properties": { - "Allows": { - "type": "boolean" - }, - "Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } - }, - "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaPropsOrStringArray": { - "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array.", - "required": [ - "Schema", - "Property" - ], - "properties": { - "Property": { - "type": "array", - "items": { - "type": "string" - } - }, - "Schema": { - "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1beta1.JSONSchemaProps" - } - } - }, - "io.k8s.apimachinery.pkg.api.resource.Quantity": { - "type": "string" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup": { - "description": "APIGroup contains the name, the supported versions, and the preferred version of a group.", - "required": [ - "name", - "versions" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "name is the name of the group.", - "type": "string" - }, - "preferredVersion": { - "description": "preferredVersion is the version preferred by the API server, which probably is the storage version.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - } - }, - "versions": { - "description": "versions are the versions supported in this group.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroup", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList": { - "description": "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.", - "required": [ - "groups" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "groups": { - "description": "groups is a list of APIGroup.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIGroupList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource": { - "description": "APIResource specifies the name of a resource and whether it is namespaced.", - "required": [ - "name", - "singularName", - "namespaced", - "kind", - "verbs" - ], - "properties": { - "categories": { - "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')", - "type": "array", - "items": { - "type": "string" - } - }, - "group": { - "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", - "type": "string" - }, - "kind": { - "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')", - "type": "string" - }, - "name": { - "description": "name is the plural name of the resource.", - "type": "string" - }, - "namespaced": { - "description": "namespaced indicates if a resource is namespaced or not.", - "type": "boolean" - }, - "shortNames": { - "description": "shortNames is a list of suggested short names of the resource.", - "type": "array", - "items": { - "type": "string" - } - }, - "singularName": { - "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", - "type": "string" - }, - "verbs": { - "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)", - "type": "array", - "items": { - "type": "string" - } - }, - "version": { - "description": "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList": { - "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", - "required": [ - "groupVersion", - "resources" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "groupVersion": { - "description": "groupVersion is the group and version this APIResourceList is for.", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "resources": { - "description": "resources contains the name of the resources and if they are namespaced.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIResourceList", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions": { - "description": "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.", - "required": [ - "versions", - "serverAddressByClientCIDRs" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "serverAddressByClientCIDRs": { - "description": "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" - } - }, - "versions": { - "description": "versions are the api versions that are available.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "APIVersions", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions": { - "description": "DeleteOptions may be provided when deleting an API object.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "gracePeriodSeconds": { - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "type": "integer", - "format": "int64" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "orphanDependents": { - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "type": "boolean" - }, - "preconditions": { - "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions" - }, - "propagationPolicy": { - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "DeleteOptions", - "version": "v1beta2" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "DeleteOptions", - "version": "v2beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "DeleteOptions", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "policy", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "DeleteOptions", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery": { - "description": "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.", - "required": [ - "groupVersion", - "version" - ], - "properties": { - "groupVersion": { - "description": "groupVersion specifies the API group and version in the form \"group/version\"", - "type": "string" - }, - "version": { - "description": "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Initializer": { - "description": "Initializer is information about an initializer that has not yet completed.", - "required": [ - "name" - ], - "properties": { - "name": { - "description": "name of the process that is responsible for initializing this object.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Initializers": { - "description": "Initializers tracks the progress of initialization.", - "required": [ - "pending" - ], - "properties": { - "pending": { - "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializer" - }, - "x-kubernetes-patch-merge-key": "name", - "x-kubernetes-patch-strategy": "merge" - }, - "result": { - "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector": { - "description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.", - "properties": { - "matchExpressions": { - "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" - } - }, - "matchLabels": { - "description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { - "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", - "required": [ - "key", - "operator" - ], - "properties": { - "key": { - "description": "key is the label key that the selector applies to.", - "type": "string", - "x-kubernetes-patch-merge-key": "key", - "x-kubernetes-patch-strategy": "merge" - }, - "operator": { - "description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - "type": "string" - }, - "values": { - "description": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.", - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta": { - "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", - "properties": { - "continue": { - "description": "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.", - "type": "string" - }, - "resourceVersion": { - "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "selfLink is a URL representing this object. Populated by the system. Read-only.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime": { - "type": "string", - "format": "date-time" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta": { - "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", - "properties": { - "annotations": { - "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "clusterName": { - "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.", - "type": "string" - }, - "creationTimestamp": { - "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "deletionGracePeriodSeconds": { - "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.", - "type": "integer", - "format": "int64" - }, - "deletionTimestamp": { - "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "finalizers": { - "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.", - "type": "array", - "items": { - "type": "string" - }, - "x-kubernetes-patch-strategy": "merge" - }, - "generateName": { - "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency", - "type": "string" - }, - "generation": { - "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.", - "type": "integer", - "format": "int64" - }, - "initializers": { - "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Initializers" - }, - "labels": { - "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "name": { - "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "namespace": { - "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces", - "type": "string" - }, - "ownerReferences": { - "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" - }, - "x-kubernetes-patch-merge-key": "uid", - "x-kubernetes-patch-strategy": "merge" - }, - "resourceVersion": { - "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency", - "type": "string" - }, - "selfLink": { - "description": "SelfLink is a URL representing this object. Populated by the system. Read-only.", - "type": "string" - }, - "uid": { - "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference": { - "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", - "required": [ - "apiVersion", - "kind", - "name", - "uid" - ], - "properties": { - "apiVersion": { - "description": "API version of the referent.", - "type": "string" - }, - "blockOwnerDeletion": { - "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.", - "type": "boolean" - }, - "controller": { - "description": "If true, this reference points to the managing controller.", - "type": "boolean" - }, - "kind": { - "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names", - "type": "string" - }, - "uid": { - "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Patch": { - "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body." - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions": { - "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", - "properties": { - "uid": { - "description": "Specifies the target UID.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR": { - "description": "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.", - "required": [ - "clientCIDR", - "serverAddress" - ], - "properties": { - "clientCIDR": { - "description": "The CIDR with which clients can match their IP to figure out the server address that they should use.", - "type": "string" - }, - "serverAddress": { - "description": "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Status": { - "description": "Status is a return value for calls that don't return other objects.", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "code": { - "description": "Suggested HTTP return code for this status, 0 if not set.", - "type": "integer", - "format": "int32" - }, - "details": { - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "message": { - "description": "A human-readable description of the status of this operation.", - "type": "string" - }, - "metadata": { - "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - }, - "reason": { - "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.", - "type": "string" - }, - "status": { - "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "Status", - "version": "v1" - } - ] - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause": { - "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", - "properties": { - "field": { - "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"", - "type": "string" - }, - "message": { - "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader.", - "type": "string" - }, - "reason": { - "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available.", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails": { - "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", - "properties": { - "causes": { - "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" - } - }, - "group": { - "description": "The group attribute of the resource associated with the status StatusReason.", - "type": "string" - }, - "kind": { - "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).", - "type": "string" - }, - "retryAfterSeconds": { - "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.", - "type": "integer", - "format": "int32" - }, - "uid": { - "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids", - "type": "string" - } - } - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.Time": { - "type": "string", - "format": "date-time" - }, - "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent": { - "description": "Event represents a single event to a watched resource.", - "required": [ - "type", - "object" - ], - "properties": { - "object": { - "description": "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" - }, - "type": { - "type": "string" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "admission.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "admissionregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiextensions.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apiregistration.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "apps", - "kind": "WatchEvent", - "version": "v1beta2" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authentication.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "autoscaling", - "kind": "WatchEvent", - "version": "v2beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "batch", - "kind": "WatchEvent", - "version": "v2alpha1" - }, - { - "group": "certificates.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "events.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "extensions", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "imagepolicy.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "networking.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "policy", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "rbac.authorization.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "scheduling.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - }, - { - "group": "settings.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1alpha1" - }, - { - "group": "storage.k8s.io", - "kind": "WatchEvent", - "version": "v1beta1" - } - ] - }, - "io.k8s.apimachinery.pkg.runtime.RawExtension": { - "description": "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.Object `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// External package: type MyAPIObject struct {\n\truntime.TypeMeta `json:\",inline\"`\n\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n} type PluginA struct {\n\tAOption string `json:\"aOption\"`\n}\n\n// On the wire, the JSON will look something like this: {\n\t\"kind\":\"MyAPIObject\",\n\t\"apiVersion\":\"v1\",\n\t\"myPlugin\": {\n\t\t\"kind\":\"PluginA\",\n\t\t\"aOption\":\"foo\",\n\t},\n}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)", - "required": [ - "Raw" - ], - "properties": { - "Raw": { - "description": "Raw is the underlying serialization of this object.", - "type": "string", - "format": "byte" - } - } - }, - "io.k8s.apimachinery.pkg.util.intstr.IntOrString": { - "type": "string", - "format": "int-or-string" - }, - "io.k8s.apimachinery.pkg.version.Info": { - "description": "Info contains versioning information. how we'll want to distribute that information.", - "required": [ - "major", - "minor", - "gitVersion", - "gitCommit", - "gitTreeState", - "buildDate", - "goVersion", - "compiler", - "platform" - ], - "properties": { - "buildDate": { - "type": "string" - }, - "compiler": { - "type": "string" - }, - "gitCommit": { - "type": "string" - }, - "gitTreeState": { - "type": "string" - }, - "gitVersion": { - "type": "string" - }, - "goVersion": { - "type": "string" - }, - "major": { - "type": "string" - }, - "minor": { - "type": "string" - }, - "platform": { - "type": "string" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec contains information for locating and communicating with a server", - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec" - }, - "status": { - "description": "Status contains derived information about an API server", - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition": { - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIService" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "required": [ - "service", - "groupPriorityMinimum", - "versionPriority" - ], - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate.", - "type": "string", - "format": "byte" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "type": "integer", - "format": "int32" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled.", - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference" - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.APIServiceCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService": { - "description": "APIService represents a server for a particular GroupVersion. Name must be \"version.group\".", - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "spec": { - "description": "Spec contains information for locating and communicating with a server", - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec" - }, - "status": { - "description": "Status contains derived information about an API server", - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIService", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition": { - "required": [ - "type", - "status" - ], - "properties": { - "lastTransitionTime": { - "description": "Last time the condition transitioned from one status to another.", - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" - }, - "message": { - "description": "Human-readable message indicating details about last transition.", - "type": "string" - }, - "reason": { - "description": "Unique, one-word, CamelCase reason for the condition's last transition.", - "type": "string" - }, - "status": { - "description": "Status is the status of the condition. Can be True, False, Unknown.", - "type": "string" - }, - "type": { - "description": "Type is the type of the condition.", - "type": "string" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceList": { - "description": "APIServiceList is a list of APIService objects.", - "required": [ - "items" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIService" - } - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apiregistration.k8s.io", - "kind": "APIServiceList", - "version": "v1beta1" - } - ] - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceSpec": { - "description": "APIServiceSpec contains information for locating and communicating with a server. Only https is supported, though you are able to disable certificate verification.", - "required": [ - "service", - "groupPriorityMinimum", - "versionPriority" - ], - "properties": { - "caBundle": { - "description": "CABundle is a PEM encoded CA bundle which will be used to validate an API server's serving certificate.", - "type": "string", - "format": "byte" - }, - "group": { - "description": "Group is the API group name this server hosts", - "type": "string" - }, - "groupPriorityMinimum": { - "description": "GroupPriorityMininum is the priority this group should have at least. Higher priority means that the group is preferred by clients over lower priority ones. Note that other versions of this group might specify even higher GroupPriorityMininum values such that the whole group gets a higher priority. The primary sort is based on GroupPriorityMinimum, ordered highest number to lowest (20 before 10). The secondary sort is based on the alphabetical comparison of the name of the object. (v1.bar before v1.foo) We'd recommend something like: *.k8s.io (except extensions) at 18000 and PaaSes (OpenShift, Deis) are recommended to be in the 2000s", - "type": "integer", - "format": "int32" - }, - "insecureSkipTLSVerify": { - "description": "InsecureSkipTLSVerify disables TLS certificate verification when communicating with this server. This is strongly discouraged. You should use the CABundle instead.", - "type": "boolean" - }, - "service": { - "description": "Service is a reference to the service for this API server. It must communicate on port 443 If the Service is nil, that means the handling for the API groupversion is handled locally on this server. The call will simply delegate to the normal handler chain to be fulfilled.", - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference" - }, - "version": { - "description": "Version is the API version this server hosts. For example, \"v1\"", - "type": "string" - }, - "versionPriority": { - "description": "VersionPriority controls the ordering of this API version inside of its group. Must be greater than zero. The primary sort is based on VersionPriority, ordered highest to lowest (20 before 10). Since it's inside of a group, the number can be small, probably in the 10s. In case of equal version priorities, the version string will be used to compute the order inside a group. If the version string is \"kube-like\", it will sort above non \"kube-like\" version strings, which are ordered lexicographically. \"Kube-like\" versions start with a \"v\", then are followed by a number (the major version), then optionally the string \"alpha\" or \"beta\" and another number (the minor version). These are sorted first by GA \u003e beta \u003e alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.", - "type": "integer", - "format": "int32" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceStatus": { - "description": "APIServiceStatus contains derived information about an API server", - "properties": { - "conditions": { - "description": "Current service state of apiService.", - "type": "array", - "items": { - "$ref": "#/definitions/io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.APIServiceCondition" - }, - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge" - } - } - }, - "io.k8s.kube-aggregator.pkg.apis.apiregistration.v1beta1.ServiceReference": { - "description": "ServiceReference holds a reference to Service.legacy.k8s.io", - "properties": { - "name": { - "description": "Name is the name of the service", - "type": "string" - }, - "namespace": { - "description": "Namespace is the namespace of the service", - "type": "string" - } - } - }, - "io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Affinity": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Affinity instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Affinity" - }, - "io.k8s.kubernetes.pkg.api.v1.AttachedVolume": { - "description": "Deprecated. Please use io.k8s.api.core.v1.AttachedVolume instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" - }, - "io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.AzureDiskVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureDiskVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.AzureFileVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Binding": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Binding instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Binding" - }, - "io.k8s.kubernetes.pkg.api.v1.Capabilities": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Capabilities instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities" - }, - "io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.CephFSVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.CephFSVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.CinderVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.CinderVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.ComponentCondition": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ComponentCondition instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" - }, - "io.k8s.kubernetes.pkg.api.v1.ComponentStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ComponentStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.ComponentStatusList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ComponentStatusList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ComponentStatusList" - }, - "io.k8s.kubernetes.pkg.api.v1.ConfigMap": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ConfigMap instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMap" - }, - "io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ConfigMapEnvSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapEnvSource" - }, - "io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ConfigMapKeySelector instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapKeySelector" - }, - "io.k8s.kubernetes.pkg.api.v1.ConfigMapList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ConfigMapList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapList" - }, - "io.k8s.kubernetes.pkg.api.v1.ConfigMapProjection": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ConfigMapProjection instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapProjection" - }, - "io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ConfigMapVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ConfigMapVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Container": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Container instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Container" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerImage": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerImage instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerPort": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerPort instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerPort" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerState": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerState instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerStateRunning": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerStateRunning instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateRunning" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerStateTerminated": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerStateTerminated instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateTerminated" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerStateWaiting": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerStateWaiting instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStateWaiting" - }, - "io.k8s.kubernetes.pkg.api.v1.ContainerStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ContainerStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.DaemonEndpoint": { - "description": "Deprecated. Please use io.k8s.api.core.v1.DaemonEndpoint instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.DaemonEndpoint" - }, - "io.k8s.kubernetes.pkg.api.v1.DownwardAPIProjection": { - "description": "Deprecated. Please use io.k8s.api.core.v1.DownwardAPIProjection instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIProjection" - }, - "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile": { - "description": "Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeFile instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" - }, - "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.DownwardAPIVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EmptyDirVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EmptyDirVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.EndpointAddress": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EndpointAddress instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" - }, - "io.k8s.kubernetes.pkg.api.v1.EndpointPort": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EndpointPort instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" - }, - "io.k8s.kubernetes.pkg.api.v1.EndpointSubset": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EndpointSubset instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" - }, - "io.k8s.kubernetes.pkg.api.v1.Endpoints": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Endpoints instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Endpoints" - }, - "io.k8s.kubernetes.pkg.api.v1.EndpointsList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EndpointsList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EndpointsList" - }, - "io.k8s.kubernetes.pkg.api.v1.EnvFromSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EnvFromSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" - }, - "io.k8s.kubernetes.pkg.api.v1.EnvVar": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EnvVar instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" - }, - "io.k8s.kubernetes.pkg.api.v1.EnvVarSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EnvVarSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EnvVarSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Event": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Event instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Event" - }, - "io.k8s.kubernetes.pkg.api.v1.EventList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EventList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EventList" - }, - "io.k8s.kubernetes.pkg.api.v1.EventSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.EventSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.EventSource" - }, - "io.k8s.kubernetes.pkg.api.v1.ExecAction": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ExecAction instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ExecAction" - }, - "io.k8s.kubernetes.pkg.api.v1.FCVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.FCVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.FCVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.FlexVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.FlexVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.FlockerVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.FlockerVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.GCEPersistentDiskVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.GCEPersistentDiskVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.GitRepoVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.GitRepoVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.GlusterfsVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.GlusterfsVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.HTTPGetAction": { - "description": "Deprecated. Please use io.k8s.api.core.v1.HTTPGetAction instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPGetAction" - }, - "io.k8s.kubernetes.pkg.api.v1.HTTPHeader": { - "description": "Deprecated. Please use io.k8s.api.core.v1.HTTPHeader instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" - }, - "io.k8s.kubernetes.pkg.api.v1.Handler": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Handler instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Handler" - }, - "io.k8s.kubernetes.pkg.api.v1.HostAlias": { - "description": "Deprecated. Please use io.k8s.api.core.v1.HostAlias instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" - }, - "io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.HostPathVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.HostPathVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ISCSIVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ISCSIVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.KeyToPath": { - "description": "Deprecated. Please use io.k8s.api.core.v1.KeyToPath instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" - }, - "io.k8s.kubernetes.pkg.api.v1.Lifecycle": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Lifecycle instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Lifecycle" - }, - "io.k8s.kubernetes.pkg.api.v1.LimitRange": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LimitRange instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRange" - }, - "io.k8s.kubernetes.pkg.api.v1.LimitRangeItem": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LimitRangeItem instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" - }, - "io.k8s.kubernetes.pkg.api.v1.LimitRangeList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LimitRangeList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeList" - }, - "io.k8s.kubernetes.pkg.api.v1.LimitRangeSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LimitRangeSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LoadBalancerIngress instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" - }, - "io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LoadBalancerStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.LocalObjectReference": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LocalObjectReference instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" - }, - "io.k8s.kubernetes.pkg.api.v1.LocalVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.LocalVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.LocalVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NFSVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Namespace": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Namespace instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Namespace" - }, - "io.k8s.kubernetes.pkg.api.v1.NamespaceList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NamespaceList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceList" - }, - "io.k8s.kubernetes.pkg.api.v1.NamespaceSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NamespaceSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.NamespaceStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NamespaceStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.Node": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Node instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Node" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeAddress": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeAddress instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeAffinity": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeAffinity instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeAffinity" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeCondition": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeCondition instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeDaemonEndpoints": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeDaemonEndpoints instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeDaemonEndpoints" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeList" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeSelector": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeSelector instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeSelectorRequirement instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeSelectorTerm instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.NodeSystemInfo": { - "description": "Deprecated. Please use io.k8s.api.core.v1.NodeSystemInfo instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo" - }, - "io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ObjectFieldSelector instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector" - }, - "io.k8s.kubernetes.pkg.api.v1.ObjectReference": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ObjectReference instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolume": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolume instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolume" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaim": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaim instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimList" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeList" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PersistentVolumeStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Pod": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Pod instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Pod" - }, - "io.k8s.kubernetes.pkg.api.v1.PodAffinity": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodAffinity instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinity" - }, - "io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodAffinityTerm instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" - }, - "io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodAntiAffinity instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodAntiAffinity" - }, - "io.k8s.kubernetes.pkg.api.v1.PodCondition": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodCondition instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" - }, - "io.k8s.kubernetes.pkg.api.v1.PodList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodList" - }, - "io.k8s.kubernetes.pkg.api.v1.PodSecurityContext": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodSecurityContext instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext" - }, - "io.k8s.kubernetes.pkg.api.v1.PodSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.PodStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.PodTemplate": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodTemplate instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplate" - }, - "io.k8s.kubernetes.pkg.api.v1.PodTemplateList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodTemplateList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateList" - }, - "io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PodTemplateSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PodTemplateSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PortworxVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PortworxVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm": { - "description": "Deprecated. Please use io.k8s.api.core.v1.PreferredSchedulingTerm instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" - }, - "io.k8s.kubernetes.pkg.api.v1.Probe": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Probe instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Probe" - }, - "io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ProjectedVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ProjectedVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.QuobyteVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.QuobyteVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.RBDVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.RBDVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.ReplicationController": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ReplicationController instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationController" - }, - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerCondition": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerCondition instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" - }, - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerList" - }, - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.ReplicationControllerStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ReplicationControllerStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ResourceFieldSelector instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceFieldSelector" - }, - "io.k8s.kubernetes.pkg.api.v1.ResourceQuota": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ResourceQuota instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuota" - }, - "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaList" - }, - "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.ResourceQuotaStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ResourceQuotaStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceQuotaStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.ResourceRequirements": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ResourceRequirements instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements" - }, - "io.k8s.kubernetes.pkg.api.v1.SELinuxOptions": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SELinuxOptions instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SELinuxOptions" - }, - "io.k8s.kubernetes.pkg.api.v1.ScaleIOVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ScaleIOVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ScaleIOVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.Secret": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Secret instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Secret" - }, - "io.k8s.kubernetes.pkg.api.v1.SecretEnvSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SecretEnvSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretEnvSource" - }, - "io.k8s.kubernetes.pkg.api.v1.SecretKeySelector": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SecretKeySelector instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretKeySelector" - }, - "io.k8s.kubernetes.pkg.api.v1.SecretList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SecretList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretList" - }, - "io.k8s.kubernetes.pkg.api.v1.SecretProjection": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SecretProjection instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretProjection" - }, - "io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SecretVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecretVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.SecurityContext": { - "description": "Deprecated. Please use io.k8s.api.core.v1.SecurityContext instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.SecurityContext" - }, - "io.k8s.kubernetes.pkg.api.v1.Service": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Service instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Service" - }, - "io.k8s.kubernetes.pkg.api.v1.ServiceAccount": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ServiceAccount instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccount" - }, - "io.k8s.kubernetes.pkg.api.v1.ServiceAccountList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ServiceAccountList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceAccountList" - }, - "io.k8s.kubernetes.pkg.api.v1.ServiceList": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ServiceList instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceList" - }, - "io.k8s.kubernetes.pkg.api.v1.ServicePort": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ServicePort instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ServicePort" - }, - "io.k8s.kubernetes.pkg.api.v1.ServiceSpec": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ServiceSpec instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceSpec" - }, - "io.k8s.kubernetes.pkg.api.v1.ServiceStatus": { - "description": "Deprecated. Please use io.k8s.api.core.v1.ServiceStatus instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.ServiceStatus" - }, - "io.k8s.kubernetes.pkg.api.v1.StorageOSPersistentVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.StorageOSPersistentVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSPersistentVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.StorageOSVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.StorageOSVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.StorageOSVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.TCPSocketAction": { - "description": "Deprecated. Please use io.k8s.api.core.v1.TCPSocketAction instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.TCPSocketAction" - }, - "io.k8s.kubernetes.pkg.api.v1.Taint": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Taint instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Taint" - }, - "io.k8s.kubernetes.pkg.api.v1.Toleration": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Toleration instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" - }, - "io.k8s.kubernetes.pkg.api.v1.Volume": { - "description": "Deprecated. Please use io.k8s.api.core.v1.Volume instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.Volume" - }, - "io.k8s.kubernetes.pkg.api.v1.VolumeMount": { - "description": "Deprecated. Please use io.k8s.api.core.v1.VolumeMount instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" - }, - "io.k8s.kubernetes.pkg.api.v1.VolumeProjection": { - "description": "Deprecated. Please use io.k8s.api.core.v1.VolumeProjection instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" - }, - "io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource": { - "description": "Deprecated. Please use io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource" - }, - "io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm": { - "description": "Deprecated. Please use io.k8s.api.core.v1.WeightedPodAffinityTerm instead.", - "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Initializer": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.Initializer instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Initializer" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfiguration": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfiguration" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.InitializerConfigurationList": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.InitializerConfigurationList" - }, - "io.k8s.kubernetes.pkg.apis.admissionregistration.v1alpha1.Rule": { - "description": "Deprecated. Please use io.k8s.api.admissionregistration.v1alpha1.Rule instead.", - "$ref": "#/definitions/io.k8s.api.admissionregistration.v1alpha1.Rule" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevision": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevision instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevision" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ControllerRevisionList": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.ControllerRevisionList instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ControllerRevisionList" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.Deployment": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.Deployment instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Deployment" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentCondition": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentCondition instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentCondition" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentList": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentList instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentList" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentRollback": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentRollback instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentRollback" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentSpec": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentSpec instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentSpec" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStatus": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStatus instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStatus" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.DeploymentStrategy": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.DeploymentStrategy instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.DeploymentStrategy" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollbackConfig": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.RollbackConfig instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateDeployment": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateDeployment instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateDeployment" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.RollingUpdateStatefulSetStrategy": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.Scale": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.Scale instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleSpec": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleSpec instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ScaleSpec" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.ScaleStatus": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.ScaleStatus instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.ScaleStatus" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSet": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSet instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSet" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetList": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetList instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetList" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetSpec": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetSpec instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetSpec" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetStatus": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetStatus instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetStatus" - }, - "io.k8s.kubernetes.pkg.apis.apps.v1beta1.StatefulSetUpdateStrategy": { - "description": "Deprecated. Please use io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy instead.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReview": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1.TokenReview instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReview" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewSpec": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewSpec instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewSpec" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1.TokenReviewStatus": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1.TokenReviewStatus instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1.TokenReviewStatus" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1.UserInfo": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1.UserInfo instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1.UserInfo" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReview": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReview instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReview" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewSpec": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewSpec instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewSpec" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.TokenReviewStatus": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1beta1.TokenReviewStatus instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.TokenReviewStatus" - }, - "io.k8s.kubernetes.pkg.apis.authentication.v1beta1.UserInfo": { - "description": "Deprecated. Please use io.k8s.api.authentication.v1beta1.UserInfo instead.", - "$ref": "#/definitions/io.k8s.api.authentication.v1beta1.UserInfo" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.LocalSubjectAccessReview": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.LocalSubjectAccessReview instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.LocalSubjectAccessReview" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.NonResourceAttributes": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.NonResourceAttributes instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.ResourceAttributes": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.ResourceAttributes instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceAttributes" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReview": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReview instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReview" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.SelfSubjectAccessReviewSpec": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SelfSubjectAccessReviewSpec" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReview": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReview instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReview" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewSpec": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewSpec instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewSpec" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1.SubjectAccessReviewStatus": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1.SubjectAccessReviewStatus instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1.SubjectAccessReviewStatus" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.LocalSubjectAccessReview": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.LocalSubjectAccessReview" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.NonResourceAttributes": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.NonResourceAttributes instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.NonResourceAttributes" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.ResourceAttributes": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.ResourceAttributes instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.ResourceAttributes" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReview": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReview" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SelfSubjectAccessReviewSpec": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SelfSubjectAccessReviewSpec" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReview": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReview instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReview" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewSpec": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewSpec" - }, - "io.k8s.kubernetes.pkg.apis.authorization.v1beta1.SubjectAccessReviewStatus": { - "description": "Deprecated. Please use io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus instead.", - "$ref": "#/definitions/io.k8s.api.authorization.v1beta1.SubjectAccessReviewStatus" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.CrossVersionObjectReference instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.CrossVersionObjectReference" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerList" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.Scale": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.Scale instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.Scale" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleSpec": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleSpec instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleSpec" - }, - "io.k8s.kubernetes.pkg.apis.autoscaling.v1.ScaleStatus": { - "description": "Deprecated. Please use io.k8s.api.autoscaling.v1.ScaleStatus instead.", - "$ref": "#/definitions/io.k8s.api.autoscaling.v1.ScaleStatus" - }, - "io.k8s.kubernetes.pkg.apis.batch.v1.Job": { - "description": "Deprecated. Please use io.k8s.api.batch.v1.Job instead.", - "$ref": "#/definitions/io.k8s.api.batch.v1.Job" - }, - "io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition": { - "description": "Deprecated. Please use io.k8s.api.batch.v1.JobCondition instead.", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" - }, - "io.k8s.kubernetes.pkg.apis.batch.v1.JobList": { - "description": "Deprecated. Please use io.k8s.api.batch.v1.JobList instead.", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobList" - }, - "io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec": { - "description": "Deprecated. Please use io.k8s.api.batch.v1.JobSpec instead.", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobSpec" - }, - "io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus": { - "description": "Deprecated. Please use io.k8s.api.batch.v1.JobStatus instead.", - "$ref": "#/definitions/io.k8s.api.batch.v1.JobStatus" - }, - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJob": { - "description": "Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJob instead.", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - }, - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobList": { - "description": "Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJobList instead.", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" - }, - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobSpec": { - "description": "Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJobSpec instead.", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobSpec" - }, - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.CronJobStatus": { - "description": "Deprecated. Please use io.k8s.api.batch.v2alpha1.CronJobStatus instead.", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobStatus" - }, - "io.k8s.kubernetes.pkg.apis.batch.v2alpha1.JobTemplateSpec": { - "description": "Deprecated. Please use io.k8s.api.batch.v2alpha1.JobTemplateSpec instead.", - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.JobTemplateSpec" - }, - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequest": { - "description": "Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequest instead.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequest" - }, - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestCondition": { - "description": "Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition instead.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition" - }, - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestList": { - "description": "Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestList instead.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestList" - }, - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestSpec": { - "description": "Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec instead.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec" - }, - "io.k8s.kubernetes.pkg.apis.certificates.v1beta1.CertificateSigningRequestStatus": { - "description": "Deprecated. Please use io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus instead.", - "$ref": "#/definitions/io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSet instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSet" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetList instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetList" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetSpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetSpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetStatus instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetStatus" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetUpdateStrategy": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.Deployment instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Deployment" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentCondition instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentCondition" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentList instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentList" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentRollback instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentRollback" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentSpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentSpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStatus instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStatus" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.DeploymentStrategy instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.DeploymentStrategy" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.FSGroupStrategyOptions": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.FSGroupStrategyOptions" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressPath instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressPath" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HostPortRange": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.HostPortRange instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.HostPortRange" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IDRange": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IDRange instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IDRange" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.Ingress instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Ingress" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressBackend instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressBackend" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressList instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressList" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressRule instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressRule" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressSpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressSpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressStatus instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressStatus" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.IngressTLS instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.IngressTLS" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicy": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicy instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicy" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyIngressRule": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyList": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyList instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyList" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPeer": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPeer instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPeer" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicyPort": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicyPort instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicyPort" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.NetworkPolicySpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.NetworkPolicySpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.NetworkPolicySpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicy": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicy instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicy" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicyList": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicyList instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicyList" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.PodSecurityPolicySpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.PodSecurityPolicySpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSet instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSet" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetCondition instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetCondition" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetList instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetList" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetSpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetSpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ReplicaSetStatus instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ReplicaSetStatus" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.RollbackConfig instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDaemonSet": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.RollingUpdateDeployment instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollingUpdateDeployment" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RunAsUserStrategyOptions": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RunAsUserStrategyOptions" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SELinuxStrategyOptions": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.SELinuxStrategyOptions" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.Scale instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.Scale" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleSpec instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ScaleSpec" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.ScaleStatus instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.ScaleStatus" - }, - "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.SupplementalGroupsStrategyOptions": { - "description": "Deprecated. Please use io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions instead.", - "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.SupplementalGroupsStrategyOptions" - }, - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicy": { - "description": "Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicy instead.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicy" - }, - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyIngressRule": { - "description": "Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyIngressRule instead.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" - }, - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyList": { - "description": "Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyList instead.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyList" - }, - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPeer": { - "description": "Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPeer instead.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" - }, - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicyPort": { - "description": "Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicyPort instead.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" - }, - "io.k8s.kubernetes.pkg.apis.networking.v1.NetworkPolicySpec": { - "description": "Deprecated. Please use io.k8s.api.networking.v1.NetworkPolicySpec instead.", - "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicySpec" - }, - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.Eviction": { - "description": "Deprecated. Please use io.k8s.api.policy.v1beta1.Eviction instead.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.Eviction" - }, - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudget": { - "description": "Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudget instead.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudget" - }, - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetList": { - "description": "Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetList instead.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetList" - }, - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetSpec": { - "description": "Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec instead.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec" - }, - "io.k8s.kubernetes.pkg.apis.policy.v1beta1.PodDisruptionBudgetStatus": { - "description": "Deprecated. Please use io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus instead.", - "$ref": "#/definitions/io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRole": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRole instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRole" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBinding": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRoleBinding instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBinding" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleBindingList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleBindingList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.ClusterRoleList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.ClusterRoleList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.ClusterRoleList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.PolicyRule": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.PolicyRule instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.PolicyRule" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Role": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.Role instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Role" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBinding": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleBinding instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBinding" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleBindingList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleBindingList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleBindingList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.RoleRef": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.RoleRef instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.RoleRef" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1alpha1.Subject": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1alpha1.Subject instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1alpha1.Subject" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRole": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRole instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRole" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBinding": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBinding instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBinding" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleBindingList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleBindingList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleBindingList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.ClusterRoleList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.ClusterRoleList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.ClusterRoleList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.PolicyRule": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.PolicyRule instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.PolicyRule" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Role": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.Role instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Role" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBinding": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBinding instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBinding" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleBindingList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleBindingList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleBindingList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleList": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleList instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleList" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.RoleRef": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.RoleRef instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.RoleRef" - }, - "io.k8s.kubernetes.pkg.apis.rbac.v1beta1.Subject": { - "description": "Deprecated. Please use io.k8s.api.rbac.v1beta1.Subject instead.", - "$ref": "#/definitions/io.k8s.api.rbac.v1beta1.Subject" - }, - "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPreset": { - "description": "Deprecated. Please use io.k8s.api.settings.v1alpha1.PodPreset instead.", - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPreset" - }, - "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetList": { - "description": "Deprecated. Please use io.k8s.api.settings.v1alpha1.PodPresetList instead.", - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetList" - }, - "io.k8s.kubernetes.pkg.apis.settings.v1alpha1.PodPresetSpec": { - "description": "Deprecated. Please use io.k8s.api.settings.v1alpha1.PodPresetSpec instead.", - "$ref": "#/definitions/io.k8s.api.settings.v1alpha1.PodPresetSpec" - }, - "io.k8s.kubernetes.pkg.apis.storage.v1.StorageClass": { - "description": "Deprecated. Please use io.k8s.api.storage.v1.StorageClass instead.", - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClass" - }, - "io.k8s.kubernetes.pkg.apis.storage.v1.StorageClassList": { - "description": "Deprecated. Please use io.k8s.api.storage.v1.StorageClassList instead.", - "$ref": "#/definitions/io.k8s.api.storage.v1.StorageClassList" - }, - "io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClass": { - "description": "Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClass instead.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClass" - }, - "io.k8s.kubernetes.pkg.apis.storage.v1beta1.StorageClassList": { - "description": "Deprecated. Please use io.k8s.api.storage.v1beta1.StorageClassList instead.", - "$ref": "#/definitions/io.k8s.api.storage.v1beta1.StorageClassList" - } - }, - "securityDefinitions": { - "BearerToken": { - "description": "Bearer Token authentication", - "type": "apiKey", - "name": "authorization", - "in": "header" - } - }, - "security": [ - { - "BearerToken": [] - } - ] - } diff --git a/packages/openapi/test/specs/stripe.json b/packages/openapi/test/specs/stripe.json deleted file mode 100644 index bef82f1..0000000 --- a/packages/openapi/test/specs/stripe.json +++ /dev/null @@ -1,164106 +0,0 @@ -{ - "components": { - "schemas": { - "account": { - "description": "This is an object representing a Stripe account. You can retrieve it to see\nproperties on the account like its current requirements or if the account is\nenabled to make live charges or receive payouts.\n\nFor accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection)\nis `application`, which includes Custom accounts, the properties below are always\nreturned.\n\nFor accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection)\nis `stripe`, which includes Standard and Express accounts, some properties are only returned\nuntil you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions)\nto start Connect Onboarding. Learn about the [differences between accounts](/connect/accounts).", - "properties": { - "business_profile": { - "anyOf": [ - { - "$ref": "#/components/schemas/account_business_profile" - } - ], - "description": "Business information about the account.", - "nullable": true - }, - "business_type": { - "description": "The business type. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property is only returned for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "enum": [ - "company", - "government_entity", - "individual", - "non_profit" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "capabilities": { - "$ref": "#/components/schemas/account_capabilities" - }, - "charges_enabled": { - "description": "Whether the account can create live charges.", - "type": "boolean" - }, - "company": { - "$ref": "#/components/schemas/legal_entity_company" - }, - "controller": { - "$ref": "#/components/schemas/account_unification_account_controller" - }, - "country": { - "description": "The account's country.", - "maxLength": 5000, - "type": "string" - }, - "created": { - "description": "Time at which the account was connected. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "default_currency": { - "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://stripe.com/docs/payouts).", - "maxLength": 5000, - "type": "string" - }, - "details_submitted": { - "description": "Whether account details have been submitted. Accounts with Stripe Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to [an onboarding flow](/connect/onboarding) to finish submitting account details.", - "type": "boolean" - }, - "email": { - "description": "An email address associated with the account. It's not used for authentication and Stripe doesn't market to this field without explicit approval from the platform.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "external_accounts": { - "description": "External accounts (bank accounts and debit cards) currently attached to this account. External accounts are only returned for requests where `controller[is_controller]` is true.", - "properties": { - "data": { - "description": "The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - } - ], - "title": "Polymorphic", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ExternalAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "future_requirements": { - "$ref": "#/components/schemas/account_future_requirements" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "individual": { - "$ref": "#/components/schemas/person" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "account" - ], - "type": "string" - }, - "payouts_enabled": { - "description": "Whether Stripe can send payouts to this account.", - "type": "boolean" - }, - "requirements": { - "$ref": "#/components/schemas/account_requirements" - }, - "settings": { - "anyOf": [ - { - "$ref": "#/components/schemas/account_settings" - } - ], - "description": "Options for customizing how the account functions within Stripe.", - "nullable": true - }, - "tos_acceptance": { - "$ref": "#/components/schemas/account_tos_acceptance" - }, - "type": { - "description": "The Stripe account type. Can be `standard`, `express`, `custom`, or `none`.", - "enum": [ - "custom", - "express", - "none", - "standard" - ], - "type": "string" - } - }, - "required": [ - "id", - "object" - ], - "title": "Account", - "type": "object", - "x-expandableFields": [ - "business_profile", - "capabilities", - "company", - "controller", - "external_accounts", - "future_requirements", - "individual", - "requirements", - "settings", - "tos_acceptance" - ], - "x-resourceId": "account" - }, - "account_annual_revenue": { - "description": "", - "properties": { - "amount": { - "description": "A non-negative integer representing the amount in the [smallest currency unit](/currencies#zero-decimal).", - "nullable": true, - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "nullable": true, - "type": "string" - }, - "fiscal_year_end": { - "description": "The close-out date of the preceding fiscal year in ISO 8601 format. E.g. 2023-12-31 for the 31st of December, 2023.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountAnnualRevenue", - "type": "object", - "x-expandableFields": [] - }, - "account_bacs_debit_payments_settings": { - "description": "", - "properties": { - "display_name": { - "description": "The Bacs Direct Debit display name for this account. For payments made with Bacs Direct Debit, this name appears on the mandate as the statement descriptor. Mobile banking apps display it as the name of the business. To use custom branding, set the Bacs Direct Debit Display Name during or right after creation. Custom branding incurs an additional monthly fee for the platform. The fee appears 5 business days after requesting Bacs. If you don't set the display name before requesting Bacs capability, it's automatically set as \"Stripe\" and the account is onboarded to Stripe branding, which is free.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "service_user_number": { - "description": "The Bacs Direct Debit Service user number for this account. For payments made with Bacs Direct Debit, this number is a unique identifier of the account with our banking partners.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountBacsDebitPaymentsSettings", - "type": "object", - "x-expandableFields": [] - }, - "account_branding_settings": { - "description": "", - "properties": { - "icon": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) An icon for the account. Must be square and at least 128px x 128px.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "logo": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A logo for the account that will be used in Checkout instead of the icon and without the account's name next to it if provided. Must be at least 128px x 128px.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "primary_color": { - "description": "A CSS hex color value representing the primary branding color for this account", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "secondary_color": { - "description": "A CSS hex color value representing the secondary branding color for this account", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountBrandingSettings", - "type": "object", - "x-expandableFields": [ - "icon", - "logo" - ] - }, - "account_business_profile": { - "description": "", - "properties": { - "annual_revenue": { - "anyOf": [ - { - "$ref": "#/components/schemas/account_annual_revenue" - } - ], - "description": "The applicant's gross annual revenue for its preceding fiscal year.", - "nullable": true - }, - "estimated_worker_count": { - "description": "An estimated upper bound of employees, contractors, vendors, etc. currently working for the business.", - "nullable": true, - "type": "integer" - }, - "mcc": { - "description": "[The merchant category code for the account](/connect/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "monthly_estimated_revenue": { - "$ref": "#/components/schemas/account_monthly_estimated_revenue" - }, - "name": { - "description": "The customer-facing business name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_description": { - "description": "Internal-only description of the product sold or service provided by the business. It's used by Stripe for risk and underwriting purposes.", - "maxLength": 40000, - "nullable": true, - "type": "string" - }, - "support_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "A publicly available mailing address for sending support issues to.", - "nullable": true - }, - "support_email": { - "description": "A publicly available email address for sending support issues to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "support_phone": { - "description": "A publicly available phone number to call with support issues.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "support_url": { - "description": "A publicly available website for handling support issues.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "The business's publicly available website.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountBusinessProfile", - "type": "object", - "x-expandableFields": [ - "annual_revenue", - "monthly_estimated_revenue", - "support_address" - ] - }, - "account_capabilities": { - "description": "", - "properties": { - "acss_debit_payments": { - "description": "The status of the Canadian pre-authorized debits payments capability of the account, or whether the account can directly process Canadian pre-authorized debits charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "affirm_payments": { - "description": "The status of the Affirm capability of the account, or whether the account can directly process Affirm charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "afterpay_clearpay_payments": { - "description": "The status of the Afterpay Clearpay capability of the account, or whether the account can directly process Afterpay Clearpay charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "amazon_pay_payments": { - "description": "The status of the AmazonPay capability of the account, or whether the account can directly process AmazonPay payments.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "au_becs_debit_payments": { - "description": "The status of the BECS Direct Debit (AU) payments capability of the account, or whether the account can directly process BECS Direct Debit (AU) charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "bacs_debit_payments": { - "description": "The status of the Bacs Direct Debits payments capability of the account, or whether the account can directly process Bacs Direct Debits charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "bancontact_payments": { - "description": "The status of the Bancontact payments capability of the account, or whether the account can directly process Bancontact charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "bank_transfer_payments": { - "description": "The status of the customer_balance payments capability of the account, or whether the account can directly process customer_balance charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "blik_payments": { - "description": "The status of the blik payments capability of the account, or whether the account can directly process blik charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "boleto_payments": { - "description": "The status of the boleto payments capability of the account, or whether the account can directly process boleto charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "card_issuing": { - "description": "The status of the card issuing capability of the account, or whether you can use Issuing to distribute funds on cards", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "card_payments": { - "description": "The status of the card payments capability of the account, or whether the account can directly process credit and debit card charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "cartes_bancaires_payments": { - "description": "The status of the Cartes Bancaires payments capability of the account, or whether the account can directly process Cartes Bancaires card charges in EUR currency.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "cashapp_payments": { - "description": "The status of the Cash App Pay capability of the account, or whether the account can directly process Cash App Pay payments.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "eps_payments": { - "description": "The status of the EPS payments capability of the account, or whether the account can directly process EPS charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "fpx_payments": { - "description": "The status of the FPX payments capability of the account, or whether the account can directly process FPX charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "gb_bank_transfer_payments": { - "description": "The status of the GB customer_balance payments (GBP currency) capability of the account, or whether the account can directly process GB customer_balance charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "giropay_payments": { - "description": "The status of the giropay payments capability of the account, or whether the account can directly process giropay charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "grabpay_payments": { - "description": "The status of the GrabPay payments capability of the account, or whether the account can directly process GrabPay charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "ideal_payments": { - "description": "The status of the iDEAL payments capability of the account, or whether the account can directly process iDEAL charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "india_international_payments": { - "description": "The status of the india_international_payments capability of the account, or whether the account can process international charges (non INR) in India.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "jcb_payments": { - "description": "The status of the JCB payments capability of the account, or whether the account (Japan only) can directly process JCB credit card charges in JPY currency.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "jp_bank_transfer_payments": { - "description": "The status of the Japanese customer_balance payments (JPY currency) capability of the account, or whether the account can directly process Japanese customer_balance charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "klarna_payments": { - "description": "The status of the Klarna payments capability of the account, or whether the account can directly process Klarna charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "konbini_payments": { - "description": "The status of the konbini payments capability of the account, or whether the account can directly process konbini charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "legacy_payments": { - "description": "The status of the legacy payments capability of the account.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "link_payments": { - "description": "The status of the link_payments capability of the account, or whether the account can directly process Link charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "mobilepay_payments": { - "description": "The status of the MobilePay capability of the account, or whether the account can directly process MobilePay charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "multibanco_payments": { - "description": "The status of the Multibanco payments capability of the account, or whether the account can directly process Multibanco charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "mx_bank_transfer_payments": { - "description": "The status of the Mexican customer_balance payments (MXN currency) capability of the account, or whether the account can directly process Mexican customer_balance charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "oxxo_payments": { - "description": "The status of the OXXO payments capability of the account, or whether the account can directly process OXXO charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "p24_payments": { - "description": "The status of the P24 payments capability of the account, or whether the account can directly process P24 charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "paynow_payments": { - "description": "The status of the paynow payments capability of the account, or whether the account can directly process paynow charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "promptpay_payments": { - "description": "The status of the promptpay payments capability of the account, or whether the account can directly process promptpay charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "revolut_pay_payments": { - "description": "The status of the RevolutPay capability of the account, or whether the account can directly process RevolutPay payments.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "sepa_bank_transfer_payments": { - "description": "The status of the SEPA customer_balance payments (EUR currency) capability of the account, or whether the account can directly process SEPA customer_balance charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "sepa_debit_payments": { - "description": "The status of the SEPA Direct Debits payments capability of the account, or whether the account can directly process SEPA Direct Debits charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "sofort_payments": { - "description": "The status of the Sofort payments capability of the account, or whether the account can directly process Sofort charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "swish_payments": { - "description": "The status of the Swish capability of the account, or whether the account can directly process Swish payments.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "tax_reporting_us_1099_k": { - "description": "The status of the tax reporting 1099-K (US) capability of the account.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "tax_reporting_us_1099_misc": { - "description": "The status of the tax reporting 1099-MISC (US) capability of the account.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "transfers": { - "description": "The status of the transfers capability of the account, or whether your platform can transfer funds to the account.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "treasury": { - "description": "The status of the banking capability, or whether the account can have bank accounts.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "twint_payments": { - "description": "The status of the TWINT capability of the account, or whether the account can directly process TWINT charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "us_bank_account_ach_payments": { - "description": "The status of the US bank account ACH payments capability of the account, or whether the account can directly process US bank account charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "us_bank_transfer_payments": { - "description": "The status of the US customer_balance payments (USD currency) capability of the account, or whether the account can directly process US customer_balance charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "zip_payments": { - "description": "The status of the Zip capability of the account, or whether the account can directly process Zip charges.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - } - }, - "title": "AccountCapabilities", - "type": "object", - "x-expandableFields": [] - }, - "account_capability_future_requirements": { - "description": "", - "properties": { - "alternatives": { - "description": "Fields that are due and can be satisfied by providing the corresponding alternative fields instead.", - "items": { - "$ref": "#/components/schemas/account_requirements_alternative" - }, - "nullable": true, - "type": "array" - }, - "current_deadline": { - "description": "Date on which `future_requirements` merges with the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on the capability's enablement state prior to transitioning.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "currently_due": { - "description": "Fields that need to be collected to keep the capability enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "disabled_reason": { - "description": "This is typed as an enum for consistency with `requirements.disabled_reason`, but it safe to assume `future_requirements.disabled_reason` is null because fields in `future_requirements` will never disable the account.", - "enum": [ - "other", - "paused.inactivity", - "pending.onboarding", - "pending.review", - "platform_disabled", - "platform_paused", - "rejected.inactivity", - "rejected.other", - "rejected.unsupported_business", - "requirements.fields_needed" - ], - "nullable": true, - "type": "string" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "type": "array" - }, - "eventually_due": { - "description": "Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "currently_due", - "errors", - "eventually_due", - "past_due", - "pending_verification" - ], - "title": "AccountCapabilityFutureRequirements", - "type": "object", - "x-expandableFields": [ - "alternatives", - "errors" - ] - }, - "account_capability_requirements": { - "description": "", - "properties": { - "alternatives": { - "description": "Fields that are due and can be satisfied by providing the corresponding alternative fields instead.", - "items": { - "$ref": "#/components/schemas/account_requirements_alternative" - }, - "nullable": true, - "type": "array" - }, - "current_deadline": { - "description": "Date by which the fields in `currently_due` must be collected to keep the capability enabled for the account. These fields may disable the capability sooner if the next threshold is reached before they are collected.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "currently_due": { - "description": "Fields that need to be collected to keep the capability enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the capability is disabled.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "disabled_reason": { - "description": "Description of why the capability is disabled. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification).", - "enum": [ - "other", - "paused.inactivity", - "pending.onboarding", - "pending.review", - "platform_disabled", - "platform_paused", - "rejected.inactivity", - "rejected.other", - "rejected.unsupported_business", - "requirements.fields_needed" - ], - "nullable": true, - "type": "string" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "type": "array" - }, - "eventually_due": { - "description": "Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the capability on the account.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "currently_due", - "errors", - "eventually_due", - "past_due", - "pending_verification" - ], - "title": "AccountCapabilityRequirements", - "type": "object", - "x-expandableFields": [ - "alternatives", - "errors" - ] - }, - "account_card_issuing_settings": { - "description": "", - "properties": { - "tos_acceptance": { - "$ref": "#/components/schemas/card_issuing_account_terms_of_service" - } - }, - "title": "AccountCardIssuingSettings", - "type": "object", - "x-expandableFields": [ - "tos_acceptance" - ] - }, - "account_card_payments_settings": { - "description": "", - "properties": { - "decline_on": { - "$ref": "#/components/schemas/account_decline_charge_on" - }, - "statement_descriptor_prefix": { - "description": "The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge. `statement_descriptor_prefix` is useful for maximizing descriptor space for the dynamic portion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_prefix_kana": { - "description": "The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_prefix_kanji": { - "description": "The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountCardPaymentsSettings", - "type": "object", - "x-expandableFields": [ - "decline_on" - ] - }, - "account_dashboard_settings": { - "description": "", - "properties": { - "display_name": { - "description": "The display name for this account. This is used on the Stripe Dashboard to differentiate between accounts.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "timezone": { - "description": "The timezone used in the Stripe Dashboard for this account. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountDashboardSettings", - "type": "object", - "x-expandableFields": [] - }, - "account_decline_charge_on": { - "description": "", - "properties": { - "avs_failure": { - "description": "Whether Stripe automatically declines charges with an incorrect ZIP or postal code. This setting only applies when a ZIP or postal code is provided and they fail bank verification.", - "type": "boolean" - }, - "cvc_failure": { - "description": "Whether Stripe automatically declines charges with an incorrect CVC. This setting only applies when a CVC is provided and it fails bank verification.", - "type": "boolean" - } - }, - "required": [ - "avs_failure", - "cvc_failure" - ], - "title": "AccountDeclineChargeOn", - "type": "object", - "x-expandableFields": [] - }, - "account_future_requirements": { - "description": "", - "properties": { - "alternatives": { - "description": "Fields that are due and can be satisfied by providing the corresponding alternative fields instead.", - "items": { - "$ref": "#/components/schemas/account_requirements_alternative" - }, - "nullable": true, - "type": "array" - }, - "current_deadline": { - "description": "Date on which `future_requirements` merges with the main `requirements` hash and `future_requirements` becomes empty. After the transition, `currently_due` requirements may immediately become `past_due`, but the account may also be given a grace period depending on its enablement state prior to transitioning.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "currently_due": { - "description": "Fields that need to be collected to keep the account enabled. If not collected by `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "disabled_reason": { - "description": "This is typed as a string for consistency with `requirements.disabled_reason`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "nullable": true, - "type": "array" - }, - "eventually_due": { - "description": "Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by `requirements.current_deadline`. These fields need to be collected to enable the capability on the account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "title": "AccountFutureRequirements", - "type": "object", - "x-expandableFields": [ - "alternatives", - "errors" - ] - }, - "account_invoices_settings": { - "description": "", - "properties": { - "default_account_tax_ids": { - "description": "The list of default Account Tax IDs to automatically include on invoices. Account Tax IDs get added when an invoice is finalized.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - } - }, - "title": "AccountInvoicesSettings", - "type": "object", - "x-expandableFields": [ - "default_account_tax_ids" - ] - }, - "account_link": { - "description": "Account Links are the means by which a Connect platform grants a connected account permission to access\nStripe-hosted applications, such as Connect Onboarding.\n\nRelated guide: [Connect Onboarding](https://stripe.com/docs/connect/custom/hosted-onboarding)", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "expires_at": { - "description": "The timestamp at which this account link will expire.", - "format": "unix-time", - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "account_link" - ], - "type": "string" - }, - "url": { - "description": "The URL for the account link.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "expires_at", - "object", - "url" - ], - "title": "AccountLink", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "account_link" - }, - "account_monthly_estimated_revenue": { - "description": "", - "properties": { - "amount": { - "description": "A non-negative integer representing how much to charge in the [smallest currency unit](/currencies#zero-decimal).", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "AccountMonthlyEstimatedRevenue", - "type": "object", - "x-expandableFields": [] - }, - "account_payments_settings": { - "description": "", - "properties": { - "statement_descriptor": { - "description": "The default text that appears on credit card statements when a charge is made. This field prefixes any dynamic `statement_descriptor` specified on the charge.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_kana": { - "description": "The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only)", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_kanji": { - "description": "The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only)", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_prefix_kana": { - "description": "The Kana variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kana` specified on the charge. `statement_descriptor_prefix_kana` is useful for maximizing descriptor space for the dynamic portion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_prefix_kanji": { - "description": "The Kanji variation of the default text that appears on credit card statements when a charge is made (Japan only). This field prefixes any dynamic `statement_descriptor_suffix_kanji` specified on the charge. `statement_descriptor_prefix_kanji` is useful for maximizing descriptor space for the dynamic portion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountPaymentsSettings", - "type": "object", - "x-expandableFields": [] - }, - "account_payout_settings": { - "description": "", - "properties": { - "debit_negative_balances": { - "description": "A Boolean indicating if Stripe should try to reclaim negative balances from an attached bank account. See [Understanding Connect account balances](/connect/account-balances) for details. The default value is `false` when [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, otherwise `true`.", - "type": "boolean" - }, - "schedule": { - "$ref": "#/components/schemas/transfer_schedule" - }, - "statement_descriptor": { - "description": "The text that appears on the bank account statement for payouts. If not set, this defaults to the platform's bank descriptor as set in the Dashboard.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "debit_negative_balances", - "schedule" - ], - "title": "AccountPayoutSettings", - "type": "object", - "x-expandableFields": [ - "schedule" - ] - }, - "account_requirements": { - "description": "", - "properties": { - "alternatives": { - "description": "Fields that are due and can be satisfied by providing the corresponding alternative fields instead.", - "items": { - "$ref": "#/components/schemas/account_requirements_alternative" - }, - "nullable": true, - "type": "array" - }, - "current_deadline": { - "description": "Date by which the fields in `currently_due` must be collected to keep the account enabled. These fields may disable the account sooner if the next threshold is reached before they are collected.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "currently_due": { - "description": "Fields that need to be collected to keep the account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "disabled_reason": { - "description": "If the account is disabled, this string describes why. [Learn more about handling verification issues](https://stripe.com/docs/connect/handling-api-verification). Can be `action_required.requested_capabilities`, `requirements.past_due`, `requirements.pending_verification`, `listed`, `platform_paused`, `rejected.fraud`, `rejected.incomplete_verification`, `rejected.listed`, `rejected.other`, `rejected.terms_of_service`, `under_review`, or `other`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "nullable": true, - "type": "array" - }, - "eventually_due": { - "description": "Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and `current_deadline` becomes set.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the account.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "title": "AccountRequirements", - "type": "object", - "x-expandableFields": [ - "alternatives", - "errors" - ] - }, - "account_requirements_alternative": { - "description": "", - "properties": { - "alternative_fields_due": { - "description": "Fields that can be provided to satisfy all fields in `original_fields_due`.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "original_fields_due": { - "description": "Fields that are due and can be satisfied by providing all fields in `alternative_fields_due`.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "alternative_fields_due", - "original_fields_due" - ], - "title": "AccountRequirementsAlternative", - "type": "object", - "x-expandableFields": [] - }, - "account_requirements_error": { - "description": "", - "properties": { - "code": { - "description": "The code for the type of error.", - "enum": [ - "invalid_address_city_state_postal_code", - "invalid_address_highway_contract_box", - "invalid_address_private_mailbox", - "invalid_business_profile_name", - "invalid_business_profile_name_denylisted", - "invalid_company_name_denylisted", - "invalid_dob_age_over_maximum", - "invalid_dob_age_under_18", - "invalid_dob_age_under_minimum", - "invalid_product_description_length", - "invalid_product_description_url_match", - "invalid_representative_country", - "invalid_statement_descriptor_business_mismatch", - "invalid_statement_descriptor_denylisted", - "invalid_statement_descriptor_length", - "invalid_statement_descriptor_prefix_denylisted", - "invalid_statement_descriptor_prefix_mismatch", - "invalid_street_address", - "invalid_tax_id", - "invalid_tax_id_format", - "invalid_tos_acceptance", - "invalid_url_denylisted", - "invalid_url_format", - "invalid_url_web_presence_detected", - "invalid_url_website_business_information_mismatch", - "invalid_url_website_empty", - "invalid_url_website_inaccessible", - "invalid_url_website_inaccessible_geoblocked", - "invalid_url_website_inaccessible_password_protected", - "invalid_url_website_incomplete", - "invalid_url_website_incomplete_cancellation_policy", - "invalid_url_website_incomplete_customer_service_details", - "invalid_url_website_incomplete_legal_restrictions", - "invalid_url_website_incomplete_refund_policy", - "invalid_url_website_incomplete_return_policy", - "invalid_url_website_incomplete_terms_and_conditions", - "invalid_url_website_incomplete_under_construction", - "invalid_url_website_other", - "invalid_value_other", - "verification_directors_mismatch", - "verification_document_address_mismatch", - "verification_document_address_missing", - "verification_document_corrupt", - "verification_document_country_not_supported", - "verification_document_directors_mismatch", - "verification_document_dob_mismatch", - "verification_document_duplicate_type", - "verification_document_expired", - "verification_document_failed_copy", - "verification_document_failed_greyscale", - "verification_document_failed_other", - "verification_document_failed_test_mode", - "verification_document_fraudulent", - "verification_document_id_number_mismatch", - "verification_document_id_number_missing", - "verification_document_incomplete", - "verification_document_invalid", - "verification_document_issue_or_expiry_date_missing", - "verification_document_manipulated", - "verification_document_missing_back", - "verification_document_missing_front", - "verification_document_name_mismatch", - "verification_document_name_missing", - "verification_document_nationality_mismatch", - "verification_document_not_readable", - "verification_document_not_signed", - "verification_document_not_uploaded", - "verification_document_photo_mismatch", - "verification_document_too_large", - "verification_document_type_not_supported", - "verification_extraneous_directors", - "verification_failed_address_match", - "verification_failed_business_iec_number", - "verification_failed_document_match", - "verification_failed_id_number_match", - "verification_failed_keyed_identity", - "verification_failed_keyed_match", - "verification_failed_name_match", - "verification_failed_other", - "verification_failed_representative_authority", - "verification_failed_residential_address", - "verification_failed_tax_id_match", - "verification_failed_tax_id_not_issued", - "verification_missing_directors", - "verification_missing_executives", - "verification_missing_owners", - "verification_requires_additional_memorandum_of_associations", - "verification_requires_additional_proof_of_registration" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reason": { - "description": "An informative message that indicates the error type and provides additional details about the error.", - "maxLength": 5000, - "type": "string" - }, - "requirement": { - "description": "The specific user onboarding requirement field (in the requirements hash) that needs to be resolved.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "code", - "reason", - "requirement" - ], - "title": "AccountRequirementsError", - "type": "object", - "x-expandableFields": [] - }, - "account_sepa_debit_payments_settings": { - "description": "", - "properties": { - "creditor_id": { - "description": "SEPA creditor identifier that identifies the company making the payment.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "AccountSepaDebitPaymentsSettings", - "type": "object", - "x-expandableFields": [] - }, - "account_session": { - "description": "An AccountSession allows a Connect platform to grant access to a connected account in Connect embedded components.\n\nWe recommend that you create an AccountSession each time you need to display an embedded component\nto your user. Do not save AccountSessions to your database as they expire relatively\nquickly, and cannot be used more than once.\n\nRelated guide: [Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components)", - "properties": { - "account": { - "description": "The ID of the account the AccountSession was created for", - "maxLength": 5000, - "type": "string" - }, - "client_secret": { - "description": "The client secret of this AccountSession. Used on the client to set up secure access to the given `account`.\n\nThe client secret can be used to provide access to `account` from your frontend. It should not be stored, logged, or exposed to anyone other than the connected account. Make sure that you have TLS enabled on any page that includes the client secret.\n\nRefer to our docs to [setup Connect embedded components](https://stripe.com/docs/connect/get-started-connect-embedded-components) and learn about how `client_secret` should be handled.", - "maxLength": 5000, - "type": "string" - }, - "components": { - "$ref": "#/components/schemas/connect_embedded_account_session_create_components" - }, - "expires_at": { - "description": "The timestamp at which this AccountSession will expire.", - "format": "unix-time", - "type": "integer" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "account_session" - ], - "type": "string" - } - }, - "required": [ - "account", - "client_secret", - "components", - "expires_at", - "livemode", - "object" - ], - "title": "ConnectEmbeddedMethodAccountSessionCreateMethodAccountSession", - "type": "object", - "x-expandableFields": [ - "components" - ], - "x-resourceId": "account_session" - }, - "account_settings": { - "description": "", - "properties": { - "bacs_debit_payments": { - "$ref": "#/components/schemas/account_bacs_debit_payments_settings" - }, - "branding": { - "$ref": "#/components/schemas/account_branding_settings" - }, - "card_issuing": { - "$ref": "#/components/schemas/account_card_issuing_settings" - }, - "card_payments": { - "$ref": "#/components/schemas/account_card_payments_settings" - }, - "dashboard": { - "$ref": "#/components/schemas/account_dashboard_settings" - }, - "invoices": { - "$ref": "#/components/schemas/account_invoices_settings" - }, - "payments": { - "$ref": "#/components/schemas/account_payments_settings" - }, - "payouts": { - "$ref": "#/components/schemas/account_payout_settings" - }, - "sepa_debit_payments": { - "$ref": "#/components/schemas/account_sepa_debit_payments_settings" - }, - "treasury": { - "$ref": "#/components/schemas/account_treasury_settings" - } - }, - "required": [ - "branding", - "card_payments", - "dashboard", - "payments" - ], - "title": "AccountSettings", - "type": "object", - "x-expandableFields": [ - "bacs_debit_payments", - "branding", - "card_issuing", - "card_payments", - "dashboard", - "invoices", - "payments", - "payouts", - "sepa_debit_payments", - "treasury" - ] - }, - "account_terms_of_service": { - "description": "", - "properties": { - "date": { - "description": "The Unix timestamp marking when the account representative accepted the service agreement.", - "nullable": true, - "type": "integer" - }, - "ip": { - "description": "The IP address from which the account representative accepted the service agreement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The user agent of the browser from which the account representative accepted the service agreement.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "AccountTermsOfService", - "type": "object", - "x-expandableFields": [] - }, - "account_tos_acceptance": { - "description": "", - "properties": { - "date": { - "description": "The Unix timestamp marking when the account representative accepted their service agreement", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "ip": { - "description": "The IP address from which the account representative accepted their service agreement", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "service_agreement": { - "description": "The user's service agreement type", - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "description": "The user agent of the browser from which the account representative accepted their service agreement", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "AccountTOSAcceptance", - "type": "object", - "x-expandableFields": [] - }, - "account_treasury_settings": { - "description": "", - "properties": { - "tos_acceptance": { - "$ref": "#/components/schemas/account_terms_of_service" - } - }, - "title": "AccountTreasurySettings", - "type": "object", - "x-expandableFields": [ - "tos_acceptance" - ] - }, - "account_unification_account_controller": { - "description": "", - "properties": { - "fees": { - "$ref": "#/components/schemas/account_unification_account_controller_fees" - }, - "is_controller": { - "description": "`true` if the Connect application retrieving the resource controls the account and can therefore exercise [platform controls](https://stripe.com/docs/connect/platform-controls-for-standard-accounts). Otherwise, this field is null.", - "type": "boolean" - }, - "losses": { - "$ref": "#/components/schemas/account_unification_account_controller_losses" - }, - "requirement_collection": { - "description": "A value indicating responsibility for collecting requirements on this account. Only returned when the Connect application retrieving the resource controls the account.", - "enum": [ - "application", - "stripe" - ], - "type": "string" - }, - "stripe_dashboard": { - "$ref": "#/components/schemas/account_unification_account_controller_stripe_dashboard" - }, - "type": { - "description": "The controller type. Can be `application`, if a Connect application controls the account, or `account`, if the account controls itself.", - "enum": [ - "account", - "application" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "AccountUnificationAccountController", - "type": "object", - "x-expandableFields": [ - "fees", - "losses", - "stripe_dashboard" - ] - }, - "account_unification_account_controller_fees": { - "description": "", - "properties": { - "payer": { - "description": "A value indicating the responsible payer of a bundle of Stripe fees for pricing-control eligible products on this account. Learn more about [fee behavior on connected accounts](https://docs.stripe.com/connect/direct-charges-fee-payer-behavior).", - "enum": [ - "account", - "application", - "application_custom", - "application_express" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "payer" - ], - "title": "AccountUnificationAccountControllerFees", - "type": "object", - "x-expandableFields": [] - }, - "account_unification_account_controller_losses": { - "description": "", - "properties": { - "payments": { - "description": "A value indicating who is liable when this account can't pay back negative balances from payments.", - "enum": [ - "application", - "stripe" - ], - "type": "string" - } - }, - "required": [ - "payments" - ], - "title": "AccountUnificationAccountControllerLosses", - "type": "object", - "x-expandableFields": [] - }, - "account_unification_account_controller_stripe_dashboard": { - "description": "", - "properties": { - "type": { - "description": "A value indicating the Stripe dashboard this account has access to independent of the Connect application.", - "enum": [ - "express", - "full", - "none" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "AccountUnificationAccountControllerStripeDashboard", - "type": "object", - "x-expandableFields": [] - }, - "address": { - "description": "", - "properties": { - "city": { - "description": "City, district, suburb, town, or village.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "line1": { - "description": "Address line 1 (e.g., street, PO Box, or company name).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "line2": { - "description": "Address line 2 (e.g., apartment, suite, unit, or building).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "postal_code": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "state": { - "description": "State, county, province, or region.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "Address", - "type": "object", - "x-expandableFields": [] - }, - "api_errors": { - "description": "", - "properties": { - "charge": { - "description": "For card errors, the ID of the failed charge.", - "maxLength": 5000, - "type": "string" - }, - "code": { - "description": "For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported.", - "maxLength": 5000, - "type": "string" - }, - "decline_code": { - "description": "For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one.", - "maxLength": 5000, - "type": "string" - }, - "doc_url": { - "description": "A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported.", - "maxLength": 5000, - "type": "string" - }, - "message": { - "description": "A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.", - "maxLength": 40000, - "type": "string" - }, - "param": { - "description": "If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.", - "maxLength": 5000, - "type": "string" - }, - "payment_intent": { - "$ref": "#/components/schemas/payment_intent" - }, - "payment_method": { - "$ref": "#/components/schemas/payment_method" - }, - "payment_method_type": { - "description": "If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.", - "maxLength": 5000, - "type": "string" - }, - "request_log_url": { - "description": "A URL to the request log entry in your dashboard.", - "maxLength": 5000, - "type": "string" - }, - "setup_intent": { - "$ref": "#/components/schemas/setup_intent" - }, - "source": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "description": "The [source object](https://stripe.com/docs/api/sources/object) for errors returned on a request involving a source.", - "x-stripeBypassValidation": true - }, - "type": { - "description": "The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error`", - "enum": [ - "api_error", - "card_error", - "idempotency_error", - "invalid_request_error" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "APIErrors", - "type": "object", - "x-expandableFields": [ - "payment_intent", - "payment_method", - "setup_intent", - "source" - ] - }, - "apple_pay_domain": { - "description": "", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "domain_name": { - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "apple_pay_domain" - ], - "type": "string" - } - }, - "required": [ - "created", - "domain_name", - "id", - "livemode", - "object" - ], - "title": "ApplePayDomain", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "apple_pay_domain" - }, - "application": { - "description": "", - "properties": { - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "name": { - "description": "The name of the application.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "application" - ], - "type": "string" - } - }, - "required": [ - "id", - "object" - ], - "title": "Application", - "type": "object", - "x-expandableFields": [] - }, - "application_fee": { - "description": "", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "ID of the Stripe account this fee was taken from.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "amount": { - "description": "Amount earned, in cents (or local equivalent).", - "type": "integer" - }, - "amount_refunded": { - "description": "Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the fee if a partial refund was issued)", - "type": "integer" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - } - ], - "description": "ID of the Connect application that earned the fee.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - } - ] - } - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the charge that the application fee was taken from.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "fee_source": { - "anyOf": [ - { - "$ref": "#/components/schemas/platform_earning_fee_source" - } - ], - "description": "Polymorphic source of the application fee. Includes the ID of the object the application fee was created from.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "application_fee" - ], - "type": "string" - }, - "originating_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "refunded": { - "description": "Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.", - "type": "boolean" - }, - "refunds": { - "description": "A list of refunds that have been applied to the fee.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/fee_refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FeeRefundList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - }, - "required": [ - "account", - "amount", - "amount_refunded", - "application", - "charge", - "created", - "currency", - "id", - "livemode", - "object", - "refunded", - "refunds" - ], - "title": "PlatformFee", - "type": "object", - "x-expandableFields": [ - "account", - "application", - "balance_transaction", - "charge", - "fee_source", - "originating_transaction", - "refunds" - ], - "x-resourceId": "application_fee" - }, - "apps.secret": { - "description": "Secret Store is an API that allows Stripe Apps developers to securely persist secrets for use by UI Extensions and app backends.\n\nThe primary resource in Secret Store is a `secret`. Other apps can't view secrets created by an app. Additionally, secrets are scoped to provide further permission control.\n\nAll Dashboard users and the app backend share `account` scoped secrets. Use the `account` scope for secrets that don't change per-user, like a third-party API key.\n\nA `user` scoped secret is accessible by the app backend and one specific Dashboard user. Use the `user` scope for per-user secrets like per-user OAuth tokens, where different users might have different permissions.\n\nRelated guide: [Store data between page reloads](https://stripe.com/docs/stripe-apps/store-auth-data-custom-objects)", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "deleted": { - "description": "If true, indicates that this secret has been deleted", - "type": "boolean" - }, - "expires_at": { - "description": "The Unix timestamp for the expiry time of the secret, after which the secret deletes.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "name": { - "description": "A name for the secret that's unique within the scope.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "apps.secret" - ], - "type": "string" - }, - "payload": { - "description": "The plaintext secret value to be stored.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "scope": { - "$ref": "#/components/schemas/secret_service_resource_scope" - } - }, - "required": [ - "created", - "id", - "livemode", - "name", - "object", - "scope" - ], - "title": "SecretServiceResourceSecret", - "type": "object", - "x-expandableFields": [ - "scope" - ], - "x-resourceId": "apps.secret" - }, - "automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "Whether Stripe automatically computes tax on this invoice. Note that incompatible invoice items (invoice items with manually specified [tax rates](https://stripe.com/docs/api/tax_rates), negative amounts, or `tax_behavior=unspecified`) cannot be added to automatic tax invoices.", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - }, - "status": { - "description": "The status of the most recent automated tax calculation for this invoice.", - "enum": [ - "complete", - "failed", - "requires_location_inputs" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "enabled" - ], - "title": "AutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "balance": { - "description": "This is an object representing your Stripe balance. You can retrieve it to see\nthe balance currently on your Stripe account.\n\nYou can also retrieve the balance history, which contains a list of\n[transactions](https://stripe.com/docs/reporting/balance-transaction-types) that contributed to the balance\n(charges, payouts, and so forth).\n\nThe available and pending amounts for each currency are broken down further by\npayment source types.\n\nRelated guide: [Understanding Connect account balances](https://stripe.com/docs/connect/account-balances)", - "properties": { - "available": { - "description": "Available funds that you can transfer or pay out automatically by Stripe or explicitly through the [Transfers API](https://stripe.com/docs/api#transfers) or [Payouts API](https://stripe.com/docs/api#payouts). You can find the available balance for each currency and payment type in the `source_types` property.", - "items": { - "$ref": "#/components/schemas/balance_amount" - }, - "type": "array" - }, - "connect_reserved": { - "description": "Funds held due to negative balances on connected accounts where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. You can find the connect reserve balance for each currency and payment type in the `source_types` property.", - "items": { - "$ref": "#/components/schemas/balance_amount" - }, - "type": "array" - }, - "instant_available": { - "description": "Funds that you can pay out using Instant Payouts.", - "items": { - "$ref": "#/components/schemas/balance_amount_net" - }, - "type": "array" - }, - "issuing": { - "$ref": "#/components/schemas/balance_detail" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "balance" - ], - "type": "string" - }, - "pending": { - "description": "Funds that aren't available in the balance yet. You can find the pending balance for each currency and each payment type in the `source_types` property.", - "items": { - "$ref": "#/components/schemas/balance_amount" - }, - "type": "array" - } - }, - "required": [ - "available", - "livemode", - "object", - "pending" - ], - "title": "Balance", - "type": "object", - "x-expandableFields": [ - "available", - "connect_reserved", - "instant_available", - "issuing", - "pending" - ], - "x-resourceId": "balance" - }, - "balance_amount": { - "description": "", - "properties": { - "amount": { - "description": "Balance amount.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "source_types": { - "$ref": "#/components/schemas/balance_amount_by_source_type" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "BalanceAmount", - "type": "object", - "x-expandableFields": [ - "source_types" - ] - }, - "balance_amount_by_source_type": { - "description": "", - "properties": { - "bank_account": { - "description": "Amount for bank account.", - "type": "integer" - }, - "card": { - "description": "Amount for card.", - "type": "integer" - }, - "fpx": { - "description": "Amount for FPX.", - "type": "integer" - } - }, - "title": "BalanceAmountBySourceType", - "type": "object", - "x-expandableFields": [] - }, - "balance_amount_net": { - "description": "", - "properties": { - "amount": { - "description": "Balance amount.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "net_available": { - "description": "Breakdown of balance by destination.", - "items": { - "$ref": "#/components/schemas/balance_net_available" - }, - "type": "array" - }, - "source_types": { - "$ref": "#/components/schemas/balance_amount_by_source_type" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "BalanceAmountNet", - "type": "object", - "x-expandableFields": [ - "net_available", - "source_types" - ] - }, - "balance_detail": { - "description": "", - "properties": { - "available": { - "description": "Funds that are available for use.", - "items": { - "$ref": "#/components/schemas/balance_amount" - }, - "type": "array" - } - }, - "required": [ - "available" - ], - "title": "BalanceDetail", - "type": "object", - "x-expandableFields": [ - "available" - ] - }, - "balance_net_available": { - "description": "", - "properties": { - "amount": { - "description": "Net balance amount, subtracting fees from platform-set pricing.", - "type": "integer" - }, - "destination": { - "description": "ID of the external account for this net balance (not expandable).", - "maxLength": 5000, - "type": "string" - }, - "source_types": { - "$ref": "#/components/schemas/balance_amount_by_source_type" - } - }, - "required": [ - "amount", - "destination" - ], - "title": "BalanceNetAvailable", - "type": "object", - "x-expandableFields": [ - "source_types" - ] - }, - "balance_transaction": { - "description": "Balance transactions represent funds moving through your Stripe account.\nStripe creates them for every type of transaction that enters or leaves your Stripe account balance.\n\nRelated guide: [Balance transaction types](https://stripe.com/docs/reports/balance-transaction-types)", - "properties": { - "amount": { - "description": "Gross amount of this transaction (in cents (or local equivalent)). A positive value represents funds charged to another party, and a negative value represents funds sent to another party.", - "type": "integer" - }, - "available_on": { - "description": "The date that the transaction's net funds become available in the Stripe balance.", - "format": "unix-time", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exchange_rate": { - "description": "If applicable, this transaction uses an exchange rate. If money converts from currency A to currency B, then the `amount` in currency A, multipled by the `exchange_rate`, equals the `amount` in currency B. For example, if you charge a customer 10.00 EUR, the PaymentIntent's `amount` is `1000` and `currency` is `eur`. If this converts to 12.34 USD in your Stripe account, the BalanceTransaction's `amount` is `1234`, its `currency` is `usd`, and the `exchange_rate` is `1.234`.", - "nullable": true, - "type": "number" - }, - "fee": { - "description": "Fees (in cents (or local equivalent)) paid for this transaction. Represented as a positive integer when assessed.", - "type": "integer" - }, - "fee_details": { - "description": "Detailed breakdown of fees (in cents (or local equivalent)) paid for this transaction.", - "items": { - "$ref": "#/components/schemas/fee" - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "net": { - "description": "Net impact to a Stripe balance (in cents (or local equivalent)). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by `amount` - `fee`", - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "balance_transaction" - ], - "type": "string" - }, - "reporting_category": { - "description": "Learn more about how [reporting categories](https://stripe.com/docs/reports/reporting-categories) can help you understand balance transactions from an accounting perspective.", - "maxLength": 5000, - "type": "string" - }, - "source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application_fee" - }, - { - "$ref": "#/components/schemas/charge" - }, - { - "$ref": "#/components/schemas/connect_collection_transfer" - }, - { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - }, - { - "$ref": "#/components/schemas/dispute" - }, - { - "$ref": "#/components/schemas/fee_refund" - }, - { - "$ref": "#/components/schemas/issuing.authorization" - }, - { - "$ref": "#/components/schemas/issuing.dispute" - }, - { - "$ref": "#/components/schemas/issuing.transaction" - }, - { - "$ref": "#/components/schemas/payout" - }, - { - "$ref": "#/components/schemas/refund" - }, - { - "$ref": "#/components/schemas/reserve_transaction" - }, - { - "$ref": "#/components/schemas/tax_deducted_at_source" - }, - { - "$ref": "#/components/schemas/topup" - }, - { - "$ref": "#/components/schemas/transfer" - }, - { - "$ref": "#/components/schemas/transfer_reversal" - } - ], - "description": "This transaction relates to the Stripe object.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application_fee" - }, - { - "$ref": "#/components/schemas/charge" - }, - { - "$ref": "#/components/schemas/connect_collection_transfer" - }, - { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - }, - { - "$ref": "#/components/schemas/dispute" - }, - { - "$ref": "#/components/schemas/fee_refund" - }, - { - "$ref": "#/components/schemas/issuing.authorization" - }, - { - "$ref": "#/components/schemas/issuing.dispute" - }, - { - "$ref": "#/components/schemas/issuing.transaction" - }, - { - "$ref": "#/components/schemas/payout" - }, - { - "$ref": "#/components/schemas/refund" - }, - { - "$ref": "#/components/schemas/reserve_transaction" - }, - { - "$ref": "#/components/schemas/tax_deducted_at_source" - }, - { - "$ref": "#/components/schemas/topup" - }, - { - "$ref": "#/components/schemas/transfer" - }, - { - "$ref": "#/components/schemas/transfer_reversal" - } - ] - }, - "x-stripeBypassValidation": true - }, - "status": { - "description": "The transaction's net funds status in the Stripe balance, which are either `available` or `pending`.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. Learn more about [balance transaction types and what they represent](https://stripe.com/docs/reports/balance-transaction-types). To classify transactions for accounting purposes, consider `reporting_category` instead.", - "enum": [ - "adjustment", - "advance", - "advance_funding", - "anticipation_repayment", - "application_fee", - "application_fee_refund", - "charge", - "climate_order_purchase", - "climate_order_refund", - "connect_collection_transfer", - "contribution", - "issuing_authorization_hold", - "issuing_authorization_release", - "issuing_dispute", - "issuing_transaction", - "obligation_outbound", - "obligation_reversal_inbound", - "payment", - "payment_failure_refund", - "payment_network_reserve_hold", - "payment_network_reserve_release", - "payment_refund", - "payment_reversal", - "payment_unreconciled", - "payout", - "payout_cancel", - "payout_failure", - "refund", - "refund_failure", - "reserve_transaction", - "reserved_funds", - "stripe_fee", - "stripe_fx_fee", - "tax_fee", - "topup", - "topup_reversal", - "transfer", - "transfer_cancel", - "transfer_failure", - "transfer_refund" - ], - "type": "string" - } - }, - "required": [ - "amount", - "available_on", - "created", - "currency", - "fee", - "fee_details", - "id", - "net", - "object", - "reporting_category", - "status", - "type" - ], - "title": "BalanceTransaction", - "type": "object", - "x-expandableFields": [ - "fee_details", - "source" - ], - "x-resourceId": "balance_transaction" - }, - "bank_account": { - "description": "These bank accounts are payment methods on `Customer` objects.\n\nOn the other hand [External Accounts](/api#external_accounts) are transfer\ndestinations on `Account` objects for connected accounts.\nThey can be bank accounts or debit cards as well, and are documented in the links above.\n\nRelated guide: [Bank debits and transfers](/payments/bank-debits-transfers)", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The ID of the account that the bank account is associated with.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "available_payout_methods": { - "description": "A set of available payout methods for this bank account. Only values from this set should be passed as the `method` when creating a payout.", - "items": { - "enum": [ - "instant", - "standard" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "bank_name": { - "description": "Name of the bank associated with the routing number (e.g., `WELLS FARGO`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country the bank account is located in.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.", - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The ID of the customer that the bank account is associated with.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "default_for_currency": { - "description": "Whether this bank account is the default external account for its currency.", - "nullable": true, - "type": "boolean" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "future_requirements": { - "anyOf": [ - { - "$ref": "#/components/schemas/external_account_requirements" - } - ], - "description": "Information about the [upcoming new requirements for the bank account](https://stripe.com/docs/connect/custom-accounts/future-requirements), including what information needs to be collected, and by when.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "The last four digits of the bank account number.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "bank_account" - ], - "type": "string" - }, - "requirements": { - "anyOf": [ - { - "$ref": "#/components/schemas/external_account_requirements" - } - ], - "description": "Information about the requirements for the bank account, including what information needs to be collected.", - "nullable": true - }, - "routing_number": { - "description": "The routing transit number for the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "For bank accounts, possible values are `new`, `validated`, `verified`, `verification_failed`, or `errored`. A bank account that hasn't had any activity or validation performed is `new`. If Stripe can determine that the bank account exists, its status will be `validated`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be `verified`. If the verification failed for any reason, such as microdeposit failure, the status will be `verification_failed`. If a payout sent to this bank account fails, we'll set the status to `errored` and will not continue to send [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) until the bank details are updated.\n\nFor external accounts, possible values are `new`, `errored` and `verification_failed`. If a payout fails, the status is set to `errored` and scheduled payouts are stopped until account details are updated. In the US and India, if we can't [verify the owner of the bank account](https://support.stripe.com/questions/bank-account-ownership-verification), we'll set the status to `verification_failed`. Other validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country", - "currency", - "id", - "last4", - "object", - "status" - ], - "title": "BankAccount", - "type": "object", - "x-expandableFields": [ - "account", - "customer", - "future_requirements", - "requirements" - ], - "x-resourceId": "bank_account" - }, - "bank_connections_resource_accountholder": { - "description": "", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The ID of the Stripe account this account belongs to. Should only be present if `account_holder.type` is `account`.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "ID of the Stripe customer this account belongs to. Present if and only if `account_holder.type` is `customer`.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "type": { - "description": "Type of account holder that this account belongs to.", - "enum": [ - "account", - "customer" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "BankConnectionsResourceAccountholder", - "type": "object", - "x-expandableFields": [ - "account", - "customer" - ] - }, - "bank_connections_resource_balance": { - "description": "", - "properties": { - "as_of": { - "description": "The time that the external institution calculated this balance. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "cash": { - "$ref": "#/components/schemas/bank_connections_resource_balance_api_resource_cash_balance" - }, - "credit": { - "$ref": "#/components/schemas/bank_connections_resource_balance_api_resource_credit_balance" - }, - "current": { - "additionalProperties": { - "type": "integer" - }, - "description": "The balances owed to (or by) the account holder, before subtracting any outbound pending transactions or adding any inbound pending transactions.\n\nEach key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.\n\nEach value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder.", - "type": "object" - }, - "type": { - "description": "The `type` of the balance. An additional hash is included on the balance with a name matching this value.", - "enum": [ - "cash", - "credit" - ], - "type": "string" - } - }, - "required": [ - "as_of", - "current", - "type" - ], - "title": "BankConnectionsResourceBalance", - "type": "object", - "x-expandableFields": [ - "cash", - "credit" - ] - }, - "bank_connections_resource_balance_api_resource_cash_balance": { - "description": "", - "properties": { - "available": { - "additionalProperties": { - "type": "integer" - }, - "description": "The funds available to the account holder. Typically this is the current balance after subtracting any outbound pending transactions and adding any inbound pending transactions.\n\nEach key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.\n\nEach value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder.", - "nullable": true, - "type": "object" - } - }, - "title": "BankConnectionsResourceBalanceAPIResourceCashBalance", - "type": "object", - "x-expandableFields": [] - }, - "bank_connections_resource_balance_api_resource_credit_balance": { - "description": "", - "properties": { - "used": { - "additionalProperties": { - "type": "integer" - }, - "description": "The credit that has been used by the account holder.\n\nEach key is a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.\n\nEach value is a integer amount. A positive amount indicates money owed to the account holder. A negative amount indicates money owed by the account holder.", - "nullable": true, - "type": "object" - } - }, - "title": "BankConnectionsResourceBalanceAPIResourceCreditBalance", - "type": "object", - "x-expandableFields": [] - }, - "bank_connections_resource_balance_refresh": { - "description": "", - "properties": { - "last_attempted_at": { - "description": "The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "next_refresh_available_at": { - "description": "Time at which the next balance refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "status": { - "description": "The status of the last refresh attempt.", - "enum": [ - "failed", - "pending", - "succeeded" - ], - "type": "string" - } - }, - "required": [ - "last_attempted_at", - "status" - ], - "title": "BankConnectionsResourceBalanceRefresh", - "type": "object", - "x-expandableFields": [] - }, - "bank_connections_resource_link_account_session_filters": { - "description": "", - "properties": { - "account_subcategories": { - "description": "Restricts the Session to subcategories of accounts that can be linked. Valid subcategories are: `checking`, `savings`, `mortgage`, `line_of_credit`, `credit_card`.", - "items": { - "enum": [ - "checking", - "credit_card", - "line_of_credit", - "mortgage", - "savings" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "countries": { - "description": "List of countries from which to filter accounts.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "title": "BankConnectionsResourceLinkAccountSessionFilters", - "type": "object", - "x-expandableFields": [] - }, - "bank_connections_resource_ownership_refresh": { - "description": "", - "properties": { - "last_attempted_at": { - "description": "The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "next_refresh_available_at": { - "description": "Time at which the next ownership refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "status": { - "description": "The status of the last refresh attempt.", - "enum": [ - "failed", - "pending", - "succeeded" - ], - "type": "string" - } - }, - "required": [ - "last_attempted_at", - "status" - ], - "title": "BankConnectionsResourceOwnershipRefresh", - "type": "object", - "x-expandableFields": [] - }, - "bank_connections_resource_transaction_refresh": { - "description": "", - "properties": { - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last_attempted_at": { - "description": "The time at which the last refresh attempt was initiated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "next_refresh_available_at": { - "description": "Time at which the next transaction refresh can be initiated. This value will be `null` when `status` is `pending`. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "status": { - "description": "The status of the last refresh attempt.", - "enum": [ - "failed", - "pending", - "succeeded" - ], - "type": "string" - } - }, - "required": [ - "id", - "last_attempted_at", - "status" - ], - "title": "BankConnectionsResourceTransactionRefresh", - "type": "object", - "x-expandableFields": [] - }, - "bank_connections_resource_transaction_resource_status_transitions": { - "description": "", - "properties": { - "posted_at": { - "description": "Time at which this transaction posted. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "void_at": { - "description": "Time at which this transaction was voided. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "BankConnectionsResourceTransactionResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "billing.meter": { - "description": "A billing meter is a resource that allows you to track usage of a particular event. For example, you might create a billing meter to track the number of API calls made by a particular user. You can then attach the billing meter to a price and attach the price to a subscription to charge the user for the number of API calls they make.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer_mapping": { - "$ref": "#/components/schemas/billing_meter_resource_customer_mapping_settings" - }, - "default_aggregation": { - "$ref": "#/components/schemas/billing_meter_resource_aggregation_settings" - }, - "display_name": { - "description": "The meter's name.", - "maxLength": 5000, - "type": "string" - }, - "event_name": { - "description": "The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events.", - "maxLength": 5000, - "type": "string" - }, - "event_time_window": { - "description": "The time window to pre-aggregate meter events for, if any.", - "enum": [ - "day", - "hour" - ], - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "billing.meter" - ], - "type": "string" - }, - "status": { - "description": "The meter's status.", - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/billing_meter_resource_billing_meter_status_transitions" - }, - "updated": { - "description": "Time at which the object was last updated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "value_settings": { - "$ref": "#/components/schemas/billing_meter_resource_billing_meter_value" - } - }, - "required": [ - "created", - "customer_mapping", - "default_aggregation", - "display_name", - "event_name", - "id", - "livemode", - "object", - "status", - "status_transitions", - "updated", - "value_settings" - ], - "title": "BillingMeter", - "type": "object", - "x-expandableFields": [ - "customer_mapping", - "default_aggregation", - "status_transitions", - "value_settings" - ], - "x-resourceId": "billing.meter" - }, - "billing.meter_event": { - "description": "A billing meter event represents a customer's usage of a product. Meter events are used to bill a customer based on their usage.\nMeter events are associated with billing meters, which define the shape of the event's payload and how those events are aggregated for billing.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "event_name": { - "description": "The name of the meter event. Corresponds with the `event_name` field on a meter.", - "maxLength": 100, - "type": "string" - }, - "identifier": { - "description": "A unique identifier for the event.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "billing.meter_event" - ], - "type": "string" - }, - "payload": { - "additionalProperties": { - "maxLength": 100, - "type": "string" - }, - "description": "The payload of the event. This contains the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://stripe.com/docs/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).", - "type": "object" - }, - "timestamp": { - "description": "The timestamp passed in when creating the event. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "created", - "event_name", - "identifier", - "livemode", - "object", - "payload", - "timestamp" - ], - "title": "BillingMeterEvent", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "billing.meter_event" - }, - "billing.meter_event_adjustment": { - "description": "A billing meter event adjustment is a resource that allows you to cancel a meter event. For example, you might create a billing meter event adjustment to cancel a meter event that was created in error or attached to the wrong customer.", - "properties": { - "cancel": { - "anyOf": [ - { - "$ref": "#/components/schemas/billing_meter_resource_billing_meter_event_adjustment_cancel" - } - ], - "description": "Specifies which event to cancel.", - "nullable": true - }, - "event_name": { - "description": "The name of the meter event. Corresponds with the `event_name` field on a meter.", - "maxLength": 100, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "billing.meter_event_adjustment" - ], - "type": "string" - }, - "status": { - "description": "The meter event adjustment's status.", - "enum": [ - "complete", - "pending" - ], - "type": "string" - }, - "type": { - "description": "Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet.", - "enum": [ - "cancel" - ], - "type": "string" - } - }, - "required": [ - "event_name", - "livemode", - "object", - "status", - "type" - ], - "title": "BillingMeterEventAdjustment", - "type": "object", - "x-expandableFields": [ - "cancel" - ], - "x-resourceId": "billing.meter_event_adjustment" - }, - "billing.meter_event_summary": { - "description": "A billing meter event summary represents an aggregated view of a customer's billing meter events within a specified timeframe. It indicates how much\nusage was accrued by a customer for that period.", - "properties": { - "aggregated_value": { - "description": "Aggregated value of all the events within `start_time` (inclusive) and `end_time` (inclusive). The aggregation strategy is defined on meter via `default_aggregation`.", - "type": "number" - }, - "end_time": { - "description": "End timestamp for this event summary (exclusive). Must be aligned with minute boundaries.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "meter": { - "description": "The meter associated with this event summary.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "billing.meter_event_summary" - ], - "type": "string" - }, - "start_time": { - "description": "Start timestamp for this event summary (inclusive). Must be aligned with minute boundaries.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "aggregated_value", - "end_time", - "id", - "livemode", - "meter", - "object", - "start_time" - ], - "title": "BillingMeterEventSummary", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "billing.meter_event_summary" - }, - "billing_details": { - "description": "", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Billing address.", - "nullable": true - }, - "email": { - "description": "Email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Full name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "phone": { - "description": "Billing phone number (including extension).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "billing_details", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "billing_meter_resource_aggregation_settings": { - "description": "", - "properties": { - "formula": { - "description": "Specifies how events are aggregated.", - "enum": [ - "count", - "sum" - ], - "type": "string" - } - }, - "required": [ - "formula" - ], - "title": "BillingMeterResourceAggregationSettings", - "type": "object", - "x-expandableFields": [] - }, - "billing_meter_resource_billing_meter_event_adjustment_cancel": { - "description": "", - "properties": { - "identifier": { - "description": "Unique identifier for the event.", - "maxLength": 100, - "nullable": true, - "type": "string" - } - }, - "title": "BillingMeterResourceBillingMeterEventAdjustmentCancel", - "type": "object", - "x-expandableFields": [] - }, - "billing_meter_resource_billing_meter_status_transitions": { - "description": "", - "properties": { - "deactivated_at": { - "description": "The time the meter was deactivated, if any. Measured in seconds since Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "BillingMeterResourceBillingMeterStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "billing_meter_resource_billing_meter_value": { - "description": "", - "properties": { - "event_payload_key": { - "description": "The key in the meter event payload to use as the value for this meter.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "event_payload_key" - ], - "title": "BillingMeterResourceBillingMeterValue", - "type": "object", - "x-expandableFields": [] - }, - "billing_meter_resource_customer_mapping_settings": { - "description": "", - "properties": { - "event_payload_key": { - "description": "The key in the meter event payload to use for mapping the event to a customer.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "The method for mapping a meter event to a customer.", - "enum": [ - "by_id" - ], - "type": "string" - } - }, - "required": [ - "event_payload_key", - "type" - ], - "title": "BillingMeterResourceCustomerMappingSettings", - "type": "object", - "x-expandableFields": [] - }, - "billing_portal.configuration": { - "description": "A portal configuration describes the functionality and behavior of a portal session.", - "properties": { - "active": { - "description": "Whether the configuration is active and can be used to create portal sessions.", - "type": "boolean" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ], - "description": "ID of the Connect Application that created the configuration.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ] - } - }, - "business_profile": { - "$ref": "#/components/schemas/portal_business_profile" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "default_return_url": { - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "features": { - "$ref": "#/components/schemas/portal_features" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "is_default": { - "description": "Whether the configuration is the default. If `true`, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session.", - "type": "boolean" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "login_page": { - "$ref": "#/components/schemas/portal_login_page" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "billing_portal.configuration" - ], - "type": "string" - }, - "updated": { - "description": "Time at which the object was last updated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "active", - "business_profile", - "created", - "features", - "id", - "is_default", - "livemode", - "login_page", - "object", - "updated" - ], - "title": "PortalConfiguration", - "type": "object", - "x-expandableFields": [ - "application", - "business_profile", - "features", - "login_page" - ], - "x-resourceId": "billing_portal.configuration" - }, - "billing_portal.session": { - "description": "The Billing customer portal is a Stripe-hosted UI for subscription and\nbilling management.\n\nA portal configuration describes the functionality and features that you\nwant to provide to your customers through the portal.\n\nA portal session describes the instantiation of the customer portal for\na particular customer. By visiting the session's URL, the customer\ncan manage their subscriptions and billing details. For security reasons,\nsessions are short-lived and will expire if the customer does not visit the URL.\nCreate sessions on-demand when customers intend to manage their subscriptions\nand billing details.\n\nRelated guide: [Customer management](/customer-management)", - "properties": { - "configuration": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/billing_portal.configuration" - } - ], - "description": "The configuration used by this session, describing the features available.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/billing_portal.configuration" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "description": "The ID of the customer for this session.", - "maxLength": 5000, - "type": "string" - }, - "flow": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_flow" - } - ], - "description": "Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "locale": { - "description": "The IETF language tag of the locale Customer Portal is displayed in. If blank or auto, the customer’s `preferred_locales` or browser’s locale is used.", - "enum": [ - "auto", - "bg", - "cs", - "da", - "de", - "el", - "en", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-NZ", - "en-SG", - "es", - "es-419", - "et", - "fi", - "fil", - "fr", - "fr-CA", - "hr", - "hu", - "id", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "mt", - "nb", - "nl", - "pl", - "pt", - "pt-BR", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "vi", - "zh", - "zh-HK", - "zh-TW" - ], - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "billing_portal.session" - ], - "type": "string" - }, - "on_behalf_of": { - "description": "The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "return_url": { - "description": "The URL to redirect customers to when they click on the portal's link to return to your website.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "The short-lived URL of the session that gives customers access to the customer portal.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "configuration", - "created", - "customer", - "id", - "livemode", - "object", - "url" - ], - "title": "PortalSession", - "type": "object", - "x-expandableFields": [ - "configuration", - "flow" - ], - "x-resourceId": "billing_portal.session" - }, - "cancellation_details": { - "description": "", - "properties": { - "comment": { - "description": "Additional comments about why the user canceled the subscription, if the subscription was canceled explicitly by the user.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "feedback": { - "description": "The customer submitted reason for why they canceled, if the subscription was canceled explicitly by the user.", - "enum": [ - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "nullable": true, - "type": "string" - }, - "reason": { - "description": "Why this subscription was canceled.", - "enum": [ - "cancellation_requested", - "payment_disputed", - "payment_failed" - ], - "nullable": true, - "type": "string" - } - }, - "title": "CancellationDetails", - "type": "object", - "x-expandableFields": [] - }, - "capability": { - "description": "This is an object representing a capability for a Stripe account.\n\nRelated guide: [Account capabilities](https://stripe.com/docs/connect/account-capabilities)", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account for which the capability enables functionality.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "future_requirements": { - "$ref": "#/components/schemas/account_capability_future_requirements" - }, - "id": { - "description": "The identifier for the capability.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "capability" - ], - "type": "string" - }, - "requested": { - "description": "Whether the capability has been requested.", - "type": "boolean" - }, - "requested_at": { - "description": "Time at which the capability was requested. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "requirements": { - "$ref": "#/components/schemas/account_capability_requirements" - }, - "status": { - "description": "The status of the capability. Can be `active`, `inactive`, `pending`, or `unrequested`.", - "enum": [ - "active", - "disabled", - "inactive", - "pending", - "unrequested" - ], - "type": "string" - } - }, - "required": [ - "account", - "id", - "object", - "requested", - "status" - ], - "title": "AccountCapability", - "type": "object", - "x-expandableFields": [ - "account", - "future_requirements", - "requirements" - ], - "x-resourceId": "capability" - }, - "card": { - "description": "You can store multiple cards on a customer in order to charge the customer\nlater. You can also store multiple debit cards on a recipient in order to\ntransfer to those cards later.\n\nRelated guide: [Card payments with Sources](https://stripe.com/docs/sources/cards)", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_line1_check": { - "description": "If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_zip_check": { - "description": "If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "available_payout_methods": { - "description": "A set of available payout methods for this card. Only values from this set should be passed as the `method` when creating a payout.", - "items": { - "enum": [ - "instant", - "standard" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "brand": { - "description": "Card brand. Can be `American Express`, `Diners Club`, `Discover`, `Eftpos Australia`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`.", - "maxLength": 5000, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO code for currency](https://stripe.com/docs/payouts). Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "nullable": true, - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "cvc_check": { - "description": "If a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https://support.stripe.com/questions/check-if-a-card-is-valid-without-a-charge).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "default_for_currency": { - "description": "Whether this card is the default external account for its currency. This property is only available for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "nullable": true, - "type": "boolean" - }, - "dynamic_last4": { - "description": "(For tokenized numbers only.) The last four digits of the device account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "networks": { - "$ref": "#/components/schemas/token_card_networks" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "card" - ], - "type": "string" - }, - "status": { - "description": "For external accounts that are cards, possible values are `new` and `errored`. If a payout fails, the status is set to `errored` and [scheduled payouts](https://stripe.com/docs/payouts#payout-schedule) are stopped until account details are updated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tokenization_method": { - "description": "If the card number is tokenized, this is the method that was used. Can be `android_pay` (includes Google Pay), `apple_pay`, `masterpass`, `visa_checkout`, or null.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "brand", - "exp_month", - "exp_year", - "funding", - "id", - "last4", - "object" - ], - "title": "Card", - "type": "object", - "x-expandableFields": [ - "account", - "customer", - "networks" - ], - "x-resourceId": "card" - }, - "card_generated_from_payment_method_details": { - "description": "", - "properties": { - "card_present": { - "$ref": "#/components/schemas/payment_method_details_card_present" - }, - "type": { - "description": "The type of payment method transaction-specific details from the transaction that generated this `card` payment method. Always `card_present`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "card_generated_from_payment_method_details", - "type": "object", - "x-expandableFields": [ - "card_present" - ] - }, - "card_issuing_account_terms_of_service": { - "description": "", - "properties": { - "date": { - "description": "The Unix timestamp marking when the account representative accepted the service agreement.", - "nullable": true, - "type": "integer" - }, - "ip": { - "description": "The IP address from which the account representative accepted the service agreement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The user agent of the browser from which the account representative accepted the service agreement.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "CardIssuingAccountTermsOfService", - "type": "object", - "x-expandableFields": [] - }, - "card_mandate_payment_method_details": { - "description": "", - "properties": {}, - "title": "card_mandate_payment_method_details", - "type": "object", - "x-expandableFields": [] - }, - "cash_balance": { - "description": "A customer's `Cash balance` represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account.", - "properties": { - "available": { - "additionalProperties": { - "type": "integer" - }, - "description": "A hash of all cash balances available to this customer. You cannot delete a customer with any cash balances, even if the balance is 0. Amounts are represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "nullable": true, - "type": "object" - }, - "customer": { - "description": "The ID of the customer whose cash balance this object represents.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "cash_balance" - ], - "type": "string" - }, - "settings": { - "$ref": "#/components/schemas/customer_balance_customer_balance_settings" - } - }, - "required": [ - "customer", - "livemode", - "object", - "settings" - ], - "title": "cash_balance", - "type": "object", - "x-expandableFields": [ - "settings" - ], - "x-resourceId": "cash_balance" - }, - "charge": { - "description": "The `Charge` object represents a single attempt to move money into your Stripe account.\nPaymentIntent confirmation is the most common way to create Charges, but transferring\nmoney to a different Stripe account through Connect also creates Charges.\nSome legacy payment flows create Charges directly, which is not recommended for new integrations.", - "properties": { - "amount": { - "description": "Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "amount_captured": { - "description": "Amount in cents (or local equivalent) captured (can be less than the amount attribute on the charge if a partial capture was made).", - "type": "integer" - }, - "amount_refunded": { - "description": "Amount in cents (or local equivalent) refunded (can be less than the amount attribute on the charge if a partial refund was issued).", - "type": "integer" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - } - ], - "description": "ID of the Connect application that created the charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - } - ] - } - }, - "application_fee": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application_fee" - } - ], - "description": "The application fee (if any) for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application_fee" - } - ] - } - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) requested for the charge. [See the Connect documentation](https://stripe.com/docs/connect/direct-charges#collect-fees) for details.", - "nullable": true, - "type": "integer" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "billing_details": { - "$ref": "#/components/schemas/billing_details" - }, - "calculated_statement_descriptor": { - "description": "The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined. This only works for card payments.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "captured": { - "description": "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "ID of the customer this charge is for if one exists.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 40000, - "nullable": true, - "type": "string" - }, - "disputed": { - "description": "Whether the charge has been disputed.", - "type": "boolean" - }, - "failure_balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "ID of the balance transaction that describes the reversal of the balance on your account due to payment failure.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "failure_code": { - "description": "Error code explaining reason for charge failure if available (see [the errors section](https://stripe.com/docs/error-codes) for a list of codes).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "failure_message": { - "description": "Message to user further explaining reason for charge failure if available.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fraud_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/charge_fraud_details" - } - ], - "description": "Information on fraud assessments for the charge.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "ID of the invoice this charge is for if one exists.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "charge" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "outcome": { - "anyOf": [ - { - "$ref": "#/components/schemas/charge_outcome" - } - ], - "description": "Details about whether the payment was accepted, and why. See [understanding declines](https://stripe.com/docs/declines) for details.", - "nullable": true - }, - "paid": { - "description": "`true` if the charge succeeded, or was successfully authorized for later capture.", - "type": "boolean" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "ID of the PaymentIntent associated with this charge, if one exists.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "payment_method": { - "description": "ID of the payment method used in this charge.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_method_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details" - } - ], - "description": "Details about the payment method at the time of the transaction.", - "nullable": true - }, - "radar_options": { - "$ref": "#/components/schemas/radar_radar_options" - }, - "receipt_email": { - "description": "This is the email address that the receipt for this charge was sent to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "receipt_number": { - "description": "This is the transaction number that appears on email receipts sent for this charge. This attribute will be `null` until a receipt has been sent.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "receipt_url": { - "description": "This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "refunded": { - "description": "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.", - "type": "boolean" - }, - "refunds": { - "description": "A list of refunds that have been applied to the charge.", - "nullable": true, - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RefundList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "review": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/review" - } - ], - "description": "ID of the review associated with this charge if one exists.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/review" - } - ] - } - }, - "shipping": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping" - } - ], - "description": "Shipping information for the charge.", - "nullable": true - }, - "source_transfer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/transfer" - } - ], - "description": "The transfer ID which created this charge. Only present if the charge came from another Stripe account. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/transfer" - } - ] - } - }, - "statement_descriptor": { - "description": "For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "The status of the payment is either `succeeded`, `pending`, or `failed`.", - "enum": [ - "failed", - "pending", - "succeeded" - ], - "type": "string" - }, - "transfer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/transfer" - } - ], - "description": "ID of the transfer to the `destination` account (only applicable if the charge was created using the `destination` parameter).", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/transfer" - } - ] - } - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/charge_transfer_data" - } - ], - "description": "An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.", - "nullable": true - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "amount_captured", - "amount_refunded", - "billing_details", - "captured", - "created", - "currency", - "disputed", - "id", - "livemode", - "metadata", - "object", - "paid", - "refunded", - "status" - ], - "title": "Charge", - "type": "object", - "x-expandableFields": [ - "application", - "application_fee", - "balance_transaction", - "billing_details", - "customer", - "failure_balance_transaction", - "fraud_details", - "invoice", - "on_behalf_of", - "outcome", - "payment_intent", - "payment_method_details", - "radar_options", - "refunds", - "review", - "shipping", - "source_transfer", - "transfer", - "transfer_data" - ], - "x-resourceId": "charge" - }, - "charge_fraud_details": { - "description": "", - "properties": { - "stripe_report": { - "description": "Assessments from Stripe. If set, the value is `fraudulent`.", - "maxLength": 5000, - "type": "string" - }, - "user_report": { - "description": "Assessments reported by you. If set, possible values of are `safe` and `fraudulent`.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "ChargeFraudDetails", - "type": "object", - "x-expandableFields": [] - }, - "charge_outcome": { - "description": "", - "properties": { - "network_status": { - "description": "Possible values are `approved_by_network`, `declined_by_network`, `not_sent_to_network`, and `reversed_after_approval`. The value `reversed_after_approval` indicates the payment was [blocked by Stripe](https://stripe.com/docs/declines#blocked-payments) after bank authorization, and may temporarily appear as \"pending\" on a cardholder's statement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reason": { - "description": "An enumerated value providing a more detailed explanation of the outcome's `type`. Charges blocked by Radar's default block rule have the value `highest_risk_level`. Charges placed in review by Radar's default review rule have the value `elevated_risk_level`. Charges authorized, blocked, or placed in review by custom rules have the value `rule`. See [understanding declines](https://stripe.com/docs/declines) for more details.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "risk_level": { - "description": "Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are `normal`, `elevated`, `highest`. For non-card payments, and card-based payments predating the public assignment of risk levels, this field will have the value `not_assessed`. In the event of an error in the evaluation, this field will have the value `unknown`. This field is only available with Radar.", - "maxLength": 5000, - "type": "string" - }, - "risk_score": { - "description": "Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are between 0 and 100. For non-card payments, card-based payments predating the public assignment of risk scores, or in the event of an error during evaluation, this field will not be present. This field is only available with Radar for Fraud Teams.", - "type": "integer" - }, - "rule": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/rule" - } - ], - "description": "The ID of the Radar rule that matched the payment, if applicable.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/rule" - } - ] - } - }, - "seller_message": { - "description": "A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "Possible values are `authorized`, `manual_review`, `issuer_declined`, `blocked`, and `invalid`. See [understanding declines](https://stripe.com/docs/declines) and [Radar reviews](https://stripe.com/docs/radar/reviews) for details.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "ChargeOutcome", - "type": "object", - "x-expandableFields": [ - "rule" - ] - }, - "charge_transfer_data": { - "description": "", - "properties": { - "amount": { - "description": "The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account.", - "nullable": true, - "type": "integer" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "ID of an existing, connected Stripe account to transfer funds to if `transfer_data` was specified in the charge request.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - } - }, - "required": [ - "destination" - ], - "title": "ChargeTransferData", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "checkout.session": { - "description": "A Checkout Session represents your customer's session as they pay for\none-time purchases or subscriptions through [Checkout](https://stripe.com/docs/payments/checkout)\nor [Payment Links](https://stripe.com/docs/payments/payment-links). We recommend creating a\nnew Session each time your customer attempts to pay.\n\nOnce payment is successful, the Checkout Session will contain a reference\nto the [Customer](https://stripe.com/docs/api/customers), and either the successful\n[PaymentIntent](https://stripe.com/docs/api/payment_intents) or an active\n[Subscription](https://stripe.com/docs/api/subscriptions).\n\nYou can create a Checkout Session on your server and redirect to its URL\nto begin Checkout.\n\nRelated guide: [Checkout quickstart](https://stripe.com/docs/checkout/quickstart)", - "properties": { - "after_expiration": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_after_expiration" - } - ], - "description": "When set, provides configuration for actions to take if this Checkout Session expires.", - "nullable": true - }, - "allow_promotion_codes": { - "description": "Enables user redeemable promotion codes.", - "nullable": true, - "type": "boolean" - }, - "amount_subtotal": { - "description": "Total of all items before discounts or taxes are applied.", - "nullable": true, - "type": "integer" - }, - "amount_total": { - "description": "Total of all items after discounts and taxes are applied.", - "nullable": true, - "type": "integer" - }, - "automatic_tax": { - "$ref": "#/components/schemas/payment_pages_checkout_session_automatic_tax" - }, - "billing_address_collection": { - "description": "Describes whether Checkout should collect the customer's billing address. Defaults to `auto`.", - "enum": [ - "auto", - "required" - ], - "nullable": true, - "type": "string" - }, - "cancel_url": { - "description": "If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "client_reference_id": { - "description": "A unique string to reference the Checkout Session. This can be a\ncustomer ID, a cart ID, or similar, and can be used to reconcile the\nSession with your internal systems.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "client_secret": { - "description": "Client secret to be used when initializing Stripe.js embedded checkout.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "consent": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_consent" - } - ], - "description": "Results of `consent_collection` for this session.", - "nullable": true - }, - "consent_collection": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_consent_collection" - } - ], - "description": "When set, provides configuration for the Checkout Session to gather active consent from customers.", - "nullable": true - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "nullable": true, - "type": "string" - }, - "currency_conversion": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_currency_conversion" - } - ], - "description": "Currency conversion details for [Adaptive Pricing](https://docs.stripe.com/payments/checkout/adaptive-pricing) sessions", - "nullable": true - }, - "custom_fields": { - "description": "Collect additional information from your customer using custom fields. Up to 3 fields are supported.", - "items": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_fields" - }, - "type": "array" - }, - "custom_text": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_text" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The ID of the customer for this Session.\nFor Checkout Sessions in `subscription` mode or Checkout Sessions with `customer_creation` set as `always` in `payment` mode, Checkout\nwill create a new customer object based on information provided\nduring the payment flow unless an existing customer was provided when\nthe Session was created.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "customer_creation": { - "description": "Configure whether a Checkout Session creates a Customer when the Checkout Session completes.", - "enum": [ - "always", - "if_required" - ], - "nullable": true, - "type": "string" - }, - "customer_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_customer_details" - } - ], - "description": "The customer details including the customer's tax exempt status and the customer's tax IDs. Customer's address details are not present on Sessions in `setup` mode.", - "nullable": true - }, - "customer_email": { - "description": "If provided, this value will be used when the Customer object is created.\nIf not provided, customers will be asked to enter their email address.\nUse this parameter to prefill customer data if you already have an email\non file. To access information about the customer once the payment flow is\ncomplete, use the `customer` attribute.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "expires_at": { - "description": "The timestamp at which the Checkout Session will expire.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "ID of the invoice created by the Checkout Session, if it exists.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "invoice_creation": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_invoice_creation" - } - ], - "description": "Details on the state of invoice creation for the Checkout Session.", - "nullable": true - }, - "line_items": { - "description": "The line items purchased by the customer.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentPagesCheckoutSessionListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "locale": { - "description": "The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used.", - "enum": [ - "auto", - "bg", - "cs", - "da", - "de", - "el", - "en", - "en-GB", - "es", - "es-419", - "et", - "fi", - "fil", - "fr", - "fr-CA", - "hr", - "hu", - "id", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "mt", - "nb", - "nl", - "pl", - "pt", - "pt-BR", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "vi", - "zh", - "zh-HK", - "zh-TW" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "mode": { - "description": "The mode of the Checkout Session.", - "enum": [ - "payment", - "setup", - "subscription" - ], - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "checkout.session" - ], - "type": "string" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "The ID of the PaymentIntent for Checkout Sessions in `payment` mode. You can't confirm or cancel the PaymentIntent for a Checkout Session. To cancel, [expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "payment_link": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_link" - } - ], - "description": "The ID of the Payment Link that created this Session.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_link" - } - ] - } - }, - "payment_method_collection": { - "description": "Configure whether a Checkout Session should collect a payment method. Defaults to `always`.", - "enum": [ - "always", - "if_required" - ], - "nullable": true, - "type": "string" - }, - "payment_method_configuration_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_config_biz_payment_method_configuration_details" - } - ], - "description": "Information about the payment method configuration used for this Checkout session if using dynamic payment methods.", - "nullable": true - }, - "payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/checkout_session_payment_method_options" - } - ], - "description": "Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession.", - "nullable": true - }, - "payment_method_types": { - "description": "A list of the types of payment methods (e.g. card) this Checkout\nSession is allowed to accept.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "payment_status": { - "description": "The payment status of the Checkout Session, one of `paid`, `unpaid`, or `no_payment_required`.\nYou can use this value to decide when to fulfill your customer's order.", - "enum": [ - "no_payment_required", - "paid", - "unpaid" - ], - "type": "string" - }, - "phone_number_collection": { - "$ref": "#/components/schemas/payment_pages_checkout_session_phone_number_collection" - }, - "recovered_from": { - "description": "The ID of the original expired Checkout Session that triggered the recovery flow.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "redirect_on_completion": { - "description": "This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-redirect-behavior) of embedded sessions. Defaults to `always`.", - "enum": [ - "always", - "if_required", - "never" - ], - "type": "string" - }, - "return_url": { - "description": "Applies to Checkout Sessions with `ui_mode: embedded`. The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site.", - "maxLength": 5000, - "type": "string" - }, - "saved_payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_saved_payment_method_options" - } - ], - "description": "Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode.", - "nullable": true - }, - "setup_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_intent" - } - ], - "description": "The ID of the SetupIntent for Checkout Sessions in `setup` mode. You can't confirm or cancel the SetupIntent for a Checkout Session. To cancel, [expire the Checkout Session](https://stripe.com/docs/api/checkout/sessions/expire) instead.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_intent" - } - ] - } - }, - "shipping_address_collection": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_shipping_address_collection" - } - ], - "description": "When set, provides configuration for Checkout to collect a shipping address from a customer.", - "nullable": true - }, - "shipping_cost": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_shipping_cost" - } - ], - "description": "The details of the customer cost of shipping, including the customer chosen ShippingRate.", - "nullable": true - }, - "shipping_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping" - } - ], - "description": "Shipping information for this Checkout Session.", - "nullable": true - }, - "shipping_options": { - "description": "The shipping rate options applied to this Session.", - "items": { - "$ref": "#/components/schemas/payment_pages_checkout_session_shipping_option" - }, - "type": "array" - }, - "status": { - "description": "The status of the Checkout Session, one of `open`, `complete`, or `expired`.", - "enum": [ - "complete", - "expired", - "open" - ], - "nullable": true, - "type": "string" - }, - "submit_type": { - "description": "Describes the type of transaction being performed by Checkout in order to customize\nrelevant text on the page, such as the submit button. `submit_type` can only be\nspecified on Checkout Sessions in `payment` mode. If blank or `auto`, `pay` is used.", - "enum": [ - "auto", - "book", - "donate", - "pay" - ], - "nullable": true, - "type": "string" - }, - "subscription": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription" - } - ], - "description": "The ID of the subscription for Checkout Sessions in `subscription` mode.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription" - } - ] - } - }, - "success_url": { - "description": "The URL the customer will be directed to after the payment or\nsubscription creation is successful.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_id_collection": { - "$ref": "#/components/schemas/payment_pages_checkout_session_tax_id_collection" - }, - "total_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_total_details" - } - ], - "description": "Tax and discount details for the computed total amount.", - "nullable": true - }, - "ui_mode": { - "description": "The UI mode of the Session. Defaults to `hosted`.", - "enum": [ - "embedded", - "hosted" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "url": { - "description": "The URL to the Checkout Session. Redirect customers to this URL to take them to Checkout. If you’re using [Custom Domains](https://stripe.com/docs/payments/checkout/custom-domains), the URL will use your subdomain. Otherwise, it’ll use `checkout.stripe.com.`\nThis value is only present when the session is active.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "automatic_tax", - "created", - "custom_fields", - "custom_text", - "expires_at", - "id", - "livemode", - "mode", - "object", - "payment_method_types", - "payment_status", - "shipping_options" - ], - "title": "Session", - "type": "object", - "x-expandableFields": [ - "after_expiration", - "automatic_tax", - "consent", - "consent_collection", - "currency_conversion", - "custom_fields", - "custom_text", - "customer", - "customer_details", - "invoice", - "invoice_creation", - "line_items", - "payment_intent", - "payment_link", - "payment_method_configuration_details", - "payment_method_options", - "phone_number_collection", - "saved_payment_method_options", - "setup_intent", - "shipping_address_collection", - "shipping_cost", - "shipping_details", - "shipping_options", - "subscription", - "tax_id_collection", - "total_details" - ], - "x-resourceId": "checkout.session" - }, - "checkout_acss_debit_mandate_options": { - "description": "", - "properties": { - "custom_mandate_url": { - "description": "A URL for custom mandate text", - "maxLength": 5000, - "type": "string" - }, - "default_for": { - "description": "List of Stripe products where this mandate can be selected automatically. Returned when the Session is in `setup` mode.", - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "description": "Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_schedule": { - "description": "Payment schedule for the mandate.", - "enum": [ - "combined", - "interval", - "sporadic" - ], - "nullable": true, - "type": "string" - }, - "transaction_type": { - "description": "Transaction type of the mandate.", - "enum": [ - "business", - "personal" - ], - "nullable": true, - "type": "string" - } - }, - "title": "CheckoutAcssDebitMandateOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_acss_debit_payment_method_options": { - "description": "", - "properties": { - "currency": { - "description": "Currency supported by the bank account. Returned when the Session is in `setup` mode.", - "enum": [ - "cad", - "usd" - ], - "type": "string" - }, - "mandate_options": { - "$ref": "#/components/schemas/checkout_acss_debit_mandate_options" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "CheckoutAcssDebitPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "checkout_affirm_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutAffirmPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_afterpay_clearpay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutAfterpayClearpayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_alipay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutAlipayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_amazon_pay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "CheckoutAmazonPayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_au_becs_debit_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutAuBecsDebitPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_bacs_debit_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "CheckoutBacsDebitPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_bancontact_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutBancontactPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_boleto_payment_method_options": { - "description": "", - "properties": { - "expires_after_days": { - "description": "The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time.", - "type": "integer" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "required": [ - "expires_after_days" - ], - "title": "CheckoutBoletoPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_card_installments_options": { - "description": "", - "properties": { - "enabled": { - "description": "Indicates if installments are enabled", - "type": "boolean" - } - }, - "title": "CheckoutCardInstallmentsOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_card_payment_method_options": { - "description": "", - "properties": { - "installments": { - "$ref": "#/components/schemas/checkout_card_installments_options" - }, - "request_three_d_secure": { - "description": "We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.", - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.", - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor_suffix_kanji": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "request_three_d_secure" - ], - "title": "CheckoutCardPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "installments" - ] - }, - "checkout_cashapp_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutCashappPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_customer_balance_bank_transfer_payment_method_options": { - "description": "", - "properties": { - "eu_bank_transfer": { - "$ref": "#/components/schemas/payment_method_options_customer_balance_eu_bank_account" - }, - "requested_address_types": { - "description": "List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.\n\nPermitted values include: `sort_code`, `zengin`, `iban`, or `spei`.", - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "description": "The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.", - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "CheckoutCustomerBalanceBankTransferPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "eu_bank_transfer" - ] - }, - "checkout_customer_balance_payment_method_options": { - "description": "", - "properties": { - "bank_transfer": { - "$ref": "#/components/schemas/checkout_customer_balance_bank_transfer_payment_method_options" - }, - "funding_type": { - "description": "The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`.", - "enum": [ - "bank_transfer" - ], - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutCustomerBalancePaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "bank_transfer" - ] - }, - "checkout_eps_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutEpsPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_fpx_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutFpxPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_giropay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutGiropayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_grab_pay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutGrabPayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_ideal_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutIdealPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_klarna_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "CheckoutKlarnaPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_konbini_payment_method_options": { - "description": "", - "properties": { - "expires_after_days": { - "description": "The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.", - "nullable": true, - "type": "integer" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutKonbiniPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_link_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "CheckoutLinkPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_mobilepay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutMobilepayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_multibanco_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutMultibancoPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_oxxo_payment_method_options": { - "description": "", - "properties": { - "expires_after_days": { - "description": "The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.", - "type": "integer" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "expires_after_days" - ], - "title": "CheckoutOxxoPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_p24_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutP24PaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_paynow_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutPaynowPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_paypal_payment_method_options": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "description": "Preferred locale of the PayPal checkout page that the customer is redirected to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference": { - "description": "A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "CheckoutPaypalPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_pix_payment_method_options": { - "description": "", - "properties": { - "expires_after_seconds": { - "description": "The number of seconds after which Pix payment will expire.", - "nullable": true, - "type": "integer" - } - }, - "title": "CheckoutPixPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_revolut_pay_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "CheckoutRevolutPayPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_sepa_debit_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "CheckoutSepaDebitPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_session_payment_method_options": { - "description": "", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/checkout_acss_debit_payment_method_options" - }, - "affirm": { - "$ref": "#/components/schemas/checkout_affirm_payment_method_options" - }, - "afterpay_clearpay": { - "$ref": "#/components/schemas/checkout_afterpay_clearpay_payment_method_options" - }, - "alipay": { - "$ref": "#/components/schemas/checkout_alipay_payment_method_options" - }, - "amazon_pay": { - "$ref": "#/components/schemas/checkout_amazon_pay_payment_method_options" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/checkout_au_becs_debit_payment_method_options" - }, - "bacs_debit": { - "$ref": "#/components/schemas/checkout_bacs_debit_payment_method_options" - }, - "bancontact": { - "$ref": "#/components/schemas/checkout_bancontact_payment_method_options" - }, - "boleto": { - "$ref": "#/components/schemas/checkout_boleto_payment_method_options" - }, - "card": { - "$ref": "#/components/schemas/checkout_card_payment_method_options" - }, - "cashapp": { - "$ref": "#/components/schemas/checkout_cashapp_payment_method_options" - }, - "customer_balance": { - "$ref": "#/components/schemas/checkout_customer_balance_payment_method_options" - }, - "eps": { - "$ref": "#/components/schemas/checkout_eps_payment_method_options" - }, - "fpx": { - "$ref": "#/components/schemas/checkout_fpx_payment_method_options" - }, - "giropay": { - "$ref": "#/components/schemas/checkout_giropay_payment_method_options" - }, - "grabpay": { - "$ref": "#/components/schemas/checkout_grab_pay_payment_method_options" - }, - "ideal": { - "$ref": "#/components/schemas/checkout_ideal_payment_method_options" - }, - "klarna": { - "$ref": "#/components/schemas/checkout_klarna_payment_method_options" - }, - "konbini": { - "$ref": "#/components/schemas/checkout_konbini_payment_method_options" - }, - "link": { - "$ref": "#/components/schemas/checkout_link_payment_method_options" - }, - "mobilepay": { - "$ref": "#/components/schemas/checkout_mobilepay_payment_method_options" - }, - "multibanco": { - "$ref": "#/components/schemas/checkout_multibanco_payment_method_options" - }, - "oxxo": { - "$ref": "#/components/schemas/checkout_oxxo_payment_method_options" - }, - "p24": { - "$ref": "#/components/schemas/checkout_p24_payment_method_options" - }, - "paynow": { - "$ref": "#/components/schemas/checkout_paynow_payment_method_options" - }, - "paypal": { - "$ref": "#/components/schemas/checkout_paypal_payment_method_options" - }, - "pix": { - "$ref": "#/components/schemas/checkout_pix_payment_method_options" - }, - "revolut_pay": { - "$ref": "#/components/schemas/checkout_revolut_pay_payment_method_options" - }, - "sepa_debit": { - "$ref": "#/components/schemas/checkout_sepa_debit_payment_method_options" - }, - "sofort": { - "$ref": "#/components/schemas/checkout_sofort_payment_method_options" - }, - "swish": { - "$ref": "#/components/schemas/checkout_swish_payment_method_options" - }, - "us_bank_account": { - "$ref": "#/components/schemas/checkout_us_bank_account_payment_method_options" - } - }, - "title": "CheckoutSessionPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account" - ] - }, - "checkout_sofort_payment_method_options": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "CheckoutSofortPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_swish_payment_method_options": { - "description": "", - "properties": { - "reference": { - "description": "The order reference that will be displayed to customers in the Swish application. Defaults to the `id` of the Payment Intent.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "CheckoutSwishPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "checkout_us_bank_account_payment_method_options": { - "description": "", - "properties": { - "financial_connections": { - "$ref": "#/components/schemas/linked_account_options_us_bank_account" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "CheckoutUsBankAccountPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "financial_connections" - ] - }, - "climate.order": { - "description": "Orders represent your intent to purchase a particular Climate product. When you create an order, the\npayment is deducted from your merchant balance.", - "properties": { - "amount_fees": { - "description": "Total amount of [Frontier](https://frontierclimate.com/)'s service fees in the currency's smallest unit.", - "type": "integer" - }, - "amount_subtotal": { - "description": "Total amount of the carbon removal in the currency's smallest unit.", - "type": "integer" - }, - "amount_total": { - "description": "Total amount of the order including fees in the currency's smallest unit.", - "type": "integer" - }, - "beneficiary": { - "$ref": "#/components/schemas/climate_removals_beneficiary" - }, - "canceled_at": { - "description": "Time at which the order was canceled. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "cancellation_reason": { - "description": "Reason for the cancellation of this order.", - "enum": [ - "expired", - "product_unavailable", - "requested" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "certificate": { - "description": "For delivered orders, a URL to a delivery certificate for the order.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "confirmed_at": { - "description": "Time at which the order was confirmed. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase, representing the currency for this order.", - "maxLength": 5000, - "type": "string" - }, - "delayed_at": { - "description": "Time at which the order's expected_delivery_year was delayed. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "delivered_at": { - "description": "Time at which the order was delivered. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "delivery_details": { - "description": "Details about the delivery of carbon removal for this order.", - "items": { - "$ref": "#/components/schemas/climate_removals_order_deliveries" - }, - "type": "array" - }, - "expected_delivery_year": { - "description": "The year this order is expected to be delivered.", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "metric_tons": { - "description": "Quantity of carbon removal that is included in this order.", - "format": "decimal", - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "climate.order" - ], - "type": "string" - }, - "product": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/climate.product" - } - ], - "description": "Unique ID for the Climate `Product` this order is purchasing.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/climate.product" - } - ] - } - }, - "product_substituted_at": { - "description": "Time at which the order's product was substituted for a different product. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "status": { - "description": "The current status of this order.", - "enum": [ - "awaiting_funds", - "canceled", - "confirmed", - "delivered", - "open" - ], - "type": "string" - } - }, - "required": [ - "amount_fees", - "amount_subtotal", - "amount_total", - "created", - "currency", - "delivery_details", - "expected_delivery_year", - "id", - "livemode", - "metadata", - "metric_tons", - "object", - "product", - "status" - ], - "title": "ClimateRemovalsOrders", - "type": "object", - "x-expandableFields": [ - "beneficiary", - "delivery_details", - "product" - ], - "x-resourceId": "climate.order" - }, - "climate.product": { - "description": "A Climate product represents a type of carbon removal unit available for reservation.\nYou can retrieve it to see the current price and availability.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "current_prices_per_metric_ton": { - "additionalProperties": { - "$ref": "#/components/schemas/climate_removals_products_price" - }, - "description": "Current prices for a metric ton of carbon removal in a currency's smallest unit.", - "type": "object" - }, - "delivery_year": { - "description": "The year in which the carbon removal is expected to be delivered.", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object. For convenience, Climate product IDs are human-readable strings\nthat start with `climsku_`. See [carbon removal inventory](https://stripe.com/docs/climate/orders/carbon-removal-inventory)\nfor a list of available carbon removal products.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metric_tons_available": { - "description": "The quantity of metric tons available for reservation.", - "format": "decimal", - "type": "string" - }, - "name": { - "description": "The Climate product's name.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "climate.product" - ], - "type": "string" - }, - "suppliers": { - "description": "The carbon removal suppliers that fulfill orders for this Climate product.", - "items": { - "$ref": "#/components/schemas/climate.supplier" - }, - "type": "array" - } - }, - "required": [ - "created", - "current_prices_per_metric_ton", - "id", - "livemode", - "metric_tons_available", - "name", - "object", - "suppliers" - ], - "title": "ClimateRemovalsProducts", - "type": "object", - "x-expandableFields": [ - "current_prices_per_metric_ton", - "suppliers" - ], - "x-resourceId": "climate.product" - }, - "climate.supplier": { - "description": "A supplier of carbon removal.", - "properties": { - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "info_url": { - "description": "Link to a webpage to learn more about the supplier.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "locations": { - "description": "The locations in which this supplier operates.", - "items": { - "$ref": "#/components/schemas/climate_removals_location" - }, - "type": "array" - }, - "name": { - "description": "Name of this carbon removal supplier.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object’s type. Objects of the same type share the same value.", - "enum": [ - "climate.supplier" - ], - "type": "string" - }, - "removal_pathway": { - "description": "The scientific pathway used for carbon removal.", - "enum": [ - "biomass_carbon_removal_and_storage", - "direct_air_capture", - "enhanced_weathering" - ], - "type": "string" - } - }, - "required": [ - "id", - "info_url", - "livemode", - "locations", - "name", - "object", - "removal_pathway" - ], - "title": "ClimateRemovalsSuppliers", - "type": "object", - "x-expandableFields": [ - "locations" - ], - "x-resourceId": "climate.supplier" - }, - "climate_removals_beneficiary": { - "description": "", - "properties": { - "public_name": { - "description": "Publicly displayable name for the end beneficiary of carbon removal.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "public_name" - ], - "title": "ClimateRemovalsBeneficiary", - "type": "object", - "x-expandableFields": [] - }, - "climate_removals_location": { - "description": "", - "properties": { - "city": { - "description": "The city where the supplier is located.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country where the supplier is located.", - "maxLength": 5000, - "type": "string" - }, - "latitude": { - "description": "The geographic latitude where the supplier is located.", - "nullable": true, - "type": "number" - }, - "longitude": { - "description": "The geographic longitude where the supplier is located.", - "nullable": true, - "type": "number" - }, - "region": { - "description": "The state/county/province/region where the supplier is located.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "ClimateRemovalsLocation", - "type": "object", - "x-expandableFields": [] - }, - "climate_removals_order_deliveries": { - "description": "The delivery of a specified quantity of carbon for an order.", - "properties": { - "delivered_at": { - "description": "Time at which the delivery occurred. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "location": { - "anyOf": [ - { - "$ref": "#/components/schemas/climate_removals_location" - } - ], - "description": "Specific location of this delivery.", - "nullable": true - }, - "metric_tons": { - "description": "Quantity of carbon removal supplied by this delivery.", - "maxLength": 5000, - "type": "string" - }, - "registry_url": { - "description": "Once retired, a URL to the registry entry for the tons from this delivery.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "supplier": { - "$ref": "#/components/schemas/climate.supplier" - } - }, - "required": [ - "delivered_at", - "metric_tons", - "supplier" - ], - "title": "ClimateRemovalsOrderDeliveries", - "type": "object", - "x-expandableFields": [ - "location", - "supplier" - ] - }, - "climate_removals_products_price": { - "description": "", - "properties": { - "amount_fees": { - "description": "Fees for one metric ton of carbon removal in the currency's smallest unit.", - "type": "integer" - }, - "amount_subtotal": { - "description": "Subtotal for one metric ton of carbon removal (excluding fees) in the currency's smallest unit.", - "type": "integer" - }, - "amount_total": { - "description": "Total for one metric ton of carbon removal (including fees) in the currency's smallest unit.", - "type": "integer" - } - }, - "required": [ - "amount_fees", - "amount_subtotal", - "amount_total" - ], - "title": "ClimateRemovalsProductsPrice", - "type": "object", - "x-expandableFields": [] - }, - "confirmation_token": { - "description": "ConfirmationTokens help transport client side data collected by Stripe JS over\nto your server for confirming a PaymentIntent or SetupIntent. If the confirmation\nis successful, values present on the ConfirmationToken are written onto the Intent.\n\nTo learn more about how to use ConfirmationToken, visit the related guides:\n- [Finalize payments on the server](https://stripe.com/docs/payments/finalize-payments-on-the-server)\n- [Build two-step confirmation](https://stripe.com/docs/payments/build-a-two-step-confirmation).", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "expires_at": { - "description": "Time at which this ConfirmationToken expires and can no longer be used to confirm a PaymentIntent or SetupIntent.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "mandate_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/confirmation_tokens_resource_mandate_data" - } - ], - "description": "Data used for generating a Mandate.", - "nullable": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "confirmation_token" - ], - "type": "string" - }, - "payment_intent": { - "description": "ID of the PaymentIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/confirmation_tokens_resource_payment_method_options" - } - ], - "description": "Payment-method-specific configuration for this ConfirmationToken.", - "nullable": true - }, - "payment_method_preview": { - "anyOf": [ - { - "$ref": "#/components/schemas/confirmation_tokens_resource_payment_method_preview" - } - ], - "description": "Payment details collected by the Payment Element, used to create a PaymentMethod when a PaymentIntent or SetupIntent is confirmed with this ConfirmationToken.", - "nullable": true - }, - "return_url": { - "description": "Return URL used to confirm the Intent.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this ConfirmationToken's payment method.\n\nThe presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.", - "enum": [ - "off_session", - "on_session" - ], - "nullable": true, - "type": "string" - }, - "setup_intent": { - "description": "ID of the SetupIntent that this ConfirmationToken was used to confirm, or null if this ConfirmationToken has not yet been used.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping": { - "anyOf": [ - { - "$ref": "#/components/schemas/confirmation_tokens_resource_shipping" - } - ], - "description": "Shipping information collected on this ConfirmationToken.", - "nullable": true - }, - "use_stripe_sdk": { - "description": "Indicates whether the Stripe SDK is used to handle confirmation flow. Defaults to `true` on ConfirmationToken.", - "type": "boolean" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "use_stripe_sdk" - ], - "title": "ConfirmationTokensResourceConfirmationToken", - "type": "object", - "x-expandableFields": [ - "mandate_data", - "payment_method_options", - "payment_method_preview", - "shipping" - ], - "x-resourceId": "confirmation_token" - }, - "confirmation_tokens_resource_mandate_data": { - "description": "Data used for generating a Mandate.", - "properties": { - "customer_acceptance": { - "$ref": "#/components/schemas/confirmation_tokens_resource_mandate_data_resource_customer_acceptance" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "ConfirmationTokensResourceMandateData", - "type": "object", - "x-expandableFields": [ - "customer_acceptance" - ] - }, - "confirmation_tokens_resource_mandate_data_resource_customer_acceptance": { - "description": "This hash contains details about the customer acceptance of the Mandate.", - "properties": { - "online": { - "anyOf": [ - { - "$ref": "#/components/schemas/confirmation_tokens_resource_mandate_data_resource_customer_acceptance_resource_online" - } - ], - "description": "If this is a Mandate accepted online, this hash contains details about the online acceptance.", - "nullable": true - }, - "type": { - "description": "The type of customer acceptance information included with the Mandate.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "ConfirmationTokensResourceMandateDataResourceCustomerAcceptance", - "type": "object", - "x-expandableFields": [ - "online" - ] - }, - "confirmation_tokens_resource_mandate_data_resource_customer_acceptance_resource_online": { - "description": "This hash contains details about the online acceptance.", - "properties": { - "ip_address": { - "description": "The IP address from which the Mandate was accepted by the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The user agent of the browser from which the Mandate was accepted by the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "ConfirmationTokensResourceMandateDataResourceCustomerAcceptanceResourceOnline", - "type": "object", - "x-expandableFields": [] - }, - "confirmation_tokens_resource_payment_method_options": { - "description": "Payment-method-specific configuration", - "properties": { - "card": { - "anyOf": [ - { - "$ref": "#/components/schemas/confirmation_tokens_resource_payment_method_options_resource_card" - } - ], - "description": "This hash contains the card payment method options.", - "nullable": true - } - }, - "title": "ConfirmationTokensResourcePaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "card" - ] - }, - "confirmation_tokens_resource_payment_method_options_resource_card": { - "description": "This hash contains the card payment method options.", - "properties": { - "cvc_token": { - "description": "The `cvc_update` Token collected from the Payment Element.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "ConfirmationTokensResourcePaymentMethodOptionsResourceCard", - "type": "object", - "x-expandableFields": [] - }, - "confirmation_tokens_resource_payment_method_preview": { - "description": "Details of the PaymentMethod collected by Payment Element", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/payment_method_acss_debit" - }, - "affirm": { - "$ref": "#/components/schemas/payment_method_affirm" - }, - "afterpay_clearpay": { - "$ref": "#/components/schemas/payment_method_afterpay_clearpay" - }, - "alipay": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_alipay" - }, - "allow_redisplay": { - "description": "This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”.", - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "$ref": "#/components/schemas/payment_method_amazon_pay" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/payment_method_au_becs_debit" - }, - "bacs_debit": { - "$ref": "#/components/schemas/payment_method_bacs_debit" - }, - "bancontact": { - "$ref": "#/components/schemas/payment_method_bancontact" - }, - "billing_details": { - "$ref": "#/components/schemas/billing_details" - }, - "blik": { - "$ref": "#/components/schemas/payment_method_blik" - }, - "boleto": { - "$ref": "#/components/schemas/payment_method_boleto" - }, - "card": { - "$ref": "#/components/schemas/payment_method_card" - }, - "card_present": { - "$ref": "#/components/schemas/payment_method_card_present" - }, - "cashapp": { - "$ref": "#/components/schemas/payment_method_cashapp" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "customer_balance": { - "$ref": "#/components/schemas/payment_method_customer_balance" - }, - "eps": { - "$ref": "#/components/schemas/payment_method_eps" - }, - "fpx": { - "$ref": "#/components/schemas/payment_method_fpx" - }, - "giropay": { - "$ref": "#/components/schemas/payment_method_giropay" - }, - "grabpay": { - "$ref": "#/components/schemas/payment_method_grabpay" - }, - "ideal": { - "$ref": "#/components/schemas/payment_method_ideal" - }, - "interac_present": { - "$ref": "#/components/schemas/payment_method_interac_present" - }, - "klarna": { - "$ref": "#/components/schemas/payment_method_klarna" - }, - "konbini": { - "$ref": "#/components/schemas/payment_method_konbini" - }, - "link": { - "$ref": "#/components/schemas/payment_method_link" - }, - "mobilepay": { - "$ref": "#/components/schemas/payment_method_mobilepay" - }, - "multibanco": { - "$ref": "#/components/schemas/payment_method_multibanco" - }, - "oxxo": { - "$ref": "#/components/schemas/payment_method_oxxo" - }, - "p24": { - "$ref": "#/components/schemas/payment_method_p24" - }, - "paynow": { - "$ref": "#/components/schemas/payment_method_paynow" - }, - "paypal": { - "$ref": "#/components/schemas/payment_method_paypal" - }, - "pix": { - "$ref": "#/components/schemas/payment_method_pix" - }, - "promptpay": { - "$ref": "#/components/schemas/payment_method_promptpay" - }, - "revolut_pay": { - "$ref": "#/components/schemas/payment_method_revolut_pay" - }, - "sepa_debit": { - "$ref": "#/components/schemas/payment_method_sepa_debit" - }, - "sofort": { - "$ref": "#/components/schemas/payment_method_sofort" - }, - "swish": { - "$ref": "#/components/schemas/payment_method_swish" - }, - "twint": { - "$ref": "#/components/schemas/payment_method_twint" - }, - "type": { - "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "card_present", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "interac_present", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "$ref": "#/components/schemas/payment_method_us_bank_account" - }, - "wechat_pay": { - "$ref": "#/components/schemas/payment_method_wechat_pay" - }, - "zip": { - "$ref": "#/components/schemas/payment_method_zip" - } - }, - "required": [ - "billing_details", - "type" - ], - "title": "ConfirmationTokensResourcePaymentMethodPreview", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "billing_details", - "blik", - "boleto", - "card", - "card_present", - "cashapp", - "customer", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "interac_present", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ] - }, - "confirmation_tokens_resource_shipping": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "name": { - "description": "Recipient name.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "Recipient phone (including extension).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "ConfirmationTokensResourceShipping", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "connect_account_reference": { - "description": "", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The connected account being referenced when `type` is `account`.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "type": { - "description": "Type of the account referenced.", - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "ConnectAccountReference", - "type": "object", - "x-expandableFields": [ - "account" - ] - }, - "connect_collection_transfer": { - "description": "", - "properties": { - "amount": { - "description": "Amount transferred, in cents (or local equivalent).", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "ID of the account that funds are being collected for.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "connect_collection_transfer" - ], - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "destination", - "id", - "livemode", - "object" - ], - "title": "ConnectCollectionTransfer", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "connect_embedded_account_config_claim": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the embedded component is enabled.", - "type": "boolean" - }, - "features": { - "$ref": "#/components/schemas/connect_embedded_account_features_claim" - } - }, - "required": [ - "enabled", - "features" - ], - "title": "ConnectEmbeddedAccountConfigClaim", - "type": "object", - "x-expandableFields": [ - "features" - ] - }, - "connect_embedded_account_features_claim": { - "description": "", - "properties": { - "external_account_collection": { - "description": "Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for custom accounts (or accounts where the platform is compliance owner). Otherwise, bank account collection is determined by compliance requirements.", - "type": "boolean" - } - }, - "required": [ - "external_account_collection" - ], - "title": "ConnectEmbeddedAccountFeaturesClaim", - "type": "object", - "x-expandableFields": [] - }, - "connect_embedded_account_session_create_components": { - "description": "", - "properties": { - "account_management": { - "$ref": "#/components/schemas/connect_embedded_account_config_claim" - }, - "account_onboarding": { - "$ref": "#/components/schemas/connect_embedded_account_config_claim" - }, - "balances": { - "$ref": "#/components/schemas/connect_embedded_payouts_config_claim" - }, - "documents": { - "$ref": "#/components/schemas/connect_embedded_base_config_claim" - }, - "notification_banner": { - "$ref": "#/components/schemas/connect_embedded_account_config_claim" - }, - "payment_details": { - "$ref": "#/components/schemas/connect_embedded_payments_config_claim" - }, - "payments": { - "$ref": "#/components/schemas/connect_embedded_payments_config_claim" - }, - "payouts": { - "$ref": "#/components/schemas/connect_embedded_payouts_config_claim" - }, - "payouts_list": { - "$ref": "#/components/schemas/connect_embedded_base_config_claim" - }, - "tax_registrations": { - "$ref": "#/components/schemas/connect_embedded_base_config_claim" - }, - "tax_settings": { - "$ref": "#/components/schemas/connect_embedded_base_config_claim" - } - }, - "required": [ - "account_management", - "account_onboarding", - "balances", - "documents", - "notification_banner", - "payment_details", - "payments", - "payouts", - "payouts_list", - "tax_registrations", - "tax_settings" - ], - "title": "ConnectEmbeddedAccountSessionCreateComponents", - "type": "object", - "x-expandableFields": [ - "account_management", - "account_onboarding", - "balances", - "documents", - "notification_banner", - "payment_details", - "payments", - "payouts", - "payouts_list", - "tax_registrations", - "tax_settings" - ] - }, - "connect_embedded_base_config_claim": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the embedded component is enabled.", - "type": "boolean" - }, - "features": { - "$ref": "#/components/schemas/connect_embedded_base_features" - } - }, - "required": [ - "enabled", - "features" - ], - "title": "ConnectEmbeddedBaseConfigClaim", - "type": "object", - "x-expandableFields": [ - "features" - ] - }, - "connect_embedded_base_features": { - "description": "", - "properties": {}, - "title": "ConnectEmbeddedBaseFeatures", - "type": "object", - "x-expandableFields": [] - }, - "connect_embedded_payments_config_claim": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the embedded component is enabled.", - "type": "boolean" - }, - "features": { - "$ref": "#/components/schemas/connect_embedded_payments_features" - } - }, - "required": [ - "enabled", - "features" - ], - "title": "ConnectEmbeddedPaymentsConfigClaim", - "type": "object", - "x-expandableFields": [ - "features" - ] - }, - "connect_embedded_payments_features": { - "description": "", - "properties": { - "capture_payments": { - "description": "Whether to allow capturing and cancelling payment intents. This is `true` by default.", - "type": "boolean" - }, - "destination_on_behalf_of_charge_management": { - "description": "Whether to allow connected accounts to manage destination charges that are created on behalf of them. This is `false` by default.", - "type": "boolean" - }, - "dispute_management": { - "description": "Whether to allow responding to disputes, including submitting evidence and accepting disputes. This is `true` by default.", - "type": "boolean" - }, - "refund_management": { - "description": "Whether to allow sending refunds. This is `true` by default.", - "type": "boolean" - } - }, - "required": [ - "capture_payments", - "destination_on_behalf_of_charge_management", - "dispute_management", - "refund_management" - ], - "title": "ConnectEmbeddedPaymentsFeatures", - "type": "object", - "x-expandableFields": [] - }, - "connect_embedded_payouts_config_claim": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the embedded component is enabled.", - "type": "boolean" - }, - "features": { - "$ref": "#/components/schemas/connect_embedded_payouts_features" - } - }, - "required": [ - "enabled", - "features" - ], - "title": "ConnectEmbeddedPayoutsConfigClaim", - "type": "object", - "x-expandableFields": [ - "features" - ] - }, - "connect_embedded_payouts_features": { - "description": "", - "properties": { - "edit_payout_schedule": { - "description": "Whether to allow payout schedule to be changed. Default `true` when Stripe owns Loss Liability, default `false` otherwise.", - "type": "boolean" - }, - "external_account_collection": { - "description": "Whether to allow platforms to control bank account collection for their connected accounts. This feature can only be false for custom accounts (or accounts where the platform is compliance owner). Otherwise, bank account collection is determined by compliance requirements.", - "type": "boolean" - }, - "instant_payouts": { - "description": "Whether to allow creation of instant payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.", - "type": "boolean" - }, - "standard_payouts": { - "description": "Whether to allow creation of standard payouts. Default `true` when Stripe owns Loss Liability, default `false` otherwise.", - "type": "boolean" - } - }, - "required": [ - "edit_payout_schedule", - "external_account_collection", - "instant_payouts", - "standard_payouts" - ], - "title": "ConnectEmbeddedPayoutsFeatures", - "type": "object", - "x-expandableFields": [] - }, - "country_spec": { - "description": "Stripe needs to collect certain pieces of information about each account\ncreated. These requirements can differ depending on the account's country. The\nCountry Specs API makes these rules available to your integration.\n\nYou can also view the information from this API call as [an online\nguide](/docs/connect/required-verification-information).", - "properties": { - "default_currency": { - "description": "The default currency for this country. This applies to both payment methods and bank accounts.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object. Represented as the ISO country code for this country.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "country_spec" - ], - "type": "string" - }, - "supported_bank_account_currencies": { - "additionalProperties": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "description": "Currencies that can be accepted in the specific country (for transfers).", - "type": "object" - }, - "supported_payment_currencies": { - "description": "Currencies that can be accepted in the specified country (for payments).", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "supported_payment_methods": { - "description": "Payment methods available in the specified country. You may need to enable some payment methods (e.g., [ACH](https://stripe.com/docs/ach)) on your account before they appear in this list. The `stripe` payment method refers to [charging through your platform](https://stripe.com/docs/connect/destination-charges).", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "supported_transfer_countries": { - "description": "Countries that can accept transfers from the specified country.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "verification_fields": { - "$ref": "#/components/schemas/country_spec_verification_fields" - } - }, - "required": [ - "default_currency", - "id", - "object", - "supported_bank_account_currencies", - "supported_payment_currencies", - "supported_payment_methods", - "supported_transfer_countries", - "verification_fields" - ], - "title": "CountrySpec", - "type": "object", - "x-expandableFields": [ - "verification_fields" - ], - "x-resourceId": "country_spec" - }, - "country_spec_verification_field_details": { - "description": "", - "properties": { - "additional": { - "description": "Additional fields which are only required for some users.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "minimum": { - "description": "Fields which every account must eventually provide.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "additional", - "minimum" - ], - "title": "CountrySpecVerificationFieldDetails", - "type": "object", - "x-expandableFields": [] - }, - "country_spec_verification_fields": { - "description": "", - "properties": { - "company": { - "$ref": "#/components/schemas/country_spec_verification_field_details" - }, - "individual": { - "$ref": "#/components/schemas/country_spec_verification_field_details" - } - }, - "required": [ - "company", - "individual" - ], - "title": "CountrySpecVerificationFields", - "type": "object", - "x-expandableFields": [ - "company", - "individual" - ] - }, - "coupon": { - "description": "A coupon contains information about a percent-off or amount-off discount you\nmight want to apply to a customer. Coupons may be applied to [subscriptions](https://stripe.com/docs/api#subscriptions), [invoices](https://stripe.com/docs/api#invoices),\n[checkout sessions](https://stripe.com/docs/api/checkout/sessions), [quotes](https://stripe.com/docs/api#quotes), and more. Coupons do not work with conventional one-off [charges](https://stripe.com/docs/api#create_charge) or [payment intents](https://stripe.com/docs/api/payment_intents).", - "properties": { - "amount_off": { - "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.", - "nullable": true, - "type": "integer" - }, - "applies_to": { - "$ref": "#/components/schemas/coupon_applies_to" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "If `amount_off` has been set, the three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the amount to take off.", - "nullable": true, - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "$ref": "#/components/schemas/coupon_currency_option" - }, - "description": "Coupons defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "duration": { - "description": "One of `forever`, `once`, and `repeating`. Describes how long a customer who applies this coupon will get the discount.", - "enum": [ - "forever", - "once", - "repeating" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "duration_in_months": { - "description": "If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "max_redemptions": { - "description": "Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.", - "nullable": true, - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "name": { - "description": "Name of the coupon displayed to customers on for instance invoices or receipts.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "coupon" - ], - "type": "string" - }, - "percent_off": { - "description": "Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a $ (or local equivalent)100 invoice $ (or local equivalent)50 instead.", - "nullable": true, - "type": "number" - }, - "redeem_by": { - "description": "Date after which the coupon can no longer be redeemed.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "times_redeemed": { - "description": "Number of times this coupon has been applied to a customer.", - "type": "integer" - }, - "valid": { - "description": "Taking account of the above properties, whether this coupon can still be applied to a customer.", - "type": "boolean" - } - }, - "required": [ - "created", - "duration", - "id", - "livemode", - "object", - "times_redeemed", - "valid" - ], - "title": "Coupon", - "type": "object", - "x-expandableFields": [ - "applies_to", - "currency_options" - ], - "x-resourceId": "coupon" - }, - "coupon_applies_to": { - "description": "", - "properties": { - "products": { - "description": "A list of product IDs this coupon applies to", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "products" - ], - "title": "CouponAppliesTo", - "type": "object", - "x-expandableFields": [] - }, - "coupon_currency_option": { - "description": "", - "properties": { - "amount_off": { - "description": "Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.", - "type": "integer" - } - }, - "required": [ - "amount_off" - ], - "title": "CouponCurrencyOption", - "type": "object", - "x-expandableFields": [] - }, - "credit_note": { - "description": "Issue a credit note to adjust an invoice's amount after the invoice is finalized.\n\nRelated guide: [Credit notes](https://stripe.com/docs/billing/invoices/credit-notes)", - "properties": { - "amount": { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax.", - "type": "integer" - }, - "amount_shipping": { - "description": "This is the sum of all the shipping amounts.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "ID of the customer.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "customer_balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer_balance_transaction" - } - ], - "description": "Customer balance transaction related to this credit note.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer_balance_transaction" - } - ] - } - }, - "discount_amount": { - "description": "The integer amount in cents (or local equivalent) representing the total amount of discount that was credited.", - "type": "integer" - }, - "discount_amounts": { - "description": "The aggregate amounts calculated per discount for all line items.", - "items": { - "$ref": "#/components/schemas/discounts_resource_discount_amount" - }, - "type": "array" - }, - "effective_at": { - "description": "The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "ID of the invoice.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "lines": { - "description": "Line items that make up the credit note", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/credit_note_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CreditNoteLinesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "memo": { - "description": "Customer-facing text that appears on the credit note PDF.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "number": { - "description": "A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "credit_note" - ], - "type": "string" - }, - "out_of_band_amount": { - "description": "Amount that was credited outside of Stripe.", - "nullable": true, - "type": "integer" - }, - "pdf": { - "description": "The link to download the PDF of the credit note.", - "maxLength": 5000, - "type": "string" - }, - "reason": { - "description": "Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`", - "enum": [ - "duplicate", - "fraudulent", - "order_change", - "product_unsatisfactory" - ], - "nullable": true, - "type": "string" - }, - "refund": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/refund" - } - ], - "description": "Refund related to this credit note.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/refund" - } - ] - } - }, - "shipping_cost": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_resource_shipping_cost" - } - ], - "description": "The details of the cost of shipping, including the ShippingRate applied to the invoice.", - "nullable": true - }, - "status": { - "description": "Status of this credit note, one of `issued` or `void`. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding).", - "enum": [ - "issued", - "void" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "subtotal": { - "description": "The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding exclusive tax and invoice level discounts.", - "type": "integer" - }, - "subtotal_excluding_tax": { - "description": "The integer amount in cents (or local equivalent) representing the amount of the credit note, excluding all tax and invoice level discounts.", - "nullable": true, - "type": "integer" - }, - "tax_amounts": { - "description": "The aggregate amounts calculated per tax rate for all line items.", - "items": { - "$ref": "#/components/schemas/credit_note_tax_amount" - }, - "type": "array" - }, - "total": { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the credit note, including tax and all discount.", - "type": "integer" - }, - "total_excluding_tax": { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the credit note, excluding tax, but including discounts.", - "nullable": true, - "type": "integer" - }, - "type": { - "description": "Type of this credit note, one of `pre_payment` or `post_payment`. A `pre_payment` credit note means it was issued when the invoice was open. A `post_payment` credit note means it was issued when the invoice was paid.", - "enum": [ - "post_payment", - "pre_payment" - ], - "type": "string" - }, - "voided_at": { - "description": "The time that the credit note was voided.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount", - "amount_shipping", - "created", - "currency", - "customer", - "discount_amount", - "discount_amounts", - "id", - "invoice", - "lines", - "livemode", - "number", - "object", - "pdf", - "status", - "subtotal", - "tax_amounts", - "total", - "type" - ], - "title": "CreditNote", - "type": "object", - "x-expandableFields": [ - "customer", - "customer_balance_transaction", - "discount_amounts", - "invoice", - "lines", - "refund", - "shipping_cost", - "tax_amounts" - ], - "x-resourceId": "credit_note" - }, - "credit_note_line_item": { - "description": "The credit note line item object", - "properties": { - "amount": { - "description": "The integer amount in cents (or local equivalent) representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.", - "type": "integer" - }, - "amount_excluding_tax": { - "description": "The integer amount in cents (or local equivalent) representing the amount being credited for this line item, excluding all tax and discounts.", - "nullable": true, - "type": "integer" - }, - "description": { - "description": "Description of the item being credited.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discount_amount": { - "description": "The integer amount in cents (or local equivalent) representing the discount being credited for this line item.", - "type": "integer" - }, - "discount_amounts": { - "description": "The amount of discount calculated per discount for this line item", - "items": { - "$ref": "#/components/schemas/discounts_resource_discount_amount" - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice_line_item": { - "description": "ID of the invoice line item being credited", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "credit_note_line_item" - ], - "type": "string" - }, - "quantity": { - "description": "The number of units of product being credited.", - "nullable": true, - "type": "integer" - }, - "tax_amounts": { - "description": "The amount of tax calculated per tax rate for this line item", - "items": { - "$ref": "#/components/schemas/credit_note_tax_amount" - }, - "type": "array" - }, - "tax_rates": { - "description": "The tax rates which apply to the line item.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "type": "array" - }, - "type": { - "description": "The type of the credit note line item, one of `invoice_line_item` or `custom_line_item`. When the type is `invoice_line_item` there is an additional `invoice_line_item` property on the resource the value of which is the id of the credited line item on the invoice.", - "enum": [ - "custom_line_item", - "invoice_line_item" - ], - "type": "string" - }, - "unit_amount": { - "description": "The cost of each unit of product being credited.", - "nullable": true, - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "unit_amount_excluding_tax": { - "description": "The amount in cents (or local equivalent) representing the unit amount being credited for this line item, excluding all tax and discounts.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "discount_amount", - "discount_amounts", - "id", - "livemode", - "object", - "tax_amounts", - "tax_rates", - "type" - ], - "title": "CreditNoteLineItem", - "type": "object", - "x-expandableFields": [ - "discount_amounts", - "tax_amounts", - "tax_rates" - ], - "x-resourceId": "credit_note_line_item" - }, - "credit_note_tax_amount": { - "description": "", - "properties": { - "amount": { - "description": "The amount, in cents (or local equivalent), of the tax.", - "type": "integer" - }, - "inclusive": { - "description": "Whether this tax amount is inclusive or exclusive.", - "type": "boolean" - }, - "tax_rate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_rate" - } - ], - "description": "The tax rate that was applied to get this tax amount.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_rate" - } - ] - } - }, - "taxability_reason": { - "description": "The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.", - "enum": [ - "customer_exempt", - "not_collecting", - "not_subject_to_tax", - "not_supported", - "portion_product_exempt", - "portion_reduced_rated", - "portion_standard_rated", - "product_exempt", - "product_exempt_holiday", - "proportionally_rated", - "reduced_rated", - "reverse_charge", - "standard_rated", - "taxable_basis_reduced", - "zero_rated" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "taxable_amount": { - "description": "The amount on which tax is calculated, in cents (or local equivalent).", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount", - "inclusive", - "tax_rate" - ], - "title": "CreditNoteTaxAmount", - "type": "object", - "x-expandableFields": [ - "tax_rate" - ] - }, - "currency_option": { - "description": "", - "properties": { - "custom_unit_amount": { - "anyOf": [ - { - "$ref": "#/components/schemas/custom_unit_amount" - } - ], - "description": "When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.", - "nullable": true - }, - "tax_behavior": { - "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "nullable": true, - "type": "string" - }, - "tiers": { - "description": "Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.", - "items": { - "$ref": "#/components/schemas/price_tier" - }, - "type": "array" - }, - "unit_amount": { - "description": "The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`.", - "nullable": true, - "type": "integer" - }, - "unit_amount_decimal": { - "description": "The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "CurrencyOption", - "type": "object", - "x-expandableFields": [ - "custom_unit_amount", - "tiers" - ] - }, - "custom_unit_amount": { - "description": "", - "properties": { - "maximum": { - "description": "The maximum unit amount the customer can specify for this item.", - "nullable": true, - "type": "integer" - }, - "minimum": { - "description": "The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.", - "nullable": true, - "type": "integer" - }, - "preset": { - "description": "The starting unit amount which can be updated by the customer.", - "nullable": true, - "type": "integer" - } - }, - "title": "CustomUnitAmount", - "type": "object", - "x-expandableFields": [] - }, - "customer": { - "description": "This object represents a customer of your business. Use it to create recurring charges and track payments that belong to the same customer.\n\nRelated guide: [Save a card during payment](https://stripe.com/docs/payments/save-during-payment)", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "The customer's address.", - "nullable": true - }, - "balance": { - "description": "The current balance, if any, that's stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that's added to their next invoice. The balance only considers amounts that Stripe hasn't successfully applied to any invoice. It doesn't reflect unpaid invoices. This balance is only taken into account after invoices finalize.", - "type": "integer" - }, - "cash_balance": { - "anyOf": [ - { - "$ref": "#/components/schemas/cash_balance" - } - ], - "description": "The current funds being held by Stripe on behalf of the customer. You can apply these funds towards payment intents when the source is \"cash_balance\". The `settings[reconciliation_mode]` field describes if these funds apply to these payment intents manually or automatically.", - "nullable": true - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) the customer can be charged in for recurring billing purposes.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "default_source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "description": "ID of the default payment source for the customer.\n\nIf you use payment methods created through the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) field instead.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ] - }, - "x-stripeBypassValidation": true - }, - "delinquent": { - "description": "Tracks the most recent state change on any invoice belonging to the customer. Paying an invoice or marking it uncollectible via the API will set this field to false. An automatic payment failure or passing the `invoice.due_date` will set this field to `true`.\n\nIf an invoice becomes uncollectible by [dunning](https://stripe.com/docs/billing/automatic-collection), `delinquent` doesn't reset to `false`.\n\nIf you care whether the customer has paid their most recent subscription invoice, use `subscription.status` instead. Paying or marking uncollectible any customer invoice regardless of whether it is the latest invoice for a subscription will always set this field to `false`.", - "nullable": true, - "type": "boolean" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discount": { - "anyOf": [ - { - "$ref": "#/components/schemas/discount" - } - ], - "description": "Describes the current discount active on the customer, if there is one.", - "nullable": true - }, - "email": { - "description": "The customer's email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice_credit_balance": { - "additionalProperties": { - "type": "integer" - }, - "description": "The current multi-currency balances, if any, that's stored on the customer. If positive in a currency, the customer has a credit to apply to their next invoice denominated in that currency. If negative, the customer has an amount owed that's added to their next invoice denominated in that currency. These balances don't apply to unpaid invoices. They solely track amounts that Stripe hasn't successfully applied to any invoice. Stripe only applies a balance in a specific currency to an invoice after that invoice (which is in the same currency) finalizes.", - "type": "object" - }, - "invoice_prefix": { - "description": "The prefix for the customer used to generate unique invoice numbers.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_settings": { - "$ref": "#/components/schemas/invoice_setting_customer_setting" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "The customer's full name or business name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "next_invoice_sequence": { - "description": "The suffix of the customer's next invoice number (for example, 0001). When the account uses account level sequencing, this parameter is ignored in API requests and the field omitted in API responses.", - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "customer" - ], - "type": "string" - }, - "phone": { - "description": "The customer's phone number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_locales": { - "description": "The customer's preferred locales (languages), ordered by preference.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "shipping": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping" - } - ], - "description": "Mailing and shipping address for the customer. Appears on invoices emailed to this customer.", - "nullable": true - }, - "sources": { - "description": "The customer's payment sources, if any.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "title": "Polymorphic", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ApmsSourcesSourceList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "subscriptions": { - "description": "The customer's current subscriptions, if any.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/subscription" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SubscriptionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "tax": { - "$ref": "#/components/schemas/customer_tax" - }, - "tax_exempt": { - "description": "Describes the customer's tax exemption status, which is `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the following text: **\"Reverse charge\"**.", - "enum": [ - "exempt", - "none", - "reverse" - ], - "nullable": true, - "type": "string" - }, - "tax_ids": { - "description": "The customer's tax IDs.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax_id" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxIDsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "test_clock": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ], - "description": "ID of the test clock that this customer belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ] - } - } - }, - "required": [ - "created", - "id", - "livemode", - "object" - ], - "title": "Customer", - "type": "object", - "x-expandableFields": [ - "address", - "cash_balance", - "default_source", - "discount", - "invoice_settings", - "shipping", - "sources", - "subscriptions", - "tax", - "tax_ids", - "test_clock" - ], - "x-resourceId": "customer" - }, - "customer_acceptance": { - "description": "", - "properties": { - "accepted_at": { - "description": "The time that the customer accepts the mandate.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "offline": { - "$ref": "#/components/schemas/offline_acceptance" - }, - "online": { - "$ref": "#/components/schemas/online_acceptance" - }, - "type": { - "description": "The mandate includes the type of customer acceptance information, such as: `online` or `offline`.", - "enum": [ - "offline", - "online" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "customer_acceptance", - "type": "object", - "x-expandableFields": [ - "offline", - "online" - ] - }, - "customer_balance_customer_balance_settings": { - "description": "", - "properties": { - "reconciliation_mode": { - "description": "The configuration for how funds that land in the customer cash balance are reconciled.", - "enum": [ - "automatic", - "manual" - ], - "type": "string" - }, - "using_merchant_default": { - "description": "A flag to indicate if reconciliation mode returned is the user's default or is specific to this customer cash balance", - "type": "boolean" - } - }, - "required": [ - "reconciliation_mode", - "using_merchant_default" - ], - "title": "CustomerBalanceCustomerBalanceSettings", - "type": "object", - "x-expandableFields": [] - }, - "customer_balance_resource_cash_balance_transaction_resource_adjusted_for_overdraft": { - "description": "", - "properties": { - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds taken out of your Stripe balance.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "linked_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - } - ], - "description": "The [Cash Balance Transaction](https://stripe.com/docs/api/cash_balance_transactions/object) that brought the customer balance negative, triggering the clawback of funds.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - } - ] - } - } - }, - "required": [ - "balance_transaction", - "linked_transaction" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceAdjustedForOverdraft", - "type": "object", - "x-expandableFields": [ - "balance_transaction", - "linked_transaction" - ] - }, - "customer_balance_resource_cash_balance_transaction_resource_applied_to_payment_transaction": { - "description": "", - "properties": { - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were applied to.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - } - }, - "required": [ - "payment_intent" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceAppliedToPaymentTransaction", - "type": "object", - "x-expandableFields": [ - "payment_intent" - ] - }, - "customer_balance_resource_cash_balance_transaction_resource_funded_transaction": { - "description": "", - "properties": { - "bank_transfer": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer" - } - }, - "required": [ - "bank_transfer" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceFundedTransaction", - "type": "object", - "x-expandableFields": [ - "bank_transfer" - ] - }, - "customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer": { - "description": "", - "properties": { - "eu_bank_transfer": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_eu_bank_transfer" - }, - "gb_bank_transfer": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_gb_bank_transfer" - }, - "jp_bank_transfer": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_jp_bank_transfer" - }, - "reference": { - "description": "The user-supplied reference field on the bank transfer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "The funding method type used to fund the customer balance. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.", - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_transfer": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_us_bank_transfer" - } - }, - "required": [ - "type" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransfer", - "type": "object", - "x-expandableFields": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "us_bank_transfer" - ] - }, - "customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_eu_bank_transfer": { - "description": "", - "properties": { - "bic": { - "description": "The BIC of the bank of the sender of the funding.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "iban_last4": { - "description": "The last 4 digits of the IBAN of the sender of the funding.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sender_name": { - "description": "The full name of the sender, as supplied by the sending bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceEuBankTransfer", - "type": "object", - "x-expandableFields": [] - }, - "customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_gb_bank_transfer": { - "description": "", - "properties": { - "account_number_last4": { - "description": "The last 4 digits of the account number of the sender of the funding.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sender_name": { - "description": "The full name of the sender, as supplied by the sending bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sort_code": { - "description": "The sort code of the bank of the sender of the funding", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceGbBankTransfer", - "type": "object", - "x-expandableFields": [] - }, - "customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_jp_bank_transfer": { - "description": "", - "properties": { - "sender_bank": { - "description": "The name of the bank of the sender of the funding.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sender_branch": { - "description": "The name of the bank branch of the sender of the funding.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sender_name": { - "description": "The full name of the sender, as supplied by the sending bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceJpBankTransfer", - "type": "object", - "x-expandableFields": [] - }, - "customer_balance_resource_cash_balance_transaction_resource_funded_transaction_resource_bank_transfer_resource_us_bank_transfer": { - "description": "", - "properties": { - "network": { - "description": "The banking network used for this funding.", - "enum": [ - "ach", - "domestic_wire_us", - "swift" - ], - "type": "string" - }, - "sender_name": { - "description": "The full name of the sender, as supplied by the sending bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "CustomerBalanceResourceCashBalanceTransactionResourceFundedTransactionResourceBankTransferResourceUsBankTransfer", - "type": "object", - "x-expandableFields": [] - }, - "customer_balance_resource_cash_balance_transaction_resource_refunded_from_payment_transaction": { - "description": "", - "properties": { - "refund": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/refund" - } - ], - "description": "The [Refund](https://stripe.com/docs/api/refunds/object) that moved these funds into the customer's cash balance.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/refund" - } - ] - } - } - }, - "required": [ - "refund" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceRefundedFromPaymentTransaction", - "type": "object", - "x-expandableFields": [ - "refund" - ] - }, - "customer_balance_resource_cash_balance_transaction_resource_transferred_to_balance": { - "description": "", - "properties": { - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "The [Balance Transaction](https://stripe.com/docs/api/balance_transactions/object) that corresponds to funds transferred to your Stripe balance.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - } - }, - "required": [ - "balance_transaction" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceTransferredToBalance", - "type": "object", - "x-expandableFields": [ - "balance_transaction" - ] - }, - "customer_balance_resource_cash_balance_transaction_resource_unapplied_from_payment_transaction": { - "description": "", - "properties": { - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "The [Payment Intent](https://stripe.com/docs/api/payment_intents/object) that funds were unapplied from.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - } - }, - "required": [ - "payment_intent" - ], - "title": "CustomerBalanceResourceCashBalanceTransactionResourceUnappliedFromPaymentTransaction", - "type": "object", - "x-expandableFields": [ - "payment_intent" - ] - }, - "customer_balance_transaction": { - "description": "Each customer has a [Balance](https://stripe.com/docs/api/customers/object#customer_object-balance) value,\nwhich denotes a debit or credit that's automatically applied to their next invoice upon finalization.\nYou may modify the value directly by using the [update customer API](https://stripe.com/docs/api/customers/update),\nor by creating a Customer Balance Transaction, which increments or decrements the customer's `balance` by the specified `amount`.\n\nRelated guide: [Customer balance](https://stripe.com/docs/billing/customer/balance)", - "properties": { - "amount": { - "description": "The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's `balance`.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "credit_note": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/credit_note" - } - ], - "description": "The ID of the credit note (if any) related to the transaction.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/credit_note" - } - ] - } - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "The ID of the customer the transaction belongs to.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "ending_balance": { - "description": "The customer's `balance` after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice.", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "The ID of the invoice (if any) related to the transaction.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "customer_balance_transaction" - ], - "type": "string" - }, - "type": { - "description": "Transaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_overpaid`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, or `unapplied_from_invoice`. See the [Customer Balance page](https://stripe.com/docs/billing/customer/balance#types) to learn more about transaction types.", - "enum": [ - "adjustment", - "applied_to_invoice", - "credit_note", - "initial", - "invoice_overpaid", - "invoice_too_large", - "invoice_too_small", - "migration", - "unapplied_from_invoice", - "unspent_receiver_credit" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "amount", - "created", - "currency", - "customer", - "ending_balance", - "id", - "livemode", - "object", - "type" - ], - "title": "CustomerBalanceTransaction", - "type": "object", - "x-expandableFields": [ - "credit_note", - "customer", - "invoice" - ], - "x-resourceId": "customer_balance_transaction" - }, - "customer_cash_balance_transaction": { - "description": "Customers with certain payments enabled have a cash balance, representing funds that were paid\nby the customer to a merchant, but have not yet been allocated to a payment. Cash Balance Transactions\nrepresent when funds are moved into or out of this balance. This includes funding by the customer, allocation\nto payments, and refunds to the customer.", - "properties": { - "adjusted_for_overdraft": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_adjusted_for_overdraft" - }, - "applied_to_payment": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_applied_to_payment_transaction" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "The customer whose available cash balance changed as a result of this transaction.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "ending_balance": { - "description": "The total available cash balance for the specified currency after this transaction was applied. Represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "funded": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_funded_transaction" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "net_amount": { - "description": "The amount by which the cash balance changed, represented in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). A positive value represents funds being added to the cash balance, a negative value represents funds being removed from the cash balance.", - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "customer_cash_balance_transaction" - ], - "type": "string" - }, - "refunded_from_payment": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_refunded_from_payment_transaction" - }, - "transferred_to_balance": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_transferred_to_balance" - }, - "type": { - "description": "The type of the cash balance transaction. New types may be added in future. See [Customer Balance](https://stripe.com/docs/payments/customer-balance#types) to learn more about these types.", - "enum": [ - "adjusted_for_overdraft", - "applied_to_payment", - "funded", - "funding_reversed", - "refunded_from_payment", - "return_canceled", - "return_initiated", - "transferred_to_balance", - "unapplied_from_payment" - ], - "type": "string" - }, - "unapplied_from_payment": { - "$ref": "#/components/schemas/customer_balance_resource_cash_balance_transaction_resource_unapplied_from_payment_transaction" - } - }, - "required": [ - "created", - "currency", - "customer", - "ending_balance", - "id", - "livemode", - "net_amount", - "object", - "type" - ], - "title": "CustomerCashBalanceTransaction", - "type": "object", - "x-expandableFields": [ - "adjusted_for_overdraft", - "applied_to_payment", - "customer", - "funded", - "refunded_from_payment", - "transferred_to_balance", - "unapplied_from_payment" - ], - "x-resourceId": "customer_cash_balance_transaction" - }, - "customer_session": { - "description": "A Customer Session allows you to grant Stripe's frontend SDKs (like Stripe.js) client-side access\ncontrol over a Customer.", - "properties": { - "client_secret": { - "description": "The client secret of this Customer Session. Used on the client to set up secure access to the given `customer`.\n\nThe client secret can be used to provide access to `customer` from your frontend. It should not be stored, logged, or exposed to anyone other than the relevant customer. Make sure that you have TLS enabled on any page that includes the client secret.", - "maxLength": 5000, - "type": "string" - }, - "components": { - "$ref": "#/components/schemas/customer_session_resource_components" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "The Customer the Customer Session was created for.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "expires_at": { - "description": "The timestamp at which this Customer Session will expire.", - "format": "unix-time", - "type": "integer" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "customer_session" - ], - "type": "string" - } - }, - "required": [ - "client_secret", - "created", - "customer", - "expires_at", - "livemode", - "object" - ], - "title": "CustomerSessionResourceCustomerSession", - "type": "object", - "x-expandableFields": [ - "components", - "customer" - ], - "x-resourceId": "customer_session" - }, - "customer_session_resource_components": { - "description": "Configuration for the components supported by this Customer Session.", - "properties": { - "buy_button": { - "$ref": "#/components/schemas/customer_session_resource_components_resource_buy_button" - }, - "payment_element": { - "$ref": "#/components/schemas/customer_session_resource_components_resource_payment_element" - }, - "pricing_table": { - "$ref": "#/components/schemas/customer_session_resource_components_resource_pricing_table" - } - }, - "required": [ - "buy_button", - "payment_element", - "pricing_table" - ], - "title": "CustomerSessionResourceComponents", - "type": "object", - "x-expandableFields": [ - "buy_button", - "payment_element", - "pricing_table" - ] - }, - "customer_session_resource_components_resource_buy_button": { - "description": "This hash contains whether the buy button is enabled.", - "properties": { - "enabled": { - "description": "Whether the buy button is enabled.", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "CustomerSessionResourceComponentsResourceBuyButton", - "type": "object", - "x-expandableFields": [] - }, - "customer_session_resource_components_resource_payment_element": { - "description": "This hash contains whether the Payment Element is enabled and the features it supports.", - "properties": { - "enabled": { - "description": "Whether the Payment Element is enabled.", - "type": "boolean" - }, - "features": { - "anyOf": [ - { - "$ref": "#/components/schemas/customer_session_resource_components_resource_payment_element_resource_features" - } - ], - "description": "This hash defines whether the Payment Element supports certain features.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "CustomerSessionResourceComponentsResourcePaymentElement", - "type": "object", - "x-expandableFields": [ - "features" - ] - }, - "customer_session_resource_components_resource_payment_element_resource_features": { - "description": "This hash contains the features the Payment Element supports.", - "properties": { - "payment_method_allow_redisplay_filters": { - "description": "A list of [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) values that controls which saved payment methods the Payment Element displays by filtering to only show payment methods with an `allow_redisplay` value that is present in this list.\n\nIf not specified, defaults to [\"always\"]. In order to display all saved payment methods, specify [\"always\", \"limited\", \"unspecified\"].", - "items": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "type": "array" - }, - "payment_method_redisplay": { - "description": "Controls whether or not the Payment Element shows saved payment methods. This parameter defaults to `disabled`.", - "enum": [ - "disabled", - "enabled" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "payment_method_redisplay_limit": { - "description": "Determines the max number of saved payment methods for the Payment Element to display. This parameter defaults to `10`.", - "nullable": true, - "type": "integer" - }, - "payment_method_remove": { - "description": "Controls whether the Payment Element displays the option to remove a saved payment method. This parameter defaults to `disabled`.\n\nAllowing buyers to remove their saved payment methods impacts subscriptions that depend on that payment method. Removing the payment method detaches the [`customer` object](https://docs.stripe.com/api/payment_methods/object#payment_method_object-customer) from that [PaymentMethod](https://docs.stripe.com/api/payment_methods).", - "enum": [ - "disabled", - "enabled" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "payment_method_save": { - "description": "Controls whether the Payment Element displays a checkbox offering to save a new payment method. This parameter defaults to `disabled`.\n\nIf a customer checks the box, the [`allow_redisplay`](https://docs.stripe.com/api/payment_methods/object#payment_method_object-allow_redisplay) value on the PaymentMethod is set to `'always'` at confirmation time. For PaymentIntents, the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value is also set to the value defined in `payment_method_save_usage`.", - "enum": [ - "disabled", - "enabled" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "payment_method_save_usage": { - "description": "When using PaymentIntents and the customer checks the save checkbox, this field determines the [`setup_future_usage`](https://docs.stripe.com/api/payment_intents/object#payment_intent_object-setup_future_usage) value used to confirm the PaymentIntent.\n\nWhen using SetupIntents, directly configure the [`usage`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-usage) value on SetupIntent creation.", - "enum": [ - "off_session", - "on_session" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "payment_method_allow_redisplay_filters", - "payment_method_redisplay", - "payment_method_remove", - "payment_method_save" - ], - "title": "CustomerSessionResourceComponentsResourcePaymentElementResourceFeatures", - "type": "object", - "x-expandableFields": [] - }, - "customer_session_resource_components_resource_pricing_table": { - "description": "This hash contains whether the pricing table is enabled.", - "properties": { - "enabled": { - "description": "Whether the pricing table is enabled.", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "CustomerSessionResourceComponentsResourcePricingTable", - "type": "object", - "x-expandableFields": [] - }, - "customer_tax": { - "description": "", - "properties": { - "automatic_tax": { - "description": "Surfaces if automatic tax computation is possible given the current customer location information.", - "enum": [ - "failed", - "not_collecting", - "supported", - "unrecognized_location" - ], - "type": "string" - }, - "ip_address": { - "description": "A recent IP address of the customer used for tax reporting and tax location inference.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "location": { - "anyOf": [ - { - "$ref": "#/components/schemas/customer_tax_location" - } - ], - "description": "The customer's location as identified by Stripe Tax.", - "nullable": true - } - }, - "required": [ - "automatic_tax" - ], - "title": "CustomerTax", - "type": "object", - "x-expandableFields": [ - "location" - ] - }, - "customer_tax_location": { - "description": "", - "properties": { - "country": { - "description": "The customer's country as identified by Stripe Tax.", - "maxLength": 5000, - "type": "string" - }, - "source": { - "description": "The data source used to infer the customer's location.", - "enum": [ - "billing_address", - "ip_address", - "payment_method", - "shipping_destination" - ], - "type": "string" - }, - "state": { - "description": "The customer's state, county, province, or region as identified by Stripe Tax.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "country", - "source" - ], - "title": "CustomerTaxLocation", - "type": "object", - "x-expandableFields": [] - }, - "deleted_account": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "account" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedAccount", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_account" - }, - "deleted_apple_pay_domain": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "apple_pay_domain" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedApplePayDomain", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_apple_pay_domain" - }, - "deleted_application": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "name": { - "description": "The name of the application.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "application" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedApplication", - "type": "object", - "x-expandableFields": [] - }, - "deleted_bank_account": { - "description": "", - "properties": { - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "bank_account" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedBankAccount", - "type": "object", - "x-expandableFields": [] - }, - "deleted_card": { - "description": "", - "properties": { - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/payouts) paid out to the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "card" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedCard", - "type": "object", - "x-expandableFields": [] - }, - "deleted_coupon": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "coupon" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedCoupon", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_coupon" - }, - "deleted_customer": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "customer" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedCustomer", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_customer" - }, - "deleted_discount": { - "description": "", - "properties": { - "checkout_session": { - "description": "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "coupon": { - "$ref": "#/components/schemas/coupon" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The ID of the customer associated with this discount.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "description": "The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_item": { - "description": "The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "discount" - ], - "type": "string" - }, - "promotion_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/promotion_code" - } - ], - "description": "The promotion code applied to create this discount.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/promotion_code" - } - ] - } - }, - "start": { - "description": "Date that the coupon was applied.", - "format": "unix-time", - "type": "integer" - }, - "subscription": { - "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "subscription_item": { - "description": "The subscription item that this coupon is applied to, if it is applied to a particular subscription item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "coupon", - "deleted", - "id", - "object", - "start" - ], - "title": "DeletedDiscount", - "type": "object", - "x-expandableFields": [ - "coupon", - "customer", - "promotion_code" - ], - "x-resourceId": "deleted_discount" - }, - "deleted_external_account": { - "anyOf": [ - { - "$ref": "#/components/schemas/deleted_bank_account" - }, - { - "$ref": "#/components/schemas/deleted_card" - } - ], - "title": "Polymorphic", - "x-resourceId": "deleted_external_account", - "x-stripeBypassValidation": true - }, - "deleted_invoice": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "invoice" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedInvoice", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_invoice" - }, - "deleted_invoiceitem": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "invoiceitem" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedInvoiceItem", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_invoiceitem" - }, - "deleted_payment_source": { - "anyOf": [ - { - "$ref": "#/components/schemas/deleted_bank_account" - }, - { - "$ref": "#/components/schemas/deleted_card" - } - ], - "title": "Polymorphic", - "x-resourceId": "deleted_payment_source", - "x-stripeBypassValidation": true - }, - "deleted_person": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "person" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedPerson", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_person" - }, - "deleted_plan": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "plan" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedPlan", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_plan" - }, - "deleted_price": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "price" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedPrice", - "type": "object", - "x-expandableFields": [] - }, - "deleted_product": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "product" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedProduct", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_product" - }, - "deleted_product_feature": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "product_feature" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedProductFeature", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_product_feature" - }, - "deleted_radar.value_list": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "radar.value_list" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "RadarListDeletedList", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_radar.value_list" - }, - "deleted_radar.value_list_item": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "radar.value_list_item" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "RadarListDeletedListItem", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_radar.value_list_item" - }, - "deleted_subscription_item": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "subscription_item" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedSubscriptionItem", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_subscription_item" - }, - "deleted_tax_id": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax_id" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "deleted_tax_id", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_tax_id" - }, - "deleted_terminal.configuration": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.configuration" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "TerminalConfigurationDeletedConfiguration", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_terminal.configuration" - }, - "deleted_terminal.location": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.location" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "TerminalLocationDeletedLocation", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_terminal.location" - }, - "deleted_terminal.reader": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.reader" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "TerminalReaderDeletedReader", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_terminal.reader" - }, - "deleted_test_helpers.test_clock": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "test_helpers.test_clock" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "DeletedTestClock", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_test_helpers.test_clock" - }, - "deleted_webhook_endpoint": { - "description": "", - "properties": { - "deleted": { - "description": "Always true for a deleted object", - "enum": [ - true - ], - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "webhook_endpoint" - ], - "type": "string" - } - }, - "required": [ - "deleted", - "id", - "object" - ], - "title": "NotificationWebhookEndpointDeleted", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "deleted_webhook_endpoint" - }, - "destination_details_unimplemented": { - "description": "", - "properties": {}, - "title": "destination_details_unimplemented", - "type": "object", - "x-expandableFields": [] - }, - "discount": { - "description": "A discount represents the actual application of a [coupon](https://stripe.com/docs/api#coupons) or [promotion code](https://stripe.com/docs/api#promotion_codes).\nIt contains information about when the discount began, when it will end, and what it is applied to.\n\nRelated guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts)", - "properties": { - "checkout_session": { - "description": "The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "coupon": { - "$ref": "#/components/schemas/coupon" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The ID of the customer associated with this discount.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "end": { - "description": "If the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "description": "The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_item": { - "description": "The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "discount" - ], - "type": "string" - }, - "promotion_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/promotion_code" - } - ], - "description": "The promotion code applied to create this discount.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/promotion_code" - } - ] - } - }, - "start": { - "description": "Date that the coupon was applied.", - "format": "unix-time", - "type": "integer" - }, - "subscription": { - "description": "The subscription that this coupon is applied to, if it is applied to a particular subscription.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "subscription_item": { - "description": "The subscription item that this coupon is applied to, if it is applied to a particular subscription item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "coupon", - "id", - "object", - "start" - ], - "title": "Discount", - "type": "object", - "x-expandableFields": [ - "coupon", - "customer", - "promotion_code" - ], - "x-resourceId": "discount" - }, - "discounts_resource_discount_amount": { - "description": "", - "properties": { - "amount": { - "description": "The amount, in cents (or local equivalent), of the discount.", - "type": "integer" - }, - "discount": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - }, - { - "$ref": "#/components/schemas/deleted_discount" - } - ], - "description": "The discount that was applied to get this discount amount.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - }, - { - "$ref": "#/components/schemas/deleted_discount" - } - ] - } - } - }, - "required": [ - "amount", - "discount" - ], - "title": "DiscountsResourceDiscountAmount", - "type": "object", - "x-expandableFields": [ - "discount" - ] - }, - "discounts_resource_stackable_discount": { - "description": "", - "properties": { - "coupon": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/coupon" - } - ], - "description": "ID of the coupon to create a new discount for.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/coupon" - } - ] - } - }, - "discount": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - } - ], - "description": "ID of an existing discount on the object (or one of its ancestors) to reuse.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - } - ] - } - }, - "promotion_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/promotion_code" - } - ], - "description": "ID of the promotion code to create a new discount for.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/promotion_code" - } - ] - } - } - }, - "title": "DiscountsResourceStackableDiscount", - "type": "object", - "x-expandableFields": [ - "coupon", - "discount", - "promotion_code" - ] - }, - "dispute": { - "description": "A dispute occurs when a customer questions your charge with their card issuer.\nWhen this happens, you have the opportunity to respond to the dispute with\nevidence that shows that the charge is legitimate.\n\nRelated guide: [Disputes and fraud](https://stripe.com/docs/disputes)", - "properties": { - "amount": { - "description": "Disputed amount. Usually the amount of the charge, but it can differ (usually because of currency fluctuation or because only part of the order is disputed).", - "type": "integer" - }, - "balance_transactions": { - "description": "List of zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute.", - "items": { - "$ref": "#/components/schemas/balance_transaction" - }, - "type": "array" - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the charge that's disputed.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "evidence": { - "$ref": "#/components/schemas/dispute_evidence" - }, - "evidence_details": { - "$ref": "#/components/schemas/dispute_evidence_details" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "is_charge_refundable": { - "description": "If true, it's still possible to refund the disputed payment. After the payment has been fully refunded, no further funds are withdrawn from your Stripe account as a result of this dispute.", - "type": "boolean" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "dispute" - ], - "type": "string" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "ID of the PaymentIntent that's disputed.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "payment_method_details": { - "$ref": "#/components/schemas/dispute_payment_method_details" - }, - "reason": { - "description": "Reason given by cardholder for dispute. Possible values are `bank_cannot_process`, `check_returned`, `credit_not_processed`, `customer_initiated`, `debit_not_authorized`, `duplicate`, `fraudulent`, `general`, `incorrect_account_details`, `insufficient_funds`, `product_not_received`, `product_unacceptable`, `subscription_canceled`, or `unrecognized`. Learn more about [dispute reasons](https://stripe.com/docs/disputes/categories).", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "Current status of dispute. Possible values are `warning_needs_response`, `warning_under_review`, `warning_closed`, `needs_response`, `under_review`, `won`, or `lost`.", - "enum": [ - "lost", - "needs_response", - "under_review", - "warning_closed", - "warning_needs_response", - "warning_under_review", - "won" - ], - "type": "string" - } - }, - "required": [ - "amount", - "balance_transactions", - "charge", - "created", - "currency", - "evidence", - "evidence_details", - "id", - "is_charge_refundable", - "livemode", - "metadata", - "object", - "reason", - "status" - ], - "title": "Dispute", - "type": "object", - "x-expandableFields": [ - "balance_transactions", - "charge", - "evidence", - "evidence_details", - "payment_intent", - "payment_method_details" - ], - "x-resourceId": "dispute" - }, - "dispute_evidence": { - "description": "", - "properties": { - "access_activity_log": { - "description": "Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "billing_address": { - "description": "The billing address provided by the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cancellation_policy": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your subscription cancellation policy, as shown to the customer.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "cancellation_policy_disclosure": { - "description": "An explanation of how and when the customer was shown your refund policy prior to purchase.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "cancellation_rebuttal": { - "description": "A justification for why the customer's subscription was not canceled.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "customer_communication": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "customer_email_address": { - "description": "The email address of the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_name": { - "description": "The name of the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_purchase_ip": { - "description": "The IP address that the customer used when making the purchase.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_signature": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) A relevant document or contract showing the customer's signature.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "duplicate_charge_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "duplicate_charge_explanation": { - "description": "An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "duplicate_charge_id": { - "description": "The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_description": { - "description": "A description of the product or service that was sold.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "receipt": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any receipt or message sent to the customer notifying them of the charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "refund_policy": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Your refund policy, as shown to the customer.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "refund_policy_disclosure": { - "description": "Documentation demonstrating that the customer was shown your refund policy prior to purchase.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "refund_refusal_explanation": { - "description": "A justification for why the customer is not entitled to a refund.", - "maxLength": 150000, - "nullable": true, - "type": "string" - }, - "service_date": { - "description": "The date on which the customer received or began receiving the purchased service, in a clear human-readable format.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "service_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "shipping_address": { - "description": "The address to which a physical product was shipped. You should try to include as complete address information as possible.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_carrier": { - "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_date": { - "description": "The date on which a physical product began its route to the shipping address, in a clear human-readable format.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "shipping_tracking_number": { - "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "uncategorized_file": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Any additional evidence or statements.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "uncategorized_text": { - "description": "Any additional evidence or statements.", - "maxLength": 150000, - "nullable": true, - "type": "string" - } - }, - "title": "DisputeEvidence", - "type": "object", - "x-expandableFields": [ - "cancellation_policy", - "customer_communication", - "customer_signature", - "duplicate_charge_documentation", - "receipt", - "refund_policy", - "service_documentation", - "shipping_documentation", - "uncategorized_file" - ] - }, - "dispute_evidence_details": { - "description": "", - "properties": { - "due_by": { - "description": "Date by which evidence must be submitted in order to successfully challenge dispute. Will be 0 if the customer's bank or credit card company doesn't allow a response for this particular dispute.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "has_evidence": { - "description": "Whether evidence has been staged for this dispute.", - "type": "boolean" - }, - "past_due": { - "description": "Whether the last evidence submission was submitted past the due date. Defaults to `false` if no evidence submissions have occurred. If `true`, then delivery of the latest evidence is *not* guaranteed.", - "type": "boolean" - }, - "submission_count": { - "description": "The number of times evidence has been submitted. Typically, you may only submit evidence once.", - "type": "integer" - } - }, - "required": [ - "has_evidence", - "past_due", - "submission_count" - ], - "title": "DisputeEvidenceDetails", - "type": "object", - "x-expandableFields": [] - }, - "dispute_payment_method_details": { - "description": "", - "properties": { - "card": { - "$ref": "#/components/schemas/dispute_payment_method_details_card" - }, - "klarna": { - "$ref": "#/components/schemas/dispute_payment_method_details_klarna" - }, - "paypal": { - "$ref": "#/components/schemas/dispute_payment_method_details_paypal" - }, - "type": { - "description": "Payment method type.", - "enum": [ - "card", - "klarna", - "paypal" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "DisputePaymentMethodDetails", - "type": "object", - "x-expandableFields": [ - "card", - "klarna", - "paypal" - ] - }, - "dispute_payment_method_details_card": { - "description": "", - "properties": { - "brand": { - "description": "Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "type": "string" - }, - "case_type": { - "description": "The type of dispute opened. Different case types may have varying fees and financial impact.", - "enum": [ - "chargeback", - "inquiry" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "network_reason_code": { - "description": "The card network's specific dispute reason code, which maps to one of Stripe's primary dispute categories to simplify response guidance. The [Network code map](https://stripe.com/docs/disputes/categories#network-code-map) lists all available dispute reason codes by network.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "brand", - "case_type" - ], - "title": "DisputePaymentMethodDetailsCard", - "type": "object", - "x-expandableFields": [] - }, - "dispute_payment_method_details_klarna": { - "description": "", - "properties": { - "reason_code": { - "description": "The reason for the dispute as defined by Klarna", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "DisputePaymentMethodDetailsKlarna", - "type": "object", - "x-expandableFields": [] - }, - "dispute_payment_method_details_paypal": { - "description": "", - "properties": { - "case_id": { - "description": "The ID of the dispute in PayPal.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reason_code": { - "description": "The reason for the dispute as defined by PayPal", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "DisputePaymentMethodDetailsPaypal", - "type": "object", - "x-expandableFields": [] - }, - "email_sent": { - "description": "", - "properties": { - "email_sent_at": { - "description": "The timestamp when the email was sent.", - "format": "unix-time", - "type": "integer" - }, - "email_sent_to": { - "description": "The recipient's email address.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "email_sent_at", - "email_sent_to" - ], - "title": "EmailSent", - "type": "object", - "x-expandableFields": [] - }, - "entitlements.active_entitlement": { - "description": "An active entitlement describes access to a feature for a customer.", - "properties": { - "feature": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/entitlements.feature" - } - ], - "description": "The [Feature](https://stripe.com/docs/api/entitlements/feature) that the customer is entitled to.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/entitlements.feature" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "lookup_key": { - "description": "A unique key you provide as your own system identifier. This may be up to 80 characters.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "entitlements.active_entitlement" - ], - "type": "string" - } - }, - "required": [ - "feature", - "id", - "livemode", - "lookup_key", - "object" - ], - "title": "ActiveEntitlement", - "type": "object", - "x-expandableFields": [ - "feature" - ], - "x-resourceId": "entitlements.active_entitlement" - }, - "entitlements.feature": { - "description": "A feature represents a monetizable ability or functionality in your system.\nFeatures can be assigned to products, and when those products are purchased, Stripe will create an entitlement to the feature for the purchasing customer.", - "properties": { - "active": { - "description": "Inactive features cannot be attached to new products and will not be returned from the features list endpoint.", - "type": "boolean" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "lookup_key": { - "description": "A unique key you provide as your own system identifier. This may be up to 80 characters.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "The feature's name, for your own purpose, not meant to be displayable to the customer.", - "maxLength": 80, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "entitlements.feature" - ], - "type": "string" - } - }, - "required": [ - "active", - "id", - "livemode", - "lookup_key", - "metadata", - "name", - "object" - ], - "title": "Feature", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "entitlements.feature" - }, - "ephemeral_key": { - "description": "", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "expires": { - "description": "Time at which the key will expire. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "ephemeral_key" - ], - "type": "string" - }, - "secret": { - "description": "The key's secret. You can use this value to make authorized requests to the Stripe API.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "expires", - "id", - "livemode", - "object" - ], - "title": "EphemeralKey", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "ephemeral_key" - }, - "error": { - "description": "An error response from the Stripe API", - "properties": { - "error": { - "$ref": "#/components/schemas/api_errors" - } - }, - "required": [ - "error" - ], - "type": "object" - }, - "event": { - "description": "Events are our way of letting you know when something interesting happens in\nyour account. When an interesting event occurs, we create a new `Event`\nobject. For example, when a charge succeeds, we create a `charge.succeeded`\nevent, and when an invoice payment attempt fails, we create an\n`invoice.payment_failed` event. Certain API requests might create multiple\nevents. For example, if you create a new subscription for a\ncustomer, you receive both a `customer.subscription.created` event and a\n`charge.succeeded` event.\n\nEvents occur when the state of another API resource changes. The event's data\nfield embeds the resource's state at the time of the change. For\nexample, a `charge.succeeded` event contains a charge, and an\n`invoice.payment_failed` event contains an invoice.\n\nAs with other API resources, you can use endpoints to retrieve an\n[individual event](https://stripe.com/docs/api#retrieve_event) or a [list of events](https://stripe.com/docs/api#list_events)\nfrom the API. We also have a separate\n[webhooks](http://en.wikipedia.org/wiki/Webhook) system for sending the\n`Event` objects directly to an endpoint on your server. You can manage\nwebhooks in your\n[account settings](https://dashboard.stripe.com/account/webhooks). Learn how\nto [listen for events](https://docs.stripe.com/webhooks)\nso that your integration can automatically trigger reactions.\n\nWhen using [Connect](https://docs.stripe.com/connect), you can also receive event notifications\nthat occur in connected accounts. For these events, there's an\nadditional `account` attribute in the received `Event` object.\n\nWe only guarantee access to events through the [Retrieve Event API](https://stripe.com/docs/api#retrieve_event)\nfor 30 days.", - "properties": { - "account": { - "description": "The connected account that originates the event.", - "maxLength": 5000, - "type": "string" - }, - "api_version": { - "description": "The Stripe API version used to render `data`. This property is populated only for events on or after October 31, 2014.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "data": { - "$ref": "#/components/schemas/notification_event_data" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "event" - ], - "type": "string" - }, - "pending_webhooks": { - "description": "Number of webhooks that haven't been successfully delivered (for example, to return a 20x response) to the URLs you specify.", - "type": "integer" - }, - "request": { - "anyOf": [ - { - "$ref": "#/components/schemas/notification_event_request" - } - ], - "description": "Information on the API request that triggers the event.", - "nullable": true - }, - "type": { - "description": "Description of the event (for example, `invoice.created` or `charge.refunded`).", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "data", - "id", - "livemode", - "object", - "pending_webhooks", - "type" - ], - "title": "NotificationEvent", - "type": "object", - "x-expandableFields": [ - "data", - "request" - ], - "x-resourceId": "event" - }, - "exchange_rate": { - "description": "`ExchangeRate` objects allow you to determine the rates that Stripe is currently\nusing to convert from one currency to another. Since this number is variable\nthroughout the day, there are various reasons why you might want to know the current\nrate (for example, to dynamically price an item for a user with a default\npayment in a foreign currency).\n\nPlease refer to our [Exchange Rates API](https://stripe.com/docs/fx-rates) guide for more details.\n\n*[Note: this integration path is supported but no longer recommended]* Additionally,\nyou can guarantee that a charge is made with an exchange rate that you expect is\ncurrent. To do so, you must pass in the exchange_rate to charges endpoints. If the\nvalue is no longer up to date, the charge won't go through. Please refer to our\n[Using with charges](https://stripe.com/docs/exchange-rates) guide for more details.\n\n-----\n\n \n\n*This Exchange Rates API is a Beta Service and is subject to Stripe's terms of service. You may use the API solely for the purpose of transacting on Stripe. For example, the API may be queried in order to:*\n\n- *localize prices for processing payments on Stripe*\n- *reconcile Stripe transactions*\n- *determine how much money to send to a connected account*\n- *determine app fees to charge a connected account*\n\n*Using this Exchange Rates API beta for any purpose other than to transact on Stripe is strictly prohibited and constitutes a violation of Stripe's terms of service.*", - "properties": { - "id": { - "description": "Unique identifier for the object. Represented as the three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) in lowercase.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "exchange_rate" - ], - "type": "string" - }, - "rates": { - "additionalProperties": { - "type": "number" - }, - "description": "Hash where the keys are supported currencies and the values are the exchange rate at which the base id currency converts to the key currency.", - "type": "object" - } - }, - "required": [ - "id", - "object", - "rates" - ], - "title": "ExchangeRate", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "exchange_rate" - }, - "external_account": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - } - ], - "title": "Polymorphic", - "x-resourceId": "external_account", - "x-stripeBypassValidation": true - }, - "external_account_requirements": { - "description": "", - "properties": { - "currently_due": { - "description": "Fields that need to be collected to keep the external account enabled. If not collected by `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "nullable": true, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by `current_deadline`. These fields need to be collected to enable the external account.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "title": "ExternalAccountRequirements", - "type": "object", - "x-expandableFields": [ - "errors" - ] - }, - "fee": { - "description": "", - "properties": { - "amount": { - "description": "Amount of the fee, in cents.", - "type": "integer" - }, - "application": { - "description": "ID of the Connect application that earned the fee.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "Type of the fee, one of: `application_fee`, `payment_method_passthrough_fee`, `stripe_fee` or `tax`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "type" - ], - "title": "Fee", - "type": "object", - "x-expandableFields": [] - }, - "fee_refund": { - "description": "`Application Fee Refund` objects allow you to refund an application fee that\nhas previously been created but not yet refunded. Funds will be refunded to\nthe Stripe account from which the fee was originally collected.\n\nRelated guide: [Refunding application fees](https://stripe.com/docs/connect/destination-charges#refunding-app-fee)", - "properties": { - "amount": { - "description": "Amount, in cents (or local equivalent).", - "type": "integer" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "Balance transaction that describes the impact on your account balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "fee": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application_fee" - } - ], - "description": "ID of the application fee that was refunded.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application_fee" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "fee_refund" - ], - "type": "string" - } - }, - "required": [ - "amount", - "created", - "currency", - "fee", - "id", - "object" - ], - "title": "FeeRefund", - "type": "object", - "x-expandableFields": [ - "balance_transaction", - "fee" - ], - "x-resourceId": "fee_refund" - }, - "file": { - "description": "This object represents files hosted on Stripe's servers. You can upload\nfiles with the [create file](https://stripe.com/docs/api#create_file) request\n(for example, when uploading dispute evidence). Stripe also\ncreates files independently (for example, the results of a [Sigma scheduled\nquery](#scheduled_queries)).\n\nRelated guide: [File upload guide](https://stripe.com/docs/file-upload)", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "expires_at": { - "description": "The file expires and isn't available at this time in epoch seconds.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "filename": { - "description": "The suitable name for saving the file to a filesystem.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "links": { - "description": "A list of [file links](https://stripe.com/docs/api#file_links) that point at this file.", - "nullable": true, - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/file_link" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/file_links", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FileResourceFileLinkList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "file" - ], - "type": "string" - }, - "purpose": { - "description": "The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file.", - "enum": [ - "account_requirement", - "additional_verification", - "business_icon", - "business_logo", - "customer_signature", - "dispute_evidence", - "document_provider_identity_document", - "finance_report_run", - "identity_document", - "identity_document_downloadable", - "pci_document", - "selfie", - "sigma_scheduled_query", - "tax_document_user_upload", - "terminal_reader_splashscreen" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "size": { - "description": "The size of the file object in bytes.", - "type": "integer" - }, - "title": { - "description": "A suitable title for the document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "The returned file type (for example, `csv`, `pdf`, `jpg`, or `png`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "Use your live secret API key to download the file from this URL.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "created", - "id", - "object", - "purpose", - "size" - ], - "title": "File", - "type": "object", - "x-expandableFields": [ - "links" - ], - "x-resourceId": "file" - }, - "file_link": { - "description": "To share the contents of a `File` object with non-Stripe users, you can\ncreate a `FileLink`. `FileLink`s contain a URL that you can use to\nretrieve the contents of the file without authentication.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "expired": { - "description": "Returns if the link is already expired.", - "type": "boolean" - }, - "expires_at": { - "description": "Time that the link expires.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "file": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The file object this link points to.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "file_link" - ], - "type": "string" - }, - "url": { - "description": "The publicly accessible URL to download the file.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "created", - "expired", - "file", - "id", - "livemode", - "metadata", - "object" - ], - "title": "FileLink", - "type": "object", - "x-expandableFields": [ - "file" - ], - "x-resourceId": "file_link" - }, - "financial_connections.account": { - "description": "A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.", - "properties": { - "account_holder": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_connections_resource_accountholder" - } - ], - "description": "The account holder that this account belongs to.", - "nullable": true - }, - "balance": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_connections_resource_balance" - } - ], - "description": "The most recent information about the account's balance.", - "nullable": true - }, - "balance_refresh": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_connections_resource_balance_refresh" - } - ], - "description": "The state of the most recent attempt to refresh the account balance.", - "nullable": true - }, - "category": { - "description": "The type of the account. Account category is further divided in `subcategory`.", - "enum": [ - "cash", - "credit", - "investment", - "other" - ], - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "display_name": { - "description": "A human-readable name that has been assigned to this account, either by the account holder or by the institution.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "institution_name": { - "description": "The name of the institution that holds this account.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "The last 4 digits of the account number. If present, this will be 4 numeric characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "financial_connections.account" - ], - "type": "string" - }, - "ownership": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/financial_connections.account_ownership" - } - ], - "description": "The most recent information about the account's owners.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/financial_connections.account_ownership" - } - ] - } - }, - "ownership_refresh": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_connections_resource_ownership_refresh" - } - ], - "description": "The state of the most recent attempt to refresh the account owners.", - "nullable": true - }, - "permissions": { - "description": "The list of permissions granted by this account.", - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "status": { - "description": "The status of the link to the account.", - "enum": [ - "active", - "disconnected", - "inactive" - ], - "type": "string" - }, - "subcategory": { - "description": "If `category` is `cash`, one of:\n\n - `checking`\n - `savings`\n - `other`\n\nIf `category` is `credit`, one of:\n\n - `mortgage`\n - `line_of_credit`\n - `credit_card`\n - `other`\n\nIf `category` is `investment` or `other`, this will be `other`.", - "enum": [ - "checking", - "credit_card", - "line_of_credit", - "mortgage", - "other", - "savings" - ], - "type": "string" - }, - "subscriptions": { - "description": "The list of data refresh subscriptions requested on this account.", - "items": { - "enum": [ - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - }, - "supported_payment_method_types": { - "description": "The [PaymentMethod type](https://stripe.com/docs/api/payment_methods/object#payment_method_object-type)(s) that can be created from this account.", - "items": { - "enum": [ - "link", - "us_bank_account" - ], - "type": "string" - }, - "type": "array" - }, - "transaction_refresh": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_connections_resource_transaction_refresh" - } - ], - "description": "The state of the most recent attempt to refresh the account transactions.", - "nullable": true - } - }, - "required": [ - "category", - "created", - "id", - "institution_name", - "livemode", - "object", - "status", - "subcategory", - "supported_payment_method_types" - ], - "title": "BankConnectionsResourceLinkedAccount", - "type": "object", - "x-expandableFields": [ - "account_holder", - "balance", - "balance_refresh", - "ownership", - "ownership_refresh", - "transaction_refresh" - ], - "x-resourceId": "financial_connections.account" - }, - "financial_connections.account_owner": { - "description": "Describes an owner of an account.", - "properties": { - "email": { - "description": "The email address of the owner.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "name": { - "description": "The full name of the owner.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "financial_connections.account_owner" - ], - "type": "string" - }, - "ownership": { - "description": "The ownership object that this owner belongs to.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The raw phone number of the owner.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "raw_address": { - "description": "The raw physical address of the owner.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "refreshed_at": { - "description": "The timestamp of the refresh that updated this owner.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "id", - "name", - "object", - "ownership" - ], - "title": "BankConnectionsResourceOwner", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "financial_connections.account_owner" - }, - "financial_connections.account_ownership": { - "description": "Describes a snapshot of the owners of an account at a particular point in time.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "financial_connections.account_ownership" - ], - "type": "string" - }, - "owners": { - "description": "A paginated list of owners for this account.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.account_owner" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceOwnerList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - }, - "required": [ - "created", - "id", - "object", - "owners" - ], - "title": "BankConnectionsResourceOwnership", - "type": "object", - "x-expandableFields": [ - "owners" - ] - }, - "financial_connections.session": { - "description": "A Financial Connections Session is the secure way to programmatically launch the client-side Stripe.js modal that lets your users link their accounts.", - "properties": { - "account_holder": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_connections_resource_accountholder" - } - ], - "description": "The account holder for whom accounts are collected in this session.", - "nullable": true - }, - "accounts": { - "description": "The accounts that were collected as part of this Session.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/financial_connections/accounts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceLinkedAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "client_secret": { - "description": "A value that will be passed to the client to launch the authentication flow.", - "maxLength": 5000, - "type": "string" - }, - "filters": { - "$ref": "#/components/schemas/bank_connections_resource_link_account_session_filters" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "financial_connections.session" - ], - "type": "string" - }, - "permissions": { - "description": "Permissions requested for accounts collected during this session.", - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "description": "Data features requested to be retrieved upon account creation.", - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - }, - "return_url": { - "description": "For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "accounts", - "client_secret", - "id", - "livemode", - "object", - "permissions" - ], - "title": "BankConnectionsResourceLinkAccountSession", - "type": "object", - "x-expandableFields": [ - "account_holder", - "accounts", - "filters" - ], - "x-resourceId": "financial_connections.session" - }, - "financial_connections.transaction": { - "description": "A Transaction represents a real transaction that affects a Financial Connections Account balance.", - "properties": { - "account": { - "description": "The ID of the Financial Connections Account this transaction belongs to.", - "maxLength": 5000, - "type": "string" - }, - "amount": { - "description": "The amount of this transaction, in cents (or local equivalent).", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "The description of this transaction.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "financial_connections.transaction" - ], - "type": "string" - }, - "status": { - "description": "The status of the transaction.", - "enum": [ - "pending", - "posted", - "void" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/bank_connections_resource_transaction_resource_status_transitions" - }, - "transacted_at": { - "description": "Time at which the transaction was transacted. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "transaction_refresh": { - "description": "The token of the transaction refresh that last updated or created this transaction.", - "maxLength": 5000, - "type": "string" - }, - "updated": { - "description": "Time at which the object was last updated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "account", - "amount", - "currency", - "description", - "id", - "livemode", - "object", - "status", - "status_transitions", - "transacted_at", - "transaction_refresh", - "updated" - ], - "title": "BankConnectionsResourceTransaction", - "type": "object", - "x-expandableFields": [ - "status_transitions" - ], - "x-resourceId": "financial_connections.transaction" - }, - "financial_reporting_finance_report_run_run_parameters": { - "description": "", - "properties": { - "columns": { - "description": "The set of output columns requested for inclusion in the report run.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "connected_account": { - "description": "Connected account ID by which to filter the report run.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "Currency of objects to be included in the report run.", - "type": "string" - }, - "interval_end": { - "description": "Ending timestamp of data to be included in the report run. Can be any UTC timestamp between 1 second after the user specified `interval_start` and 1 second before this report's last `data_available_end` value.", - "format": "unix-time", - "type": "integer" - }, - "interval_start": { - "description": "Starting timestamp of data to be included in the report run. Can be any UTC timestamp between 1 second after this report's `data_available_start` and 1 second before the user specified `interval_end` value.", - "format": "unix-time", - "type": "integer" - }, - "payout": { - "description": "Payout ID by which to filter the report run.", - "maxLength": 5000, - "type": "string" - }, - "reporting_category": { - "description": "Category of balance transactions to be included in the report run.", - "maxLength": 5000, - "type": "string" - }, - "timezone": { - "description": "Defaults to `Etc/UTC`. The output timezone for all timestamps in the report. A list of possible time zone values is maintained at the [IANA Time Zone Database](http://www.iana.org/time-zones). Has no effect on `interval_start` or `interval_end`.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "FinancialReportingFinanceReportRunRunParameters", - "type": "object", - "x-expandableFields": [] - }, - "forwarded_request_context": { - "description": "Metadata about the forwarded request.", - "properties": { - "destination_duration": { - "description": "The time it took in milliseconds for the destination endpoint to respond.", - "type": "integer" - }, - "destination_ip_address": { - "description": "The IP address of the destination.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "destination_duration", - "destination_ip_address" - ], - "title": "ForwardedRequestContext", - "type": "object", - "x-expandableFields": [] - }, - "forwarded_request_details": { - "description": "Details about the request forwarded to the destination endpoint.", - "properties": { - "body": { - "description": "The body payload to send to the destination endpoint.", - "maxLength": 5000, - "type": "string" - }, - "headers": { - "description": "The headers to include in the forwarded request. Can be omitted if no additional headers (excluding Stripe-generated ones such as the Content-Type header) should be included.", - "items": { - "$ref": "#/components/schemas/forwarded_request_header" - }, - "type": "array" - }, - "http_method": { - "description": "The HTTP method used to call the destination endpoint.", - "enum": [ - "POST" - ], - "type": "string" - } - }, - "required": [ - "body", - "headers", - "http_method" - ], - "title": "ForwardedRequestDetails", - "type": "object", - "x-expandableFields": [ - "headers" - ] - }, - "forwarded_request_header": { - "description": "Header data.", - "properties": { - "name": { - "description": "The header name.", - "maxLength": 5000, - "type": "string" - }, - "value": { - "description": "The header value.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "ForwardedRequestHeader", - "type": "object", - "x-expandableFields": [] - }, - "forwarded_response_details": { - "description": "Details about the response from the destination endpoint.", - "properties": { - "body": { - "description": "The response body from the destination endpoint to Stripe.", - "maxLength": 5000, - "type": "string" - }, - "headers": { - "description": "HTTP headers that the destination endpoint returned.", - "items": { - "$ref": "#/components/schemas/forwarded_request_header" - }, - "type": "array" - }, - "status": { - "description": "The HTTP status code that the destination endpoint returned.", - "type": "integer" - } - }, - "required": [ - "body", - "headers", - "status" - ], - "title": "ForwardedResponseDetails", - "type": "object", - "x-expandableFields": [ - "headers" - ] - }, - "forwarding.request": { - "description": "Instructs Stripe to make a request on your behalf using the destination URL. The destination URL\nis activated by Stripe at the time of onboarding. Stripe verifies requests with your credentials\nprovided during onboarding, and injects card details from the payment_method into the request.\n\nStripe redacts all sensitive fields and headers, including authentication credentials and card numbers,\nbefore storing the request and response data in the forwarding Request object, which are subject to a\n30-day retention period.\n\nYou can provide a Stripe idempotency key to make sure that requests with the same key result in only one\noutbound request. The Stripe idempotency key provided should be unique and different from any idempotency\nkeys provided on the underlying third-party request.\n\nForwarding Requests are synchronous requests that return a response or time out according to\nStripe’s limits.\n\nRelated guide: [Forward card details to third-party API endpoints](https://docs.stripe.com/payments/forwarding).", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "forwarding.request" - ], - "type": "string" - }, - "payment_method": { - "description": "The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed.", - "maxLength": 5000, - "type": "string" - }, - "replacements": { - "description": "The field kinds to be replaced in the forwarded request.", - "items": { - "enum": [ - "card_cvc", - "card_expiry", - "card_number", - "cardholder_name" - ], - "type": "string" - }, - "type": "array" - }, - "request_context": { - "anyOf": [ - { - "$ref": "#/components/schemas/forwarded_request_context" - } - ], - "description": "Context about the request from Stripe's servers to the destination endpoint.", - "nullable": true - }, - "request_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/forwarded_request_details" - } - ], - "description": "The request that was sent to the destination endpoint. We redact any sensitive fields.", - "nullable": true - }, - "response_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/forwarded_response_details" - } - ], - "description": "The response that the destination endpoint returned to us. We redact any sensitive fields.", - "nullable": true - }, - "url": { - "description": "The destination URL for the forwarded request. Must be supported by the config.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "payment_method", - "replacements" - ], - "title": "ForwardingRequest", - "type": "object", - "x-expandableFields": [ - "request_context", - "request_details", - "response_details" - ], - "x-resourceId": "forwarding.request" - }, - "funding_instructions": { - "description": "Each customer has a [`balance`](https://stripe.com/docs/api/customers/object#customer_object-balance) that is\nautomatically applied to future invoices and payments using the `customer_balance` payment method.\nCustomers can fund this balance by initiating a bank transfer to any account in the\n`financial_addresses` field.\nRelated guide: [Customer balance funding instructions](https://stripe.com/docs/payments/customer-balance/funding-instructions)", - "properties": { - "bank_transfer": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "funding_type": { - "description": "The `funding_type` of the returned instructions", - "enum": [ - "bank_transfer" - ], - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "funding_instructions" - ], - "type": "string" - } - }, - "required": [ - "bank_transfer", - "currency", - "funding_type", - "livemode", - "object" - ], - "title": "CustomerBalanceFundingInstructionsCustomerBalanceFundingInstructions", - "type": "object", - "x-expandableFields": [ - "bank_transfer" - ], - "x-resourceId": "funding_instructions" - }, - "funding_instructions_bank_transfer": { - "description": "", - "properties": { - "country": { - "description": "The country of the bank account to fund", - "maxLength": 5000, - "type": "string" - }, - "financial_addresses": { - "description": "A list of financial addresses that can be used to fund a particular balance", - "items": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_financial_address" - }, - "type": "array" - }, - "type": { - "description": "The bank_transfer type", - "enum": [ - "eu_bank_transfer", - "jp_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "country", - "financial_addresses", - "type" - ], - "title": "FundingInstructionsBankTransfer", - "type": "object", - "x-expandableFields": [ - "financial_addresses" - ] - }, - "funding_instructions_bank_transfer_aba_record": { - "description": "ABA Records contain U.S. bank account details per the ABA format.", - "properties": { - "account_number": { - "description": "The ABA account number", - "maxLength": 5000, - "type": "string" - }, - "bank_name": { - "description": "The bank name", - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "description": "The ABA routing number", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bank_name", - "routing_number" - ], - "title": "FundingInstructionsBankTransferABARecord", - "type": "object", - "x-expandableFields": [] - }, - "funding_instructions_bank_transfer_financial_address": { - "description": "FinancialAddresses contain identifying information that resolves to a FinancialAccount.", - "properties": { - "aba": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_aba_record" - }, - "iban": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_iban_record" - }, - "sort_code": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_sort_code_record" - }, - "spei": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_spei_record" - }, - "supported_networks": { - "description": "The payment networks supported by this FinancialAddress", - "items": { - "enum": [ - "ach", - "bacs", - "domestic_wire_us", - "fps", - "sepa", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "swift": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_swift_record" - }, - "type": { - "description": "The type of financial address", - "enum": [ - "aba", - "iban", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "zengin": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_zengin_record" - } - }, - "required": [ - "type" - ], - "title": "FundingInstructionsBankTransferFinancialAddress", - "type": "object", - "x-expandableFields": [ - "aba", - "iban", - "sort_code", - "spei", - "swift", - "zengin" - ] - }, - "funding_instructions_bank_transfer_iban_record": { - "description": "Iban Records contain E.U. bank account details per the SEPA format.", - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account", - "maxLength": 5000, - "type": "string" - }, - "bic": { - "description": "The BIC/SWIFT code of the account.", - "maxLength": 5000, - "type": "string" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "iban": { - "description": "The IBAN of the account.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_holder_name", - "bic", - "country", - "iban" - ], - "title": "FundingInstructionsBankTransferIbanRecord", - "type": "object", - "x-expandableFields": [] - }, - "funding_instructions_bank_transfer_sort_code_record": { - "description": "Sort Code Records contain U.K. bank account details per the sort code format.", - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account", - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "description": "The account number", - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "description": "The six-digit sort code", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_holder_name", - "account_number", - "sort_code" - ], - "title": "FundingInstructionsBankTransferSortCodeRecord", - "type": "object", - "x-expandableFields": [] - }, - "funding_instructions_bank_transfer_spei_record": { - "description": "SPEI Records contain Mexico bank account details per the SPEI format.", - "properties": { - "bank_code": { - "description": "The three-digit bank code", - "maxLength": 5000, - "type": "string" - }, - "bank_name": { - "description": "The short banking institution name", - "maxLength": 5000, - "type": "string" - }, - "clabe": { - "description": "The CLABE number", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "bank_code", - "bank_name", - "clabe" - ], - "title": "FundingInstructionsBankTransferSpeiRecord", - "type": "object", - "x-expandableFields": [] - }, - "funding_instructions_bank_transfer_swift_record": { - "description": "SWIFT Records contain U.S. bank account details per the SWIFT format.", - "properties": { - "account_number": { - "description": "The account number", - "maxLength": 5000, - "type": "string" - }, - "bank_name": { - "description": "The bank name", - "maxLength": 5000, - "type": "string" - }, - "swift_code": { - "description": "The SWIFT code", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bank_name", - "swift_code" - ], - "title": "FundingInstructionsBankTransferSwiftRecord", - "type": "object", - "x-expandableFields": [] - }, - "funding_instructions_bank_transfer_zengin_record": { - "description": "Zengin Records contain Japan bank account details per the Zengin format.", - "properties": { - "account_holder_name": { - "description": "The account holder name", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_number": { - "description": "The account number", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "The bank account type. In Japan, this can only be `futsu` or `toza`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_code": { - "description": "The bank code of the account", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "The bank name of the account", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "branch_code": { - "description": "The branch code of the account", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "branch_name": { - "description": "The branch name of the account", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "FundingInstructionsBankTransferZenginRecord", - "type": "object", - "x-expandableFields": [] - }, - "gelato_data_document_report_date_of_birth": { - "description": "Point in Time", - "properties": { - "day": { - "description": "Numerical day between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "Numerical month between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year.", - "nullable": true, - "type": "integer" - } - }, - "title": "GelatoDataDocumentReportDateOfBirth", - "type": "object", - "x-expandableFields": [] - }, - "gelato_data_document_report_expiration_date": { - "description": "Point in Time", - "properties": { - "day": { - "description": "Numerical day between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "Numerical month between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year.", - "nullable": true, - "type": "integer" - } - }, - "title": "GelatoDataDocumentReportExpirationDate", - "type": "object", - "x-expandableFields": [] - }, - "gelato_data_document_report_issued_date": { - "description": "Point in Time", - "properties": { - "day": { - "description": "Numerical day between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "Numerical month between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year.", - "nullable": true, - "type": "integer" - } - }, - "title": "GelatoDataDocumentReportIssuedDate", - "type": "object", - "x-expandableFields": [] - }, - "gelato_data_id_number_report_date": { - "description": "Point in Time", - "properties": { - "day": { - "description": "Numerical day between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "Numerical month between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year.", - "nullable": true, - "type": "integer" - } - }, - "title": "GelatoDataIdNumberReportDate", - "type": "object", - "x-expandableFields": [] - }, - "gelato_data_verified_outputs_date": { - "description": "Point in Time", - "properties": { - "day": { - "description": "Numerical day between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "Numerical month between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year.", - "nullable": true, - "type": "integer" - } - }, - "title": "GelatoDataVerifiedOutputsDate", - "type": "object", - "x-expandableFields": [] - }, - "gelato_document_report": { - "description": "Result from a document check", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Address as it appears in the document.", - "nullable": true - }, - "dob": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_data_document_report_date_of_birth" - } - ], - "description": "Date of birth as it appears in the document.", - "nullable": true - }, - "error": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_document_report_error" - } - ], - "description": "Details on the verification error. Present when status is `unverified`.", - "nullable": true - }, - "expiration_date": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_data_document_report_expiration_date" - } - ], - "description": "Expiration date of the document.", - "nullable": true - }, - "files": { - "description": "Array of [File](https://stripe.com/docs/api/files) ids containing images for this document.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "first_name": { - "description": "First name as it appears in the document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issued_date": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_data_document_report_issued_date" - } - ], - "description": "Issued date of the document.", - "nullable": true - }, - "issuing_country": { - "description": "Issuing country of the document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last_name": { - "description": "Last name as it appears in the document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "number": { - "description": "Document ID number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Status of this `document` check.", - "enum": [ - "unverified", - "verified" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": { - "description": "Type of the document.", - "enum": [ - "driving_license", - "id_card", - "passport" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "GelatoDocumentReport", - "type": "object", - "x-expandableFields": [ - "address", - "dob", - "error", - "expiration_date", - "issued_date" - ] - }, - "gelato_document_report_error": { - "description": "", - "properties": { - "code": { - "description": "A short machine-readable string giving the reason for the verification failure.", - "enum": [ - "document_expired", - "document_type_not_supported", - "document_unverified_other" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "reason": { - "description": "A human-readable message giving the reason for the failure. These messages can be shown to your users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoDocumentReportError", - "type": "object", - "x-expandableFields": [] - }, - "gelato_email_report": { - "description": "Result from a email check", - "properties": { - "email": { - "description": "Email to be verified.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "error": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_email_report_error" - } - ], - "description": "Details on the verification error. Present when status is `unverified`.", - "nullable": true - }, - "status": { - "description": "Status of this `email` check.", - "enum": [ - "unverified", - "verified" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "status" - ], - "title": "GelatoEmailReport", - "type": "object", - "x-expandableFields": [ - "error" - ] - }, - "gelato_email_report_error": { - "description": "", - "properties": { - "code": { - "description": "A short machine-readable string giving the reason for the verification failure.", - "enum": [ - "email_unverified_other", - "email_verification_declined" - ], - "nullable": true, - "type": "string" - }, - "reason": { - "description": "A human-readable message giving the reason for the failure. These messages can be shown to your users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoEmailReportError", - "type": "object", - "x-expandableFields": [] - }, - "gelato_id_number_report": { - "description": "Result from an id_number check", - "properties": { - "dob": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_data_id_number_report_date" - } - ], - "description": "Date of birth.", - "nullable": true - }, - "error": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_id_number_report_error" - } - ], - "description": "Details on the verification error. Present when status is `unverified`.", - "nullable": true - }, - "first_name": { - "description": "First name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id_number": { - "description": "ID number. When `id_number_type` is `us_ssn`, only the last 4 digits are present.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id_number_type": { - "description": "Type of ID number.", - "enum": [ - "br_cpf", - "sg_nric", - "us_ssn" - ], - "nullable": true, - "type": "string" - }, - "last_name": { - "description": "Last name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Status of this `id_number` check.", - "enum": [ - "unverified", - "verified" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "status" - ], - "title": "GelatoIdNumberReport", - "type": "object", - "x-expandableFields": [ - "dob", - "error" - ] - }, - "gelato_id_number_report_error": { - "description": "", - "properties": { - "code": { - "description": "A short machine-readable string giving the reason for the verification failure.", - "enum": [ - "id_number_insufficient_document_data", - "id_number_mismatch", - "id_number_unverified_other" - ], - "nullable": true, - "type": "string" - }, - "reason": { - "description": "A human-readable message giving the reason for the failure. These messages can be shown to your users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoIdNumberReportError", - "type": "object", - "x-expandableFields": [] - }, - "gelato_phone_report": { - "description": "Result from a phone check", - "properties": { - "error": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_phone_report_error" - } - ], - "description": "Details on the verification error. Present when status is `unverified`.", - "nullable": true - }, - "phone": { - "description": "Phone to be verified.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Status of this `phone` check.", - "enum": [ - "unverified", - "verified" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "status" - ], - "title": "GelatoPhoneReport", - "type": "object", - "x-expandableFields": [ - "error" - ] - }, - "gelato_phone_report_error": { - "description": "", - "properties": { - "code": { - "description": "A short machine-readable string giving the reason for the verification failure.", - "enum": [ - "phone_unverified_other", - "phone_verification_declined" - ], - "nullable": true, - "type": "string" - }, - "reason": { - "description": "A human-readable message giving the reason for the failure. These messages can be shown to your users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoPhoneReportError", - "type": "object", - "x-expandableFields": [] - }, - "gelato_provided_details": { - "description": "", - "properties": { - "email": { - "description": "Email of user being verified", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "Phone number of user being verified", - "maxLength": 5000, - "type": "string" - } - }, - "title": "GelatoProvidedDetails", - "type": "object", - "x-expandableFields": [] - }, - "gelato_report_document_options": { - "description": "", - "properties": { - "allowed_types": { - "description": "Array of strings of allowed identity document types. If the provided identity document isn’t one of the allowed types, the verification check will fail with a document_type_not_allowed error code.", - "items": { - "enum": [ - "driving_license", - "id_card", - "passport" - ], - "type": "string" - }, - "type": "array" - }, - "require_id_number": { - "description": "Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document’s extracted name and date of birth.", - "type": "boolean" - }, - "require_live_capture": { - "description": "Disable image uploads, identity document images have to be captured using the device’s camera.", - "type": "boolean" - }, - "require_matching_selfie": { - "description": "Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user’s face. [Learn more](https://stripe.com/docs/identity/selfie).", - "type": "boolean" - } - }, - "title": "GelatoReportDocumentOptions", - "type": "object", - "x-expandableFields": [] - }, - "gelato_report_id_number_options": { - "description": "", - "properties": {}, - "title": "GelatoReportIdNumberOptions", - "type": "object", - "x-expandableFields": [] - }, - "gelato_selfie_report": { - "description": "Result from a selfie check", - "properties": { - "document": { - "description": "ID of the [File](https://stripe.com/docs/api/files) holding the image of the identity document used in this check.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "error": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_selfie_report_error" - } - ], - "description": "Details on the verification error. Present when status is `unverified`.", - "nullable": true - }, - "selfie": { - "description": "ID of the [File](https://stripe.com/docs/api/files) holding the image of the selfie used in this check.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Status of this `selfie` check.", - "enum": [ - "unverified", - "verified" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "status" - ], - "title": "GelatoSelfieReport", - "type": "object", - "x-expandableFields": [ - "error" - ] - }, - "gelato_selfie_report_error": { - "description": "", - "properties": { - "code": { - "description": "A short machine-readable string giving the reason for the verification failure.", - "enum": [ - "selfie_document_missing_photo", - "selfie_face_mismatch", - "selfie_manipulated", - "selfie_unverified_other" - ], - "nullable": true, - "type": "string" - }, - "reason": { - "description": "A human-readable message giving the reason for the failure. These messages can be shown to your users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoSelfieReportError", - "type": "object", - "x-expandableFields": [] - }, - "gelato_session_document_options": { - "description": "", - "properties": { - "allowed_types": { - "description": "Array of strings of allowed identity document types. If the provided identity document isn’t one of the allowed types, the verification check will fail with a document_type_not_allowed error code.", - "items": { - "enum": [ - "driving_license", - "id_card", - "passport" - ], - "type": "string" - }, - "type": "array" - }, - "require_id_number": { - "description": "Collect an ID number and perform an [ID number check](https://stripe.com/docs/identity/verification-checks?type=id-number) with the document’s extracted name and date of birth.", - "type": "boolean" - }, - "require_live_capture": { - "description": "Disable image uploads, identity document images have to be captured using the device’s camera.", - "type": "boolean" - }, - "require_matching_selfie": { - "description": "Capture a face image and perform a [selfie check](https://stripe.com/docs/identity/verification-checks?type=selfie) comparing a photo ID and a picture of your user’s face. [Learn more](https://stripe.com/docs/identity/selfie).", - "type": "boolean" - } - }, - "title": "GelatoSessionDocumentOptions", - "type": "object", - "x-expandableFields": [] - }, - "gelato_session_email_options": { - "description": "", - "properties": { - "require_verification": { - "description": "Request one time password verification of `provided_details.email`.", - "type": "boolean" - } - }, - "title": "GelatoSessionEmailOptions", - "type": "object", - "x-expandableFields": [] - }, - "gelato_session_id_number_options": { - "description": "", - "properties": {}, - "title": "GelatoSessionIdNumberOptions", - "type": "object", - "x-expandableFields": [] - }, - "gelato_session_last_error": { - "description": "Shows last VerificationSession error", - "properties": { - "code": { - "description": "A short machine-readable string giving the reason for the verification or user-session failure.", - "enum": [ - "abandoned", - "consent_declined", - "country_not_supported", - "device_not_supported", - "document_expired", - "document_type_not_supported", - "document_unverified_other", - "email_unverified_other", - "email_verification_declined", - "id_number_insufficient_document_data", - "id_number_mismatch", - "id_number_unverified_other", - "phone_unverified_other", - "phone_verification_declined", - "selfie_document_missing_photo", - "selfie_face_mismatch", - "selfie_manipulated", - "selfie_unverified_other", - "under_supported_age" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "reason": { - "description": "A message that explains the reason for verification or user-session failure.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoSessionLastError", - "type": "object", - "x-expandableFields": [] - }, - "gelato_session_phone_options": { - "description": "", - "properties": { - "require_verification": { - "description": "Request one time password verification of `provided_details.phone`.", - "type": "boolean" - } - }, - "title": "GelatoSessionPhoneOptions", - "type": "object", - "x-expandableFields": [] - }, - "gelato_verification_report_options": { - "description": "", - "properties": { - "document": { - "$ref": "#/components/schemas/gelato_report_document_options" - }, - "id_number": { - "$ref": "#/components/schemas/gelato_report_id_number_options" - } - }, - "title": "GelatoVerificationReportOptions", - "type": "object", - "x-expandableFields": [ - "document", - "id_number" - ] - }, - "gelato_verification_session_options": { - "description": "", - "properties": { - "document": { - "$ref": "#/components/schemas/gelato_session_document_options" - }, - "email": { - "$ref": "#/components/schemas/gelato_session_email_options" - }, - "id_number": { - "$ref": "#/components/schemas/gelato_session_id_number_options" - }, - "phone": { - "$ref": "#/components/schemas/gelato_session_phone_options" - } - }, - "title": "GelatoVerificationSessionOptions", - "type": "object", - "x-expandableFields": [ - "document", - "email", - "id_number", - "phone" - ] - }, - "gelato_verified_outputs": { - "description": "", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "The user's verified address.", - "nullable": true - }, - "dob": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_data_verified_outputs_date" - } - ], - "description": "The user’s verified date of birth.", - "nullable": true - }, - "email": { - "description": "The user's verified email address", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "first_name": { - "description": "The user's verified first name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id_number": { - "description": "The user's verified id number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id_number_type": { - "description": "The user's verified id number type.", - "enum": [ - "br_cpf", - "sg_nric", - "us_ssn" - ], - "nullable": true, - "type": "string" - }, - "last_name": { - "description": "The user's verified last name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "phone": { - "description": "The user's verified phone number", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "GelatoVerifiedOutputs", - "type": "object", - "x-expandableFields": [ - "address", - "dob" - ] - }, - "identity.verification_report": { - "description": "A VerificationReport is the result of an attempt to collect and verify data from a user.\nThe collection of verification checks performed is determined from the `type` and `options`\nparameters used. You can find the result of each verification check performed in the\nappropriate sub-resource: `document`, `id_number`, `selfie`.\n\nEach VerificationReport contains a copy of any data collected by the user as well as\nreference IDs which can be used to access collected images through the [FileUpload](https://stripe.com/docs/api/files)\nAPI. To configure and create VerificationReports, use the\n[VerificationSession](https://stripe.com/docs/api/identity/verification_sessions) API.\n\nRelated guide: [Accessing verification results](https://stripe.com/docs/identity/verification-sessions#results).", - "properties": { - "client_reference_id": { - "description": "A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "document": { - "$ref": "#/components/schemas/gelato_document_report" - }, - "email": { - "$ref": "#/components/schemas/gelato_email_report" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "id_number": { - "$ref": "#/components/schemas/gelato_id_number_report" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "identity.verification_report" - ], - "type": "string" - }, - "options": { - "$ref": "#/components/schemas/gelato_verification_report_options" - }, - "phone": { - "$ref": "#/components/schemas/gelato_phone_report" - }, - "selfie": { - "$ref": "#/components/schemas/gelato_selfie_report" - }, - "type": { - "description": "Type of report.", - "enum": [ - "document", - "id_number", - "verification_flow" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "verification_flow": { - "description": "The configuration token of a Verification Flow from the dashboard.", - "maxLength": 5000, - "type": "string" - }, - "verification_session": { - "description": "ID of the VerificationSession that created this report.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "type" - ], - "title": "GelatoVerificationReport", - "type": "object", - "x-expandableFields": [ - "document", - "email", - "id_number", - "options", - "phone", - "selfie" - ], - "x-resourceId": "identity.verification_report" - }, - "identity.verification_session": { - "description": "A VerificationSession guides you through the process of collecting and verifying the identities\nof your users. It contains details about the type of verification, such as what [verification\ncheck](/docs/identity/verification-checks) to perform. Only create one VerificationSession for\neach verification in your system.\n\nA VerificationSession transitions through [multiple\nstatuses](/docs/identity/how-sessions-work) throughout its lifetime as it progresses through\nthe verification flow. The VerificationSession contains the user's verified data after\nverification checks are complete.\n\nRelated guide: [The Verification Sessions API](https://stripe.com/docs/identity/verification-sessions)", - "properties": { - "client_reference_id": { - "description": "A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "client_secret": { - "description": "The short-lived client secret used by Stripe.js to [show a verification modal](https://stripe.com/docs/js/identity/modal) inside your app. This client secret expires after 24 hours and can only be used once. Don’t store it, log it, embed it in a URL, or expose it to anyone other than the user. Make sure that you have TLS enabled on any page that includes the client secret. Refer to our docs on [passing the client secret to the frontend](https://stripe.com/docs/identity/verification-sessions#client-secret) to learn more.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last_error": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_session_last_error" - } - ], - "description": "If present, this property tells you the last error encountered when processing the verification.", - "nullable": true - }, - "last_verification_report": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/identity.verification_report" - } - ], - "description": "ID of the most recent VerificationReport. [Learn more about accessing detailed verification results.](https://stripe.com/docs/identity/verification-sessions#results)", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/identity.verification_report" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "identity.verification_session" - ], - "type": "string" - }, - "options": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_verification_session_options" - } - ], - "description": "A set of options for the session’s verification checks.", - "nullable": true - }, - "provided_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_provided_details" - } - ], - "description": "Details provided about the user being verified. These details may be shown to the user.", - "nullable": true - }, - "redaction": { - "anyOf": [ - { - "$ref": "#/components/schemas/verification_session_redaction" - } - ], - "description": "Redaction status of this VerificationSession. If the VerificationSession is not redacted, this field will be null.", - "nullable": true - }, - "related_customer": { - "description": "Token referencing a Customer resource.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Status of this VerificationSession. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work).", - "enum": [ - "canceled", - "processing", - "requires_input", - "verified" - ], - "type": "string" - }, - "type": { - "description": "The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed.", - "enum": [ - "document", - "id_number", - "verification_flow" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "url": { - "description": "The short-lived URL that you use to redirect a user to Stripe to submit their identity information. This URL expires after 48 hours and can only be used once. Don’t store it, log it, send it in emails or expose it to anyone other than the user. Refer to our docs on [verifying identity documents](https://stripe.com/docs/identity/verify-identity-documents?platform=web&type=redirect) to learn how to redirect users to Stripe.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verification_flow": { - "description": "The configuration token of a Verification Flow from the dashboard.", - "maxLength": 5000, - "type": "string" - }, - "verified_outputs": { - "anyOf": [ - { - "$ref": "#/components/schemas/gelato_verified_outputs" - } - ], - "description": "The user’s verified data.", - "nullable": true - } - }, - "required": [ - "created", - "id", - "livemode", - "metadata", - "object", - "status", - "type" - ], - "title": "GelatoVerificationSession", - "type": "object", - "x-expandableFields": [ - "last_error", - "last_verification_report", - "options", - "provided_details", - "redaction", - "verified_outputs" - ], - "x-resourceId": "identity.verification_session" - }, - "inbound_transfers": { - "description": "", - "properties": { - "billing_details": { - "$ref": "#/components/schemas/treasury_shared_resource_billing_details" - }, - "type": { - "description": "The type of the payment method used in the InboundTransfer.", - "enum": [ - "us_bank_account" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "$ref": "#/components/schemas/inbound_transfers_payment_method_details_us_bank_account" - } - }, - "required": [ - "billing_details", - "type" - ], - "title": "InboundTransfers", - "type": "object", - "x-expandableFields": [ - "billing_details", - "us_bank_account" - ] - }, - "inbound_transfers_payment_method_details_us_bank_account": { - "description": "", - "properties": { - "account_holder_type": { - "description": "Account holder type: individual or company.", - "enum": [ - "company", - "individual" - ], - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "Account type: checkings or savings. Defaults to checking if omitted.", - "enum": [ - "checking", - "savings" - ], - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "ID of the mandate used to make this payment.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "network": { - "description": "The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type.", - "enum": [ - "ach" - ], - "type": "string" - }, - "routing_number": { - "description": "Routing number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "network" - ], - "title": "inbound_transfers_payment_method_details_us_bank_account", - "type": "object", - "x-expandableFields": [ - "mandate" - ] - }, - "internal_card": { - "description": "", - "properties": { - "brand": { - "description": "Brand of the card used in the transaction", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country of the card", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two digit number representing the card's expiration month", - "nullable": true, - "type": "integer" - }, - "exp_year": { - "description": "Two digit number representing the card's expiration year", - "nullable": true, - "type": "integer" - }, - "last4": { - "description": "The last 4 digits of the card", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "internal_card", - "type": "object", - "x-expandableFields": [] - }, - "invoice": { - "description": "Invoices are statements of amounts owed by a customer, and are either\ngenerated one-off, or generated periodically from a subscription.\n\nThey contain [invoice items](https://stripe.com/docs/api#invoiceitems), and proration adjustments\nthat may be caused by subscription upgrades/downgrades (if necessary).\n\nIf your invoice is configured to be billed through automatic charges,\nStripe automatically finalizes your invoice and attempts payment. Note\nthat finalizing the invoice,\n[when automatic](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection), does\nnot happen immediately as the invoice is created. Stripe waits\nuntil one hour after the last webhook was successfully sent (or the last\nwebhook timed out after failing). If you (and the platforms you may have\nconnected to) have no webhooks configured, Stripe waits one hour after\ncreation to finalize the invoice.\n\nIf your invoice is configured to be billed by sending an email, then based on your\n[email settings](https://dashboard.stripe.com/account/billing/automatic),\nStripe will email the invoice to your customer and await payment. These\nemails can contain a link to a hosted page to pay the invoice.\n\nStripe applies any customer credit on the account before determining the\namount due for the invoice (i.e., the amount that will be actually\ncharged). If the amount due for the invoice is less than Stripe's [minimum allowed charge\nper currency](/docs/currencies#minimum-and-maximum-charge-amounts), the\ninvoice is automatically marked paid, and we add the amount due to the\ncustomer's credit balance which is applied to the next invoice.\n\nMore details on the customer's credit balance are\n[here](https://stripe.com/docs/billing/customer/balance).\n\nRelated guide: [Send invoices to customers](https://stripe.com/docs/billing/invoices/sending)", - "properties": { - "account_country": { - "description": "The country of the business associated with this invoice, most often the business creating the invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_name": { - "description": "The public name of the business associated with this invoice, most often the business creating the invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_tax_ids": { - "description": "The account tax IDs associated with the invoice. Only editable when the invoice is a draft.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "amount_due": { - "description": "Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`.", - "type": "integer" - }, - "amount_paid": { - "description": "The amount, in cents (or local equivalent), that was paid.", - "type": "integer" - }, - "amount_remaining": { - "description": "The difference between amount_due and amount_paid, in cents (or local equivalent).", - "type": "integer" - }, - "amount_shipping": { - "description": "This is the sum of all the shipping amounts.", - "type": "integer" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ], - "description": "ID of the Connect Application that created the invoice.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ] - } - }, - "application_fee_amount": { - "description": "The fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.", - "nullable": true, - "type": "integer" - }, - "attempt_count": { - "description": "Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule. If a failure is returned with a non-retryable return code, the invoice can no longer be retried unless a new payment method is obtained. Retries will continue to be scheduled, and attempt_count will continue to increment, but retries will only be executed if a new payment method is obtained.", - "type": "integer" - }, - "attempted": { - "description": "Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users.", - "type": "boolean" - }, - "auto_advance": { - "description": "Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action.", - "type": "boolean" - }, - "automatic_tax": { - "$ref": "#/components/schemas/automatic_tax" - }, - "billing_reason": { - "description": "Indicates the reason why the invoice was created.\n\n* `manual`: Unrelated to a subscription, for example, created via the invoice editor.\n* `subscription`: No longer in use. Applies to subscriptions from before May 2018 where no distinction was made between updates, cycles, and thresholds.\n* `subscription_create`: A new subscription was created.\n* `subscription_cycle`: A subscription advanced into a new period.\n* `subscription_threshold`: A subscription reached a billing threshold.\n* `subscription_update`: A subscription was updated.\n* `upcoming`: Reserved for simulated invoices, per the upcoming invoice endpoint.", - "enum": [ - "automatic_pending_invoice_item_invoice", - "manual", - "quote_accept", - "subscription", - "subscription_create", - "subscription_cycle", - "subscription_threshold", - "subscription_update", - "upcoming" - ], - "nullable": true, - "type": "string" - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the latest charge generated for this invoice, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "custom_fields": { - "description": "Custom fields displayed on the invoice.", - "items": { - "$ref": "#/components/schemas/invoice_setting_custom_field" - }, - "nullable": true, - "type": "array" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The ID of the customer who will be billed.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "customer_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "The customer's address. Until the invoice is finalized, this field will equal `customer.address`. Once the invoice is finalized, this field will no longer be updated.", - "nullable": true - }, - "customer_email": { - "description": "The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_name": { - "description": "The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_phone": { - "description": "The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_shipping": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping" - } - ], - "description": "The customer's shipping information. Until the invoice is finalized, this field will equal `customer.shipping`. Once the invoice is finalized, this field will no longer be updated.", - "nullable": true - }, - "customer_tax_exempt": { - "description": "The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated.", - "enum": [ - "exempt", - "none", - "reverse" - ], - "nullable": true, - "type": "string" - }, - "customer_tax_ids": { - "description": "The customer's tax IDs. Until the invoice is finalized, this field will contain the same tax IDs as `customer.tax_ids`. Once the invoice is finalized, this field will no longer be updated.", - "items": { - "$ref": "#/components/schemas/invoices_resource_invoice_tax_id" - }, - "nullable": true, - "type": "array" - }, - "default_payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "default_source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "description": "ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ] - }, - "x-stripeBypassValidation": true - }, - "default_tax_rates": { - "description": "The tax rates applied to this invoice, if any.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "type": "array" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discount": { - "anyOf": [ - { - "$ref": "#/components/schemas/discount" - } - ], - "description": "Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts.", - "nullable": true - }, - "discounts": { - "description": "The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - }, - { - "$ref": "#/components/schemas/deleted_discount" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - }, - { - "$ref": "#/components/schemas/deleted_discount" - } - ] - } - }, - "type": "array" - }, - "due_date": { - "description": "The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "effective_at": { - "description": "The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "ending_balance": { - "description": "Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.", - "nullable": true, - "type": "integer" - }, - "footer": { - "description": "Footer displayed on the invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "from_invoice": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_resource_from_invoice" - } - ], - "description": "Details of the invoice that was cloned. See the [revision documentation](https://stripe.com/docs/invoicing/invoice-revisions) for more details.", - "nullable": true - }, - "hosted_invoice_url": { - "description": "The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object. This property is always present unless the invoice is an upcoming invoice. See [Retrieve an upcoming invoice](https://stripe.com/docs/api/invoices/upcoming) for more details.", - "maxLength": 5000, - "type": "string" - }, - "invoice_pdf": { - "description": "The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuer": { - "$ref": "#/components/schemas/connect_account_reference" - }, - "last_finalization_error": { - "anyOf": [ - { - "$ref": "#/components/schemas/api_errors" - } - ], - "description": "The error encountered during the previous attempt to finalize the invoice. This field is cleared when the invoice is successfully finalized.", - "nullable": true - }, - "latest_revision": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "The ID of the most recent non-draft revision of this invoice", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "lines": { - "description": "The individual line items that make up the invoice. `lines` is sorted as follows: (1) pending invoice items (including prorations) in reverse chronological order, (2) subscription items in reverse chronological order, and (3) invoice items added after invoice creation in chronological order.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "InvoiceLinesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "next_payment_attempt": { - "description": "The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "number": { - "description": "A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "invoice" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "paid": { - "description": "Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.", - "type": "boolean" - }, - "paid_out_of_band": { - "description": "Returns true if the invoice was manually marked paid, returns false if the invoice hasn't been paid yet or was paid on Stripe.", - "type": "boolean" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "payment_settings": { - "$ref": "#/components/schemas/invoices_payment_settings" - }, - "period_end": { - "description": "End of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the [line item period](/api/invoices/line_item#invoice_line_item_object-period) to get the service period for each price.", - "format": "unix-time", - "type": "integer" - }, - "period_start": { - "description": "Start of the usage period during which invoice items were added to this invoice. This looks back one period for a subscription invoice. Use the [line item period](/api/invoices/line_item#invoice_line_item_object-period) to get the service period for each price.", - "format": "unix-time", - "type": "integer" - }, - "post_payment_credit_notes_amount": { - "description": "Total amount of all post-payment credit notes issued for this invoice.", - "type": "integer" - }, - "pre_payment_credit_notes_amount": { - "description": "Total amount of all pre-payment credit notes issued for this invoice.", - "type": "integer" - }, - "quote": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/quote" - } - ], - "description": "The quote this invoice was generated from.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/quote" - } - ] - } - }, - "receipt_number": { - "description": "This is the transaction number that appears on email receipts sent for this invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "rendering": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_resource_invoice_rendering" - } - ], - "description": "The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page.", - "nullable": true - }, - "shipping_cost": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_resource_shipping_cost" - } - ], - "description": "The details of the cost of shipping, including the ShippingRate applied on the invoice.", - "nullable": true - }, - "shipping_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping" - } - ], - "description": "Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer.", - "nullable": true - }, - "starting_balance": { - "description": "Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance. For revision invoices, this also includes any customer balance that was applied to the original invoice.", - "type": "integer" - }, - "statement_descriptor": { - "description": "Extra information about an invoice for the customer's credit card statement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview)", - "enum": [ - "draft", - "open", - "paid", - "uncollectible", - "void" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "status_transitions": { - "$ref": "#/components/schemas/invoices_resource_status_transitions" - }, - "subscription": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription" - } - ], - "description": "The subscription that this invoice was prepared for, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription" - } - ] - } - }, - "subscription_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_details_data" - } - ], - "description": "Details about the subscription that created this invoice.", - "nullable": true - }, - "subscription_proration_date": { - "description": "Only set for upcoming invoices that preview prorations. The time used to calculate prorations.", - "type": "integer" - }, - "subtotal": { - "description": "Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or exclusive tax is applied. Item discounts are already incorporated", - "type": "integer" - }, - "subtotal_excluding_tax": { - "description": "The integer amount in cents (or local equivalent) representing the subtotal of the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated", - "nullable": true, - "type": "integer" - }, - "tax": { - "description": "The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.", - "nullable": true, - "type": "integer" - }, - "test_clock": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ], - "description": "ID of the test clock this invoice belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ] - } - }, - "threshold_reason": { - "$ref": "#/components/schemas/invoice_threshold_reason" - }, - "total": { - "description": "Total after discounts and taxes.", - "type": "integer" - }, - "total_discount_amounts": { - "description": "The aggregate amounts calculated per discount across all line items.", - "items": { - "$ref": "#/components/schemas/discounts_resource_discount_amount" - }, - "nullable": true, - "type": "array" - }, - "total_excluding_tax": { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the invoice including all discounts but excluding all tax.", - "nullable": true, - "type": "integer" - }, - "total_tax_amounts": { - "description": "The aggregate amounts calculated per tax rate for all line items.", - "items": { - "$ref": "#/components/schemas/invoice_tax_amount" - }, - "type": "array" - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_transfer_data" - } - ], - "description": "The account (if any) the payment will be attributed to for tax reporting, and where funds from the payment will be transferred to for the invoice.", - "nullable": true - }, - "webhooks_delivered_at": { - "description": "Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have [been exhausted](https://stripe.com/docs/billing/webhooks#understand). This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount_due", - "amount_paid", - "amount_remaining", - "amount_shipping", - "attempt_count", - "attempted", - "automatic_tax", - "collection_method", - "created", - "currency", - "default_tax_rates", - "discounts", - "issuer", - "lines", - "livemode", - "object", - "paid", - "paid_out_of_band", - "payment_settings", - "period_end", - "period_start", - "post_payment_credit_notes_amount", - "pre_payment_credit_notes_amount", - "starting_balance", - "status_transitions", - "subtotal", - "total", - "total_tax_amounts" - ], - "title": "Invoice", - "type": "object", - "x-expandableFields": [ - "account_tax_ids", - "application", - "automatic_tax", - "charge", - "custom_fields", - "customer", - "customer_address", - "customer_shipping", - "customer_tax_ids", - "default_payment_method", - "default_source", - "default_tax_rates", - "discount", - "discounts", - "from_invoice", - "issuer", - "last_finalization_error", - "latest_revision", - "lines", - "on_behalf_of", - "payment_intent", - "payment_settings", - "quote", - "rendering", - "shipping_cost", - "shipping_details", - "status_transitions", - "subscription", - "subscription_details", - "test_clock", - "threshold_reason", - "total_discount_amounts", - "total_tax_amounts", - "transfer_data" - ], - "x-resourceId": "invoice" - }, - "invoice_installments_card": { - "description": "", - "properties": { - "enabled": { - "description": "Whether Installments are enabled for this Invoice.", - "nullable": true, - "type": "boolean" - } - }, - "title": "invoice_installments_card", - "type": "object", - "x-expandableFields": [] - }, - "invoice_item_threshold_reason": { - "description": "", - "properties": { - "line_item_ids": { - "description": "The IDs of the line items that triggered the threshold invoice.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "usage_gte": { - "description": "The quantity threshold boundary that applied to the given line item.", - "type": "integer" - } - }, - "required": [ - "line_item_ids", - "usage_gte" - ], - "title": "InvoiceItemThresholdReason", - "type": "object", - "x-expandableFields": [] - }, - "invoice_line_item_period": { - "description": "", - "properties": { - "end": { - "description": "The end of the period, which must be greater than or equal to the start. This value is inclusive.", - "format": "unix-time", - "type": "integer" - }, - "start": { - "description": "The start of the period. This value is inclusive.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "InvoiceLineItemPeriod", - "type": "object", - "x-expandableFields": [] - }, - "invoice_mandate_options_card": { - "description": "", - "properties": { - "amount": { - "description": "Amount to be charged for future payments.", - "nullable": true, - "type": "integer" - }, - "amount_type": { - "description": "One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.", - "enum": [ - "fixed", - "maximum" - ], - "nullable": true, - "type": "string" - }, - "description": { - "description": "A description of the mandate or subscription that is meant to be displayed to the customer.", - "maxLength": 200, - "nullable": true, - "type": "string" - } - }, - "title": "invoice_mandate_options_card", - "type": "object", - "x-expandableFields": [] - }, - "invoice_payment_method_options_acss_debit": { - "description": "", - "properties": { - "mandate_options": { - "$ref": "#/components/schemas/invoice_payment_method_options_acss_debit_mandate_options" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_acss_debit", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "invoice_payment_method_options_acss_debit_mandate_options": { - "description": "", - "properties": { - "transaction_type": { - "description": "Transaction type of the mandate.", - "enum": [ - "business", - "personal" - ], - "nullable": true, - "type": "string" - } - }, - "title": "invoice_payment_method_options_acss_debit_mandate_options", - "type": "object", - "x-expandableFields": [] - }, - "invoice_payment_method_options_bancontact": { - "description": "", - "properties": { - "preferred_language": { - "description": "Preferred language of the Bancontact authorization page that the customer is redirected to.", - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "required": [ - "preferred_language" - ], - "title": "invoice_payment_method_options_bancontact", - "type": "object", - "x-expandableFields": [] - }, - "invoice_payment_method_options_card": { - "description": "", - "properties": { - "installments": { - "$ref": "#/components/schemas/invoice_installments_card" - }, - "request_three_d_secure": { - "description": "We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.", - "enum": [ - "any", - "automatic", - "challenge" - ], - "nullable": true, - "type": "string" - } - }, - "title": "invoice_payment_method_options_card", - "type": "object", - "x-expandableFields": [ - "installments" - ] - }, - "invoice_payment_method_options_customer_balance": { - "description": "", - "properties": { - "bank_transfer": { - "$ref": "#/components/schemas/invoice_payment_method_options_customer_balance_bank_transfer" - }, - "funding_type": { - "description": "The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`.", - "enum": [ - "bank_transfer" - ], - "nullable": true, - "type": "string" - } - }, - "title": "invoice_payment_method_options_customer_balance", - "type": "object", - "x-expandableFields": [ - "bank_transfer" - ] - }, - "invoice_payment_method_options_customer_balance_bank_transfer": { - "description": "", - "properties": { - "eu_bank_transfer": { - "$ref": "#/components/schemas/invoice_payment_method_options_customer_balance_bank_transfer_eu_bank_transfer" - }, - "type": { - "description": "The bank transfer type that can be used for funding. Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.", - "nullable": true, - "type": "string" - } - }, - "title": "invoice_payment_method_options_customer_balance_bank_transfer", - "type": "object", - "x-expandableFields": [ - "eu_bank_transfer" - ] - }, - "invoice_payment_method_options_customer_balance_bank_transfer_eu_bank_transfer": { - "description": "", - "properties": { - "country": { - "description": "The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.", - "enum": [ - "BE", - "DE", - "ES", - "FR", - "IE", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "invoice_payment_method_options_customer_balance_bank_transfer_eu_bank_transfer", - "type": "object", - "x-expandableFields": [] - }, - "invoice_payment_method_options_konbini": { - "description": "", - "properties": {}, - "title": "invoice_payment_method_options_konbini", - "type": "object", - "x-expandableFields": [] - }, - "invoice_payment_method_options_sepa_debit": { - "description": "", - "properties": {}, - "title": "invoice_payment_method_options_sepa_debit", - "type": "object", - "x-expandableFields": [] - }, - "invoice_payment_method_options_us_bank_account": { - "description": "", - "properties": { - "financial_connections": { - "$ref": "#/components/schemas/invoice_payment_method_options_us_bank_account_linked_account_options" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_us_bank_account", - "type": "object", - "x-expandableFields": [ - "financial_connections" - ] - }, - "invoice_payment_method_options_us_bank_account_linked_account_options": { - "description": "", - "properties": { - "filters": { - "$ref": "#/components/schemas/invoice_payment_method_options_us_bank_account_linked_account_options_filters" - }, - "permissions": { - "description": "The list of permissions to request. The `payment_method` permission must be included.", - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "type": "string" - }, - "type": "array" - }, - "prefetch": { - "description": "Data features requested to be retrieved upon account creation.", - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - } - }, - "title": "invoice_payment_method_options_us_bank_account_linked_account_options", - "type": "object", - "x-expandableFields": [ - "filters" - ] - }, - "invoice_payment_method_options_us_bank_account_linked_account_options_filters": { - "description": "", - "properties": { - "account_subcategories": { - "description": "The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.", - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_payment_method_options_us_bank_account_linked_account_options_filters", - "type": "object", - "x-expandableFields": [] - }, - "invoice_rendering_pdf": { - "description": "", - "properties": { - "page_size": { - "description": "Page size of invoice pdf. Options include a4, letter, and auto. If set to auto, page size will be switched to a4 or letter based on customer locale.", - "enum": [ - "a4", - "auto", - "letter" - ], - "nullable": true, - "type": "string" - } - }, - "title": "InvoiceRenderingPdf", - "type": "object", - "x-expandableFields": [] - }, - "invoice_setting_custom_field": { - "description": "", - "properties": { - "name": { - "description": "The name of the custom field.", - "maxLength": 5000, - "type": "string" - }, - "value": { - "description": "The value of the custom field.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "InvoiceSettingCustomField", - "type": "object", - "x-expandableFields": [] - }, - "invoice_setting_customer_rendering_options": { - "description": "", - "properties": { - "amount_tax_display": { - "description": "How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "InvoiceSettingCustomerRenderingOptions", - "type": "object", - "x-expandableFields": [] - }, - "invoice_setting_customer_setting": { - "description": "", - "properties": { - "custom_fields": { - "description": "Default custom fields to be displayed on invoices for this customer.", - "items": { - "$ref": "#/components/schemas/invoice_setting_custom_field" - }, - "nullable": true, - "type": "array" - }, - "default_payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "footer": { - "description": "Default footer to be displayed on invoices for this customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "rendering_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_setting_customer_rendering_options" - } - ], - "description": "Default options for invoice PDF rendering for this customer.", - "nullable": true - } - }, - "title": "InvoiceSettingCustomerSetting", - "type": "object", - "x-expandableFields": [ - "custom_fields", - "default_payment_method", - "rendering_options" - ] - }, - "invoice_setting_quote_setting": { - "description": "", - "properties": { - "days_until_due": { - "description": "Number of days within which a customer must pay invoices generated by this quote. This value will be `null` for quotes where `collection_method=charge_automatically`.", - "nullable": true, - "type": "integer" - }, - "issuer": { - "$ref": "#/components/schemas/connect_account_reference" - } - }, - "required": [ - "issuer" - ], - "title": "InvoiceSettingQuoteSetting", - "type": "object", - "x-expandableFields": [ - "issuer" - ] - }, - "invoice_setting_rendering_options": { - "description": "", - "properties": { - "amount_tax_display": { - "description": "How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "InvoiceSettingRenderingOptions", - "type": "object", - "x-expandableFields": [] - }, - "invoice_setting_subscription_schedule_phase_setting": { - "description": "", - "properties": { - "account_tax_ids": { - "description": "The account tax IDs associated with this phase of the subscription schedule. Will be set on invoices generated by this phase of the subscription schedule.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "days_until_due": { - "description": "Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.", - "nullable": true, - "type": "integer" - }, - "issuer": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "nullable": true - } - }, - "title": "InvoiceSettingSubscriptionSchedulePhaseSetting", - "type": "object", - "x-expandableFields": [ - "account_tax_ids", - "issuer" - ] - }, - "invoice_setting_subscription_schedule_setting": { - "description": "", - "properties": { - "account_tax_ids": { - "description": "The account tax IDs associated with the subscription schedule. Will be set on invoices generated by the subscription schedule.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "days_until_due": { - "description": "Number of days within which a customer must pay invoices generated by this subscription schedule. This value will be `null` for subscription schedules where `billing=charge_automatically`.", - "nullable": true, - "type": "integer" - }, - "issuer": { - "$ref": "#/components/schemas/connect_account_reference" - } - }, - "required": [ - "issuer" - ], - "title": "InvoiceSettingSubscriptionScheduleSetting", - "type": "object", - "x-expandableFields": [ - "account_tax_ids", - "issuer" - ] - }, - "invoice_tax_amount": { - "description": "", - "properties": { - "amount": { - "description": "The amount, in cents (or local equivalent), of the tax.", - "type": "integer" - }, - "inclusive": { - "description": "Whether this tax amount is inclusive or exclusive.", - "type": "boolean" - }, - "tax_rate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_rate" - } - ], - "description": "The tax rate that was applied to get this tax amount.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_rate" - } - ] - } - }, - "taxability_reason": { - "description": "The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.", - "enum": [ - "customer_exempt", - "not_collecting", - "not_subject_to_tax", - "not_supported", - "portion_product_exempt", - "portion_reduced_rated", - "portion_standard_rated", - "product_exempt", - "product_exempt_holiday", - "proportionally_rated", - "reduced_rated", - "reverse_charge", - "standard_rated", - "taxable_basis_reduced", - "zero_rated" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "taxable_amount": { - "description": "The amount on which tax is calculated, in cents (or local equivalent).", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount", - "inclusive", - "tax_rate" - ], - "title": "InvoiceTaxAmount", - "type": "object", - "x-expandableFields": [ - "tax_rate" - ] - }, - "invoice_threshold_reason": { - "description": "", - "properties": { - "amount_gte": { - "description": "The total invoice amount threshold boundary if it triggered the threshold invoice.", - "nullable": true, - "type": "integer" - }, - "item_reasons": { - "description": "Indicates which line items triggered a threshold invoice.", - "items": { - "$ref": "#/components/schemas/invoice_item_threshold_reason" - }, - "type": "array" - } - }, - "required": [ - "item_reasons" - ], - "title": "InvoiceThresholdReason", - "type": "object", - "x-expandableFields": [ - "item_reasons" - ] - }, - "invoice_transfer_data": { - "description": "", - "properties": { - "amount": { - "description": "The amount in cents (or local equivalent) that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination.", - "nullable": true, - "type": "integer" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account where funds from the payment will be transferred to upon payment success.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - } - }, - "required": [ - "destination" - ], - "title": "InvoiceTransferData", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "invoiceitem": { - "description": "Invoice Items represent the component lines of an [invoice](https://stripe.com/docs/api/invoices). An invoice item is added to an\ninvoice by creating or updating it with an `invoice` field, at which point it will be included as\n[an invoice line item](https://stripe.com/docs/api/invoices/line_item) within\n[invoice.lines](https://stripe.com/docs/api/invoices/object#invoice_object-lines).\n\nInvoice Items can be created before you are ready to actually send the invoice. This can be particularly useful when combined\nwith a [subscription](https://stripe.com/docs/api/subscriptions). Sometimes you want to add a charge or credit to a customer, but actually charge\nor credit the customer’s card only at the end of a regular billing cycle. This is useful for combining several charges\n(to minimize per-transaction fees), or for having Stripe tabulate your usage-based billing totals.\n\nRelated guides: [Integrate with the Invoicing API](https://stripe.com/docs/invoicing/integration), [Subscription Invoices](https://stripe.com/docs/billing/invoices/subscription#adding-upcoming-invoice-items).", - "properties": { - "amount": { - "description": "Amount (in the `currency` specified) of the invoice item. This should always be equal to `unit_amount * quantity`.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The ID of the customer who will be billed when this invoice item is billed.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "date": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discountable": { - "description": "If true, discounts will apply to this invoice item. Always false for prorations.", - "type": "boolean" - }, - "discounts": { - "description": "The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "The ID of the invoice this invoice item belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "invoiceitem" - ], - "type": "string" - }, - "period": { - "$ref": "#/components/schemas/invoice_line_item_period" - }, - "price": { - "anyOf": [ - { - "$ref": "#/components/schemas/price" - } - ], - "description": "The price of the invoice item.", - "nullable": true - }, - "proration": { - "description": "Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.", - "type": "boolean" - }, - "quantity": { - "description": "Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.", - "type": "integer" - }, - "subscription": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription" - } - ], - "description": "The subscription that this invoice item has been created for, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription" - } - ] - } - }, - "subscription_item": { - "description": "The subscription item that this invoice item has been created for, if any.", - "maxLength": 5000, - "type": "string" - }, - "tax_rates": { - "description": "The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "nullable": true, - "type": "array" - }, - "test_clock": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ], - "description": "ID of the test clock this invoice item belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ] - } - }, - "unit_amount": { - "description": "Unit amount (in the `currency` specified) of the invoice item.", - "nullable": true, - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "customer", - "date", - "discountable", - "id", - "livemode", - "object", - "period", - "proration", - "quantity" - ], - "title": "InvoiceItem", - "type": "object", - "x-expandableFields": [ - "customer", - "discounts", - "invoice", - "period", - "price", - "subscription", - "tax_rates", - "test_clock" - ], - "x-resourceId": "invoiceitem" - }, - "invoices_payment_method_options": { - "description": "", - "properties": { - "acss_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_acss_debit" - } - ], - "description": "If paying by `acss_debit`, this sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - }, - "bancontact": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_bancontact" - } - ], - "description": "If paying by `bancontact`, this sub-hash contains details about the Bancontact payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - }, - "card": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_card" - } - ], - "description": "If paying by `card`, this sub-hash contains details about the Card payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - }, - "customer_balance": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_customer_balance" - } - ], - "description": "If paying by `customer_balance`, this sub-hash contains details about the Bank transfer payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - }, - "konbini": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_konbini" - } - ], - "description": "If paying by `konbini`, this sub-hash contains details about the Konbini payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - }, - "sepa_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_sepa_debit" - } - ], - "description": "If paying by `sepa_debit`, this sub-hash contains details about the SEPA Direct Debit payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - }, - "us_bank_account": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_us_bank_account" - } - ], - "description": "If paying by `us_bank_account`, this sub-hash contains details about the ACH direct debit payment method options to pass to the invoice’s PaymentIntent.", - "nullable": true - } - }, - "title": "InvoicesPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "bancontact", - "card", - "customer_balance", - "konbini", - "sepa_debit", - "us_bank_account" - ] - }, - "invoices_payment_settings": { - "description": "", - "properties": { - "default_mandate": { - "description": "ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the invoice's default_payment_method or default_source, if set.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_payment_method_options" - } - ], - "description": "Payment-method-specific configuration to provide to the invoice’s PaymentIntent.", - "nullable": true - }, - "payment_method_types": { - "description": "The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice).", - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - } - }, - "title": "InvoicesPaymentSettings", - "type": "object", - "x-expandableFields": [ - "payment_method_options" - ] - }, - "invoices_resource_from_invoice": { - "description": "", - "properties": { - "action": { - "description": "The relation between this invoice and the cloned invoice", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "The invoice that was cloned.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - } - }, - "required": [ - "action", - "invoice" - ], - "title": "InvoicesResourceFromInvoice", - "type": "object", - "x-expandableFields": [ - "invoice" - ] - }, - "invoices_resource_invoice_rendering": { - "description": "", - "properties": { - "amount_tax_display": { - "description": "How line-item prices and amounts will be displayed with respect to tax on invoice PDFs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "pdf": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_rendering_pdf" - } - ], - "description": "Invoice pdf rendering options", - "nullable": true - } - }, - "title": "InvoicesResourceInvoiceRendering", - "type": "object", - "x-expandableFields": [ - "pdf" - ] - }, - "invoices_resource_invoice_tax_id": { - "description": "", - "properties": { - "type": { - "description": "The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, or `unknown`", - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "unknown", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "type": "string" - }, - "value": { - "description": "The value of the tax ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "InvoicesResourceInvoiceTaxID", - "type": "object", - "x-expandableFields": [] - }, - "invoices_resource_line_items_credited_items": { - "description": "", - "properties": { - "invoice": { - "description": "Invoice containing the credited invoice line items", - "maxLength": 5000, - "type": "string" - }, - "invoice_line_items": { - "description": "Credited invoice line items", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "invoice", - "invoice_line_items" - ], - "title": "InvoicesResourceLineItemsCreditedItems", - "type": "object", - "x-expandableFields": [] - }, - "invoices_resource_line_items_proration_details": { - "description": "", - "properties": { - "credited_items": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_resource_line_items_credited_items" - } - ], - "description": "For a credit proration `line_item`, the original debit line_items to which the credit proration applies.", - "nullable": true - } - }, - "title": "InvoicesResourceLineItemsProrationDetails", - "type": "object", - "x-expandableFields": [ - "credited_items" - ] - }, - "invoices_resource_shipping_cost": { - "description": "", - "properties": { - "amount_subtotal": { - "description": "Total shipping cost before any taxes are applied.", - "type": "integer" - }, - "amount_tax": { - "description": "Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0.", - "type": "integer" - }, - "amount_total": { - "description": "Total shipping cost after taxes are applied.", - "type": "integer" - }, - "shipping_rate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/shipping_rate" - } - ], - "description": "The ID of the ShippingRate for this invoice.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/shipping_rate" - } - ] - } - }, - "taxes": { - "description": "The taxes applied to the shipping rate.", - "items": { - "$ref": "#/components/schemas/line_items_tax_amount" - }, - "type": "array" - } - }, - "required": [ - "amount_subtotal", - "amount_tax", - "amount_total" - ], - "title": "InvoicesResourceShippingCost", - "type": "object", - "x-expandableFields": [ - "shipping_rate", - "taxes" - ] - }, - "invoices_resource_status_transitions": { - "description": "", - "properties": { - "finalized_at": { - "description": "The time that the invoice draft was finalized.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "marked_uncollectible_at": { - "description": "The time that the invoice was marked uncollectible.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "paid_at": { - "description": "The time that the invoice was paid.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "voided_at": { - "description": "The time that the invoice was voided.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "InvoicesResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "issuing.authorization": { - "description": "When an [issued card](https://stripe.com/docs/issuing) is used to make a purchase, an Issuing `Authorization`\nobject is created. [Authorizations](https://stripe.com/docs/issuing/purchases/authorizations) must be approved for the\npurchase to be completed successfully.\n\nRelated guide: [Issued card authorizations](https://stripe.com/docs/issuing/purchases/authorizations)", - "properties": { - "amount": { - "description": "The total amount that was authorized or rejected. This amount is in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). `amount` should be the same as `merchant_amount`, unless `currency` and `merchant_currency` are different.", - "type": "integer" - }, - "amount_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_amount_details" - } - ], - "description": "Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "nullable": true - }, - "approved": { - "description": "Whether the authorization has been approved.", - "type": "boolean" - }, - "authorization_method": { - "description": "How the card details were provided.", - "enum": [ - "chip", - "contactless", - "keyed_in", - "online", - "swipe" - ], - "type": "string" - }, - "balance_transactions": { - "description": "List of balance transactions associated with this authorization.", - "items": { - "$ref": "#/components/schemas/balance_transaction" - }, - "type": "array" - }, - "card": { - "$ref": "#/components/schemas/issuing.card" - }, - "cardholder": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.cardholder" - } - ], - "description": "The cardholder to whom this authorization belongs.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.cardholder" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "The currency of the cardholder. This currency can be different from the currency presented at authorization and the `merchant_currency` field on this authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "fleet": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fleet_data" - } - ], - "description": "Fleet-specific information for authorizations using Fleet cards.", - "nullable": true - }, - "fuel": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fuel_data" - } - ], - "description": "Information about fuel that was purchased with this transaction. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "merchant_amount": { - "description": "The total amount that was authorized or rejected. This amount is in the `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). `merchant_amount` should be the same as `amount`, unless `merchant_currency` and `currency` are different.", - "type": "integer" - }, - "merchant_currency": { - "description": "The local currency that was presented to the cardholder for the authorization. This currency can be different from the cardholder currency and the `currency` field on this authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "merchant_data": { - "$ref": "#/components/schemas/issuing_authorization_merchant_data" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "network_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_network_data" - } - ], - "description": "Details about the authorization, such as identifiers, set by the card network.", - "nullable": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.authorization" - ], - "type": "string" - }, - "pending_request": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_pending_request" - } - ], - "description": "The pending authorization request. This field will only be non-null during an `issuing_authorization.request` webhook.", - "nullable": true - }, - "request_history": { - "description": "History of every time a `pending_request` authorization was approved/declined, either by you directly or by Stripe (e.g. based on your spending_controls). If the merchant changes the authorization by performing an incremental authorization, you can look at this field to see the previous requests for the authorization. This field can be helpful in determining why a given authorization was approved/declined.", - "items": { - "$ref": "#/components/schemas/issuing_authorization_request" - }, - "type": "array" - }, - "status": { - "description": "The current status of the authorization in its lifecycle.", - "enum": [ - "closed", - "pending", - "reversed" - ], - "type": "string" - }, - "token": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.token" - } - ], - "description": "[Token](https://stripe.com/docs/api/issuing/tokens/object) object used for this authorization. If a network token was not used for this authorization, this field will be null.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.token" - } - ] - } - }, - "transactions": { - "description": "List of [transactions](https://stripe.com/docs/api/issuing/transactions) associated with this authorization.", - "items": { - "$ref": "#/components/schemas/issuing.transaction" - }, - "type": "array" - }, - "treasury": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_treasury" - } - ], - "description": "[Treasury](https://stripe.com/docs/api/treasury) details related to this authorization if it was created on a [FinancialAccount](https://stripe.com/docs/api/treasury/financial_accounts).", - "nullable": true - }, - "verification_data": { - "$ref": "#/components/schemas/issuing_authorization_verification_data" - }, - "wallet": { - "description": "The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "approved", - "authorization_method", - "balance_transactions", - "card", - "created", - "currency", - "id", - "livemode", - "merchant_amount", - "merchant_currency", - "merchant_data", - "metadata", - "object", - "request_history", - "status", - "transactions", - "verification_data" - ], - "title": "IssuingAuthorization", - "type": "object", - "x-expandableFields": [ - "amount_details", - "balance_transactions", - "card", - "cardholder", - "fleet", - "fuel", - "merchant_data", - "network_data", - "pending_request", - "request_history", - "token", - "transactions", - "treasury", - "verification_data" - ], - "x-resourceId": "issuing.authorization" - }, - "issuing.card": { - "description": "You can [create physical or virtual cards](https://stripe.com/docs/issuing/cards) that are issued to cardholders.", - "properties": { - "brand": { - "description": "The brand of the card.", - "maxLength": 5000, - "type": "string" - }, - "cancellation_reason": { - "description": "The reason why the card was canceled.", - "enum": [ - "design_rejected", - "lost", - "stolen" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "cardholder": { - "$ref": "#/components/schemas/issuing.cardholder" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Supported currencies are `usd` in the US, `eur` in the EU, and `gbp` in the UK.", - "type": "string" - }, - "cvc": { - "description": "The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the [\"Retrieve a card\" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via \"List all cards\" or any other endpoint.", - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "description": "The expiration month of the card.", - "type": "integer" - }, - "exp_year": { - "description": "The expiration year of the card.", - "type": "integer" - }, - "financial_account": { - "description": "The financial account this card is attached to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "The last 4 digits of the card number.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "number": { - "description": "The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with [the `expand` parameter](https://stripe.com/docs/api/expanding_objects). Additionally, it's only available via the [\"Retrieve a card\" endpoint](https://stripe.com/docs/api/issuing/cards/retrieve), not via \"List all cards\" or any other endpoint.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.card" - ], - "type": "string" - }, - "personalization_design": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.personalization_design" - } - ], - "description": "The personalization design object belonging to this card.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.personalization_design" - } - ] - } - }, - "replaced_by": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.card" - } - ], - "description": "The latest card that replaces this card, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.card" - } - ] - } - }, - "replacement_for": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.card" - } - ], - "description": "The card this card replaces, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.card" - } - ] - } - }, - "replacement_reason": { - "description": "The reason why the previous card needed to be replaced.", - "enum": [ - "damaged", - "expired", - "lost", - "stolen" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "shipping": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_card_shipping" - } - ], - "description": "Where and how the card will be shipped.", - "nullable": true - }, - "spending_controls": { - "$ref": "#/components/schemas/issuing_card_authorization_controls" - }, - "status": { - "description": "Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`.", - "enum": [ - "active", - "canceled", - "inactive" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": { - "description": "The type of the card.", - "enum": [ - "physical", - "virtual" - ], - "type": "string" - }, - "wallets": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_card_wallets" - } - ], - "description": "Information relating to digital wallets (like Apple Pay and Google Pay).", - "nullable": true - } - }, - "required": [ - "brand", - "cardholder", - "created", - "currency", - "exp_month", - "exp_year", - "id", - "last4", - "livemode", - "metadata", - "object", - "spending_controls", - "status", - "type" - ], - "title": "IssuingCard", - "type": "object", - "x-expandableFields": [ - "cardholder", - "personalization_design", - "replaced_by", - "replacement_for", - "shipping", - "spending_controls", - "wallets" - ], - "x-resourceId": "issuing.card" - }, - "issuing.cardholder": { - "description": "An Issuing `Cardholder` object represents an individual or business entity who is [issued](https://stripe.com/docs/issuing) cards.\n\nRelated guide: [How to create a cardholder](https://stripe.com/docs/issuing/cards#create-cardholder)", - "properties": { - "billing": { - "$ref": "#/components/schemas/issuing_cardholder_address" - }, - "company": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_company" - } - ], - "description": "Additional information about a `company` cardholder.", - "nullable": true - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "email": { - "description": "The cardholder's email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "individual": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_individual" - } - ], - "description": "Additional information about an `individual` cardholder.", - "nullable": true - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "The cardholder's name. This will be printed on cards issued to them.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.cardholder" - ], - "type": "string" - }, - "phone_number": { - "description": "The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied) for more details.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_locales": { - "description": "The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`.\n This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder.", - "items": { - "enum": [ - "de", - "en", - "es", - "fr", - "it" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "requirements": { - "$ref": "#/components/schemas/issuing_cardholder_requirements" - }, - "spending_controls": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_authorization_controls" - } - ], - "description": "Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details.", - "nullable": true - }, - "status": { - "description": "Specifies whether to permit authorizations on this cardholder's cards.", - "enum": [ - "active", - "blocked", - "inactive" - ], - "type": "string" - }, - "type": { - "description": "One of `individual` or `company`. See [Choose a cardholder type](https://stripe.com/docs/issuing/other/choose-cardholder) for more details.", - "enum": [ - "company", - "individual" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "billing", - "created", - "id", - "livemode", - "metadata", - "name", - "object", - "requirements", - "status", - "type" - ], - "title": "IssuingCardholder", - "type": "object", - "x-expandableFields": [ - "billing", - "company", - "individual", - "requirements", - "spending_controls" - ], - "x-resourceId": "issuing.cardholder" - }, - "issuing.dispute": { - "description": "As a [card issuer](https://stripe.com/docs/issuing), you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with.\n\nRelated guide: [Issuing disputes](https://stripe.com/docs/issuing/purchases/disputes)", - "properties": { - "amount": { - "description": "Disputed amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Usually the amount of the `transaction`, but can differ (usually because of currency fluctuation).", - "type": "integer" - }, - "balance_transactions": { - "description": "List of balance transactions associated with the dispute.", - "items": { - "$ref": "#/components/schemas/balance_transaction" - }, - "nullable": true, - "type": "array" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "The currency the `transaction` was made in.", - "type": "string" - }, - "evidence": { - "$ref": "#/components/schemas/issuing_dispute_evidence" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "loss_reason": { - "description": "The enum that describes the dispute loss outcome. If the dispute is not lost, this field will be absent. New enum values may be added in the future, so be sure to handle unknown values.", - "enum": [ - "cardholder_authentication_issuer_liability", - "eci5_token_transaction_with_tavv", - "excess_disputes_in_timeframe", - "has_not_met_the_minimum_dispute_amount_requirements", - "invalid_duplicate_dispute", - "invalid_incorrect_amount_dispute", - "invalid_no_authorization", - "invalid_use_of_disputes", - "merchandise_delivered_or_shipped", - "merchandise_or_service_as_described", - "not_cancelled", - "other", - "refund_issued", - "submitted_beyond_allowable_time_limit", - "transaction_3ds_required", - "transaction_approved_after_prior_fraud_dispute", - "transaction_authorized", - "transaction_electronically_read", - "transaction_qualifies_for_visa_easy_payment_service", - "transaction_unattended" - ], - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.dispute" - ], - "type": "string" - }, - "status": { - "description": "Current status of the dispute.", - "enum": [ - "expired", - "lost", - "submitted", - "unsubmitted", - "won" - ], - "type": "string" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.transaction" - } - ], - "description": "The transaction being disputed.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.transaction" - } - ] - } - }, - "treasury": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_dispute_treasury" - } - ], - "description": "[Treasury](https://stripe.com/docs/api/treasury) details related to this dispute if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts", - "nullable": true - } - }, - "required": [ - "amount", - "created", - "currency", - "evidence", - "id", - "livemode", - "metadata", - "object", - "status", - "transaction" - ], - "title": "IssuingDispute", - "type": "object", - "x-expandableFields": [ - "balance_transactions", - "evidence", - "transaction", - "treasury" - ], - "x-resourceId": "issuing.dispute" - }, - "issuing.personalization_design": { - "description": "A Personalization Design is a logical grouping of a Physical Bundle, card logo, and carrier text that represents a product line.", - "properties": { - "card_logo": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The file for the card logo to use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "carrier_text": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_personalization_design_carrier_text" - } - ], - "description": "Hash containing carrier text, for use with physical bundles that support carrier text.", - "nullable": true - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "lookup_key": { - "description": "A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "Friendly display name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.personalization_design" - ], - "type": "string" - }, - "physical_bundle": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.physical_bundle" - } - ], - "description": "The physical bundle object belonging to this personalization design.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.physical_bundle" - } - ] - } - }, - "preferences": { - "$ref": "#/components/schemas/issuing_personalization_design_preferences" - }, - "rejection_reasons": { - "$ref": "#/components/schemas/issuing_personalization_design_rejection_reasons" - }, - "status": { - "description": "Whether this personalization design can be used to create cards.", - "enum": [ - "active", - "inactive", - "rejected", - "review" - ], - "type": "string" - } - }, - "required": [ - "created", - "id", - "livemode", - "metadata", - "object", - "physical_bundle", - "preferences", - "rejection_reasons", - "status" - ], - "title": "IssuingPersonalizationDesign", - "type": "object", - "x-expandableFields": [ - "card_logo", - "carrier_text", - "physical_bundle", - "preferences", - "rejection_reasons" - ], - "x-resourceId": "issuing.personalization_design" - }, - "issuing.physical_bundle": { - "description": "A Physical Bundle represents the bundle of physical items - card stock, carrier letter, and envelope - that is shipped to a cardholder when you create a physical card.", - "properties": { - "features": { - "$ref": "#/components/schemas/issuing_physical_bundle_features" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "name": { - "description": "Friendly display name.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.physical_bundle" - ], - "type": "string" - }, - "status": { - "description": "Whether this physical bundle can be used to create cards.", - "enum": [ - "active", - "inactive", - "review" - ], - "type": "string" - }, - "type": { - "description": "Whether this physical bundle is a standard Stripe offering or custom-made for you.", - "enum": [ - "custom", - "standard" - ], - "type": "string" - } - }, - "required": [ - "features", - "id", - "livemode", - "name", - "object", - "status", - "type" - ], - "title": "IssuingPhysicalBundle", - "type": "object", - "x-expandableFields": [ - "features" - ], - "x-resourceId": "issuing.physical_bundle" - }, - "issuing.settlement": { - "description": "When a non-stripe BIN is used, any use of an [issued card](https://stripe.com/docs/issuing) must be settled directly with the card network. The net amount owed is represented by an Issuing `Settlement` object.", - "properties": { - "bin": { - "description": "The Bank Identification Number reflecting this settlement record.", - "maxLength": 5000, - "type": "string" - }, - "clearing_date": { - "description": "The date that the transactions are cleared and posted to user's accounts.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "interchange_fees": { - "description": "The total interchange received as reimbursement for the transactions.", - "type": "integer" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "net_total": { - "description": "The total net amount required to settle with the network.", - "type": "integer" - }, - "network": { - "description": "The card network for this settlement report. One of [\"visa\"]", - "enum": [ - "visa" - ], - "type": "string" - }, - "network_fees": { - "description": "The total amount of fees owed to the network.", - "type": "integer" - }, - "network_settlement_identifier": { - "description": "The Settlement Identification Number assigned by the network.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.settlement" - ], - "type": "string" - }, - "settlement_service": { - "description": "One of `international` or `uk_national_net`.", - "maxLength": 5000, - "type": "string" - }, - "transaction_count": { - "description": "The total number of transactions reflected in this settlement.", - "type": "integer" - }, - "transaction_volume": { - "description": "The total transaction amount reflected in this settlement.", - "type": "integer" - } - }, - "required": [ - "bin", - "clearing_date", - "created", - "currency", - "id", - "interchange_fees", - "livemode", - "metadata", - "net_total", - "network", - "network_fees", - "network_settlement_identifier", - "object", - "settlement_service", - "transaction_count", - "transaction_volume" - ], - "title": "IssuingSettlement", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "issuing.settlement" - }, - "issuing.token": { - "description": "An issuing token object is created when an issued card is added to a digital wallet. As a [card issuer](https://stripe.com/docs/issuing), you can [view and manage these tokens](https://stripe.com/docs/issuing/controls/token-management) through Stripe.", - "properties": { - "card": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.card" - } - ], - "description": "Card associated with this token.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.card" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "device_fingerprint": { - "description": "The hashed ID derived from the device ID from the card network associated with the token.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "The last four digits of the token.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "network": { - "description": "The token service provider / card network associated with the token.", - "enum": [ - "mastercard", - "visa" - ], - "type": "string" - }, - "network_data": { - "$ref": "#/components/schemas/issuing_network_token_network_data" - }, - "network_updated_at": { - "description": "Time at which the token was last updated by the card network. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.token" - ], - "type": "string" - }, - "status": { - "description": "The usage state of the token.", - "enum": [ - "active", - "deleted", - "requested", - "suspended" - ], - "type": "string" - }, - "wallet_provider": { - "description": "The digital wallet for this token, if one was used.", - "enum": [ - "apple_pay", - "google_pay", - "samsung_pay" - ], - "type": "string" - } - }, - "required": [ - "card", - "created", - "id", - "livemode", - "network", - "network_updated_at", - "object", - "status" - ], - "title": "IssuingNetworkToken", - "type": "object", - "x-expandableFields": [ - "card", - "network_data" - ], - "x-resourceId": "issuing.token" - }, - "issuing.transaction": { - "description": "Any use of an [issued card](https://stripe.com/docs/issuing) that results in funds entering or leaving\nyour Stripe account, such as a completed purchase or refund, is represented by an Issuing\n`Transaction` object.\n\nRelated guide: [Issued card transactions](https://stripe.com/docs/issuing/purchases/transactions)", - "properties": { - "amount": { - "description": "The transaction amount, which will be reflected in your balance. This amount is in your currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "amount_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_amount_details" - } - ], - "description": "Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "nullable": true - }, - "authorization": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.authorization" - } - ], - "description": "The `Authorization` object that led to this transaction.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.authorization" - } - ] - } - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "ID of the [balance transaction](https://stripe.com/docs/api/balance_transactions) associated with this transaction.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "card": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.card" - } - ], - "description": "The card used to make this transaction.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.card" - } - ] - } - }, - "cardholder": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.cardholder" - } - ], - "description": "The cardholder to whom this transaction belongs.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.cardholder" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "dispute": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.dispute" - } - ], - "description": "If you've disputed the transaction, the ID of the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.dispute" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "merchant_amount": { - "description": "The amount that the merchant will receive, denominated in `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). It will be different from `amount` if the merchant is taking payment in a different currency.", - "type": "integer" - }, - "merchant_currency": { - "description": "The currency with which the merchant is taking payment.", - "type": "string" - }, - "merchant_data": { - "$ref": "#/components/schemas/issuing_authorization_merchant_data" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "network_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_network_data" - } - ], - "description": "Details about the transaction, such as processing dates, set by the card network.", - "nullable": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "issuing.transaction" - ], - "type": "string" - }, - "purchase_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_purchase_details" - } - ], - "description": "Additional purchase information that is optionally provided by the merchant.", - "nullable": true - }, - "token": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/issuing.token" - } - ], - "description": "[Token](https://stripe.com/docs/api/issuing/tokens/object) object used for this transaction. If a network token was not used for this transaction, this field will be null.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/issuing.token" - } - ] - } - }, - "treasury": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_treasury" - } - ], - "description": "[Treasury](https://stripe.com/docs/api/treasury) details related to this transaction if it was created on a [FinancialAccount](/docs/api/treasury/financial_accounts", - "nullable": true - }, - "type": { - "description": "The nature of the transaction.", - "enum": [ - "capture", - "refund" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "wallet": { - "description": "The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`.", - "enum": [ - "apple_pay", - "google_pay", - "samsung_pay" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "card", - "created", - "currency", - "id", - "livemode", - "merchant_amount", - "merchant_currency", - "merchant_data", - "metadata", - "object", - "type" - ], - "title": "IssuingTransaction", - "type": "object", - "x-expandableFields": [ - "amount_details", - "authorization", - "balance_transaction", - "card", - "cardholder", - "dispute", - "merchant_data", - "network_data", - "purchase_details", - "token", - "treasury" - ], - "x-resourceId": "issuing.transaction" - }, - "issuing_authorization_amount_details": { - "description": "", - "properties": { - "atm_fee": { - "description": "The fee charged by the ATM for the cash withdrawal.", - "nullable": true, - "type": "integer" - }, - "cashback_amount": { - "description": "The amount of cash requested by the cardholder.", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingAuthorizationAmountDetails", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_authentication_exemption": { - "description": "", - "properties": { - "claimed_by": { - "description": "The entity that requested the exemption, either the acquiring merchant or the Issuing user.", - "enum": [ - "acquirer", - "issuer" - ], - "type": "string" - }, - "type": { - "description": "The specific exemption claimed for this authorization.", - "enum": [ - "low_value_transaction", - "transaction_risk_analysis", - "unknown" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "claimed_by", - "type" - ], - "title": "IssuingAuthorizationAuthenticationExemption", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_fleet_cardholder_prompt_data": { - "description": "", - "properties": { - "alphanumeric_id": { - "description": "[Deprecated] An alphanumeric ID, though typical point of sales only support numeric entry. The card program can be configured to prompt for a vehicle ID, driver ID, or generic ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "driver_id": { - "description": "Driver ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "odometer": { - "description": "Odometer reading.", - "nullable": true, - "type": "integer" - }, - "unspecified_id": { - "description": "An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_id": { - "description": "User ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "vehicle_number": { - "description": "Vehicle number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationFleetCardholderPromptData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_fleet_data": { - "description": "", - "properties": { - "cardholder_prompt_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fleet_cardholder_prompt_data" - } - ], - "description": "Answers to prompts presented to the cardholder at the point of sale. Prompted fields vary depending on the configuration of your physical fleet cards. Typical points of sale support only numeric entry.", - "nullable": true - }, - "purchase_type": { - "description": "The type of purchase.", - "enum": [ - "fuel_and_non_fuel_purchase", - "fuel_purchase", - "non_fuel_purchase" - ], - "nullable": true, - "type": "string" - }, - "reported_breakdown": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fleet_reported_breakdown" - } - ], - "description": "More information about the total amount. Typically this information is received from the merchant after the authorization has been approved and the fuel dispensed. This information is not guaranteed to be accurate as some merchants may provide unreliable data.", - "nullable": true - }, - "service_type": { - "description": "The type of fuel service.", - "enum": [ - "full_service", - "non_fuel_transaction", - "self_service" - ], - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationFleetData", - "type": "object", - "x-expandableFields": [ - "cardholder_prompt_data", - "reported_breakdown" - ] - }, - "issuing_authorization_fleet_fuel_price_data": { - "description": "", - "properties": { - "gross_amount_decimal": { - "description": "Gross fuel amount that should equal Fuel Quantity multiplied by Fuel Unit Cost, inclusive of taxes.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationFleetFuelPriceData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_fleet_non_fuel_price_data": { - "description": "", - "properties": { - "gross_amount_decimal": { - "description": "Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationFleetNonFuelPriceData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_fleet_reported_breakdown": { - "description": "", - "properties": { - "fuel": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fleet_fuel_price_data" - } - ], - "description": "Breakdown of fuel portion of the purchase.", - "nullable": true - }, - "non_fuel": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fleet_non_fuel_price_data" - } - ], - "description": "Breakdown of non-fuel portion of the purchase.", - "nullable": true - }, - "tax": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_fleet_tax_data" - } - ], - "description": "Information about tax included in this transaction.", - "nullable": true - } - }, - "title": "IssuingAuthorizationFleetReportedBreakdown", - "type": "object", - "x-expandableFields": [ - "fuel", - "non_fuel", - "tax" - ] - }, - "issuing_authorization_fleet_tax_data": { - "description": "", - "properties": { - "local_amount_decimal": { - "description": "Amount of state or provincial Sales Tax included in the transaction amount. `null` if not reported by merchant or not subject to tax.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "national_amount_decimal": { - "description": "Amount of national Sales Tax or VAT included in the transaction amount. `null` if not reported by merchant or not subject to tax.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationFleetTaxData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_fuel_data": { - "description": "", - "properties": { - "industry_product_code": { - "description": "[Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity_decimal": { - "description": "The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "type": { - "description": "The type of fuel that was purchased.", - "enum": [ - "diesel", - "other", - "unleaded_plus", - "unleaded_regular", - "unleaded_super" - ], - "nullable": true, - "type": "string" - }, - "unit": { - "description": "The units for `quantity_decimal`.", - "enum": [ - "charging_minute", - "imperial_gallon", - "kilogram", - "kilowatt_hour", - "liter", - "other", - "pound", - "us_gallon" - ], - "nullable": true, - "type": "string" - }, - "unit_cost_decimal": { - "description": "The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationFuelData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_merchant_data": { - "description": "", - "properties": { - "category": { - "description": "A categorization of the seller's type of business. See our [merchant categories guide](https://stripe.com/docs/issuing/merchant-categories) for a list of possible values.", - "maxLength": 5000, - "type": "string" - }, - "category_code": { - "description": "The merchant category code for the seller’s business", - "maxLength": 5000, - "type": "string" - }, - "city": { - "description": "City where the seller is located", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Country where the seller is located", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Name of the seller", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network_id": { - "description": "Identifier assigned to the seller by the card network. Different card networks may assign different network_id fields to the same merchant.", - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "description": "Postal code where the seller is located", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "state": { - "description": "State where the seller is located", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "terminal_id": { - "description": "An ID assigned by the seller to the location of the sale.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "URL provided by the merchant on a 3DS request", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "category", - "category_code", - "network_id" - ], - "title": "IssuingAuthorizationMerchantData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_network_data": { - "description": "", - "properties": { - "acquiring_institution_id": { - "description": "Identifier assigned to the acquirer by the card network. Sometimes this value is not provided by the network; in this case, the value will be `null`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "system_trace_audit_number": { - "description": "The System Trace Audit Number (STAN) is a 6-digit identifier assigned by the acquirer. Prefer `network_data.transaction_id` if present, unless you have special requirements.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transaction_id": { - "description": "Unique identifier for the authorization assigned by the card network used to match subsequent messages, disputes, and transactions.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingAuthorizationNetworkData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_pending_request": { - "description": "", - "properties": { - "amount": { - "description": "The additional amount Stripe will hold if the authorization is approved, in the card's [currency](https://stripe.com/docs/api#issuing_authorization_object-pending-request-currency) and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "amount_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_amount_details" - } - ], - "description": "Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "nullable": true - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "is_amount_controllable": { - "description": "If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization.", - "type": "boolean" - }, - "merchant_amount": { - "description": "The amount the merchant is requesting to be authorized in the `merchant_currency`. The amount is in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "merchant_currency": { - "description": "The local currency the merchant is requesting to authorize.", - "type": "string" - }, - "network_risk_score": { - "description": "The card network's estimate of the likelihood that an authorization is fraudulent. Takes on values between 1 and 99.", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount", - "currency", - "is_amount_controllable", - "merchant_amount", - "merchant_currency" - ], - "title": "IssuingAuthorizationPendingRequest", - "type": "object", - "x-expandableFields": [ - "amount_details" - ] - }, - "issuing_authorization_request": { - "description": "", - "properties": { - "amount": { - "description": "The `pending_request.amount` at the time of the request, presented in your card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). Stripe held this amount from your account to fund the authorization if the request was approved.", - "type": "integer" - }, - "amount_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_amount_details" - } - ], - "description": "Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "nullable": true - }, - "approved": { - "description": "Whether this request was approved.", - "type": "boolean" - }, - "authorization_code": { - "description": "A code created by Stripe which is shared with the merchant to validate the authorization. This field will be populated if the authorization message was approved. The code typically starts with the letter \"S\", followed by a six-digit number. For example, \"S498162\". Please note that the code is not guaranteed to be unique across authorizations.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "merchant_amount": { - "description": "The `pending_request.merchant_amount` at the time of the request, presented in the `merchant_currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "merchant_currency": { - "description": "The currency that was collected by the merchant and presented to the cardholder for the authorization. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "network_risk_score": { - "description": "The card network's estimate of the likelihood that an authorization is fraudulent. Takes on values between 1 and 99.", - "nullable": true, - "type": "integer" - }, - "reason": { - "description": "When an authorization is approved or declined by you or by Stripe, this field provides additional detail on the reason for the outcome.", - "enum": [ - "account_disabled", - "card_active", - "card_canceled", - "card_expired", - "card_inactive", - "cardholder_blocked", - "cardholder_inactive", - "cardholder_verification_required", - "insecure_authorization_method", - "insufficient_funds", - "not_allowed", - "pin_blocked", - "spending_controls", - "suspected_fraud", - "verification_failed", - "webhook_approved", - "webhook_declined", - "webhook_error", - "webhook_timeout" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reason_message": { - "description": "If the `request_history.reason` is `webhook_error` because the direct webhook response is invalid (for example, parsing errors or missing parameters), we surface a more detailed error message via this field.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "requested_at": { - "description": "Time when the card network received an authorization request from the acquirer in UTC. Referred to by networks as transmission time.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount", - "approved", - "created", - "currency", - "merchant_amount", - "merchant_currency", - "reason" - ], - "title": "IssuingAuthorizationRequest", - "type": "object", - "x-expandableFields": [ - "amount_details" - ] - }, - "issuing_authorization_three_d_secure": { - "description": "", - "properties": { - "result": { - "description": "The outcome of the 3D Secure authentication request.", - "enum": [ - "attempt_acknowledged", - "authenticated", - "failed", - "required" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "result" - ], - "title": "IssuingAuthorizationThreeDSecure", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_treasury": { - "description": "", - "properties": { - "received_credits": { - "description": "The array of [ReceivedCredits](https://stripe.com/docs/api/treasury/received_credits) associated with this authorization", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "received_debits": { - "description": "The array of [ReceivedDebits](https://stripe.com/docs/api/treasury/received_debits) associated with this authorization", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "transaction": { - "description": "The Treasury [Transaction](https://stripe.com/docs/api/treasury/transactions) associated with this authorization", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "received_credits", - "received_debits" - ], - "title": "IssuingAuthorizationTreasury", - "type": "object", - "x-expandableFields": [] - }, - "issuing_authorization_verification_data": { - "description": "", - "properties": { - "address_line1_check": { - "description": "Whether the cardholder provided an address first line and if it matched the cardholder’s `billing.address.line1`.", - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "address_postal_code_check": { - "description": "Whether the cardholder provided a postal code and if it matched the cardholder’s `billing.address.postal_code`.", - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "authentication_exemption": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_authentication_exemption" - } - ], - "description": "The exemption applied to this authorization.", - "nullable": true - }, - "cvc_check": { - "description": "Whether the cardholder provided a CVC and if it matched Stripe’s record.", - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "expiry_check": { - "description": "Whether the cardholder provided an expiry date and if it matched Stripe’s record.", - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "postal_code": { - "description": "The postal code submitted as part of the authorization used for postal code verification.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "three_d_secure": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_authorization_three_d_secure" - } - ], - "description": "3D Secure details.", - "nullable": true - } - }, - "required": [ - "address_line1_check", - "address_postal_code_check", - "cvc_check", - "expiry_check" - ], - "title": "IssuingAuthorizationVerificationData", - "type": "object", - "x-expandableFields": [ - "authentication_exemption", - "three_d_secure" - ] - }, - "issuing_card_apple_pay": { - "description": "", - "properties": { - "eligible": { - "description": "Apple Pay Eligibility", - "type": "boolean" - }, - "ineligible_reason": { - "description": "Reason the card is ineligible for Apple Pay", - "enum": [ - "missing_agreement", - "missing_cardholder_contact", - "unsupported_region" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "eligible" - ], - "title": "IssuingCardApplePay", - "type": "object", - "x-expandableFields": [] - }, - "issuing_card_authorization_controls": { - "description": "", - "properties": { - "allowed_categories": { - "description": "Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`.", - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "allowed_merchant_countries": { - "description": "Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "blocked_categories": { - "description": "Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`.", - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "blocked_merchant_countries": { - "description": "Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "spending_limits": { - "description": "Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and _that_ card's `replacement_for` card, up the chain).", - "items": { - "$ref": "#/components/schemas/issuing_card_spending_limit" - }, - "nullable": true, - "type": "array" - }, - "spending_limits_currency": { - "description": "Currency of the amounts within `spending_limits`. Always the same as the currency of the card.", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingCardAuthorizationControls", - "type": "object", - "x-expandableFields": [ - "spending_limits" - ] - }, - "issuing_card_google_pay": { - "description": "", - "properties": { - "eligible": { - "description": "Google Pay Eligibility", - "type": "boolean" - }, - "ineligible_reason": { - "description": "Reason the card is ineligible for Google Pay", - "enum": [ - "missing_agreement", - "missing_cardholder_contact", - "unsupported_region" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "eligible" - ], - "title": "IssuingCardGooglePay", - "type": "object", - "x-expandableFields": [] - }, - "issuing_card_shipping": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "address_validation": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_card_shipping_address_validation" - } - ], - "description": "Address validation details for the shipment.", - "nullable": true - }, - "carrier": { - "description": "The delivery company that shipped a card.", - "enum": [ - "dhl", - "fedex", - "royal_mail", - "usps" - ], - "nullable": true, - "type": "string" - }, - "customs": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_card_shipping_customs" - } - ], - "description": "Additional information that may be required for clearing customs.", - "nullable": true - }, - "eta": { - "description": "A unix timestamp representing a best estimate of when the card will be delivered.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "name": { - "description": "Recipient name.", - "maxLength": 5000, - "type": "string" - }, - "phone_number": { - "description": "The phone number of the receiver of the shipment. Our courier partners will use this number to contact you in the event of card delivery issues. For individual shipments to the EU/UK, if this field is empty, we will provide them with the phone number provided when the cardholder was initially created.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "require_signature": { - "description": "Whether a signature is required for card delivery. This feature is only supported for US users. Standard shipping service does not support signature on delivery. The default value for standard shipping service is false and for express and priority services is true.", - "nullable": true, - "type": "boolean" - }, - "service": { - "description": "Shipment service, such as `standard` or `express`.", - "enum": [ - "express", - "priority", - "standard" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "status": { - "description": "The delivery status of the card.", - "enum": [ - "canceled", - "delivered", - "failure", - "pending", - "returned", - "shipped" - ], - "nullable": true, - "type": "string" - }, - "tracking_number": { - "description": "A tracking number for a card shipment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tracking_url": { - "description": "A link to the shipping carrier's site where you can view detailed information about a card shipment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "Packaging options.", - "enum": [ - "bulk", - "individual" - ], - "type": "string" - } - }, - "required": [ - "address", - "name", - "service", - "type" - ], - "title": "IssuingCardShipping", - "type": "object", - "x-expandableFields": [ - "address", - "address_validation", - "customs" - ] - }, - "issuing_card_shipping_address_validation": { - "description": "", - "properties": { - "mode": { - "description": "The address validation capabilities to use.", - "enum": [ - "disabled", - "normalization_only", - "validation_and_normalization" - ], - "type": "string" - }, - "normalized_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "The normalized shipping address.", - "nullable": true - }, - "result": { - "description": "The validation result for the shipping address.", - "enum": [ - "indeterminate", - "likely_deliverable", - "likely_undeliverable" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "mode" - ], - "title": "IssuingCardShippingAddressValidation", - "type": "object", - "x-expandableFields": [ - "normalized_address" - ] - }, - "issuing_card_shipping_customs": { - "description": "", - "properties": { - "eori_number": { - "description": "A registration number used for customs in Europe. See [https://www.gov.uk/eori](https://www.gov.uk/eori) for the UK and [https://ec.europa.eu/taxation_customs/business/customs-procedures-import-and-export/customs-procedures/economic-operators-registration-and-identification-number-eori_en](https://ec.europa.eu/taxation_customs/business/customs-procedures-import-and-export/customs-procedures/economic-operators-registration-and-identification-number-eori_en) for the EU.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingCardShippingCustoms", - "type": "object", - "x-expandableFields": [] - }, - "issuing_card_spending_limit": { - "description": "", - "properties": { - "amount": { - "description": "Maximum amount allowed to spend per interval. This amount is in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "categories": { - "description": "Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories.", - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "interval": { - "description": "Interval (or event) to which the amount applies.", - "enum": [ - "all_time", - "daily", - "monthly", - "per_authorization", - "weekly", - "yearly" - ], - "type": "string" - } - }, - "required": [ - "amount", - "interval" - ], - "title": "IssuingCardSpendingLimit", - "type": "object", - "x-expandableFields": [] - }, - "issuing_card_wallets": { - "description": "", - "properties": { - "apple_pay": { - "$ref": "#/components/schemas/issuing_card_apple_pay" - }, - "google_pay": { - "$ref": "#/components/schemas/issuing_card_google_pay" - }, - "primary_account_identifier": { - "description": "Unique identifier for a card used with digital wallets", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "apple_pay", - "google_pay" - ], - "title": "IssuingCardWallets", - "type": "object", - "x-expandableFields": [ - "apple_pay", - "google_pay" - ] - }, - "issuing_cardholder_address": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - } - }, - "required": [ - "address" - ], - "title": "IssuingCardholderAddress", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "issuing_cardholder_authorization_controls": { - "description": "", - "properties": { - "allowed_categories": { - "description": "Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`.", - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "allowed_merchant_countries": { - "description": "Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `blocked_merchant_countries`. Provide an empty value to unset this control.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "blocked_categories": { - "description": "Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`.", - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "blocked_merchant_countries": { - "description": "Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g. `US`). Cannot be set with `allowed_merchant_countries`. Provide an empty value to unset this control.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "spending_limits": { - "description": "Limit spending with amount-based rules that apply across this cardholder's cards.", - "items": { - "$ref": "#/components/schemas/issuing_cardholder_spending_limit" - }, - "nullable": true, - "type": "array" - }, - "spending_limits_currency": { - "description": "Currency of the amounts within `spending_limits`.", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingCardholderAuthorizationControls", - "type": "object", - "x-expandableFields": [ - "spending_limits" - ] - }, - "issuing_cardholder_card_issuing": { - "description": "", - "properties": { - "user_terms_acceptance": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_user_terms_acceptance" - } - ], - "description": "Information about cardholder acceptance of Celtic [Authorized User Terms](https://stripe.com/docs/issuing/cards#accept-authorized-user-terms). Required for cards backed by a Celtic program.", - "nullable": true - } - }, - "title": "IssuingCardholderCardIssuing", - "type": "object", - "x-expandableFields": [ - "user_terms_acceptance" - ] - }, - "issuing_cardholder_company": { - "description": "", - "properties": { - "tax_id_provided": { - "description": "Whether the company's business ID number was provided.", - "type": "boolean" - } - }, - "required": [ - "tax_id_provided" - ], - "title": "IssuingCardholderCompany", - "type": "object", - "x-expandableFields": [] - }, - "issuing_cardholder_id_document": { - "description": "", - "properties": { - "back": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "front": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - } - }, - "title": "IssuingCardholderIdDocument", - "type": "object", - "x-expandableFields": [ - "back", - "front" - ] - }, - "issuing_cardholder_individual": { - "description": "", - "properties": { - "card_issuing": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_card_issuing" - } - ], - "description": "Information related to the card_issuing program for this cardholder.", - "nullable": true - }, - "dob": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_individual_dob" - } - ], - "description": "The date of birth of this cardholder.", - "nullable": true - }, - "first_name": { - "description": "The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last_name": { - "description": "The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verification": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_verification" - } - ], - "description": "Government-issued ID document for this cardholder.", - "nullable": true - } - }, - "title": "IssuingCardholderIndividual", - "type": "object", - "x-expandableFields": [ - "card_issuing", - "dob", - "verification" - ] - }, - "issuing_cardholder_individual_dob": { - "description": "", - "properties": { - "day": { - "description": "The day of birth, between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "The month of birth, between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year of birth.", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingCardholderIndividualDOB", - "type": "object", - "x-expandableFields": [] - }, - "issuing_cardholder_requirements": { - "description": "", - "properties": { - "disabled_reason": { - "description": "If `disabled_reason` is present, all cards will decline authorizations with `cardholder_verification_required` reason.", - "enum": [ - "listed", - "rejected.listed", - "requirements.past_due", - "under_review" - ], - "nullable": true, - "type": "string" - }, - "past_due": { - "description": "Array of fields that need to be collected in order to verify and re-enable the cardholder.", - "items": { - "enum": [ - "company.tax_id", - "individual.card_issuing.user_terms_acceptance.date", - "individual.card_issuing.user_terms_acceptance.ip", - "individual.dob.day", - "individual.dob.month", - "individual.dob.year", - "individual.first_name", - "individual.last_name", - "individual.verification.document" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - } - }, - "title": "IssuingCardholderRequirements", - "type": "object", - "x-expandableFields": [] - }, - "issuing_cardholder_spending_limit": { - "description": "", - "properties": { - "amount": { - "description": "Maximum amount allowed to spend per interval. This amount is in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "categories": { - "description": "Array of strings containing [categories](https://stripe.com/docs/api#issuing_authorization_object-merchant_data-category) this limit applies to. Omitting this field will apply the limit to all categories.", - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "interval": { - "description": "Interval (or event) to which the amount applies.", - "enum": [ - "all_time", - "daily", - "monthly", - "per_authorization", - "weekly", - "yearly" - ], - "type": "string" - } - }, - "required": [ - "amount", - "interval" - ], - "title": "IssuingCardholderSpendingLimit", - "type": "object", - "x-expandableFields": [] - }, - "issuing_cardholder_user_terms_acceptance": { - "description": "", - "properties": { - "date": { - "description": "The Unix timestamp marking when the cardholder accepted the Authorized User Terms.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "ip": { - "description": "The IP address from which the cardholder accepted the Authorized User Terms.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The user agent of the browser from which the cardholder accepted the Authorized User Terms.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingCardholderUserTermsAcceptance", - "type": "object", - "x-expandableFields": [] - }, - "issuing_cardholder_verification": { - "description": "", - "properties": { - "document": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_cardholder_id_document" - } - ], - "description": "An identifying document, either a passport or local ID card.", - "nullable": true - } - }, - "title": "IssuingCardholderVerification", - "type": "object", - "x-expandableFields": [ - "document" - ] - }, - "issuing_dispute_canceled_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "canceled_at": { - "description": "Date when order was canceled.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "cancellation_policy_provided": { - "description": "Whether the cardholder was provided with a cancellation policy.", - "nullable": true, - "type": "boolean" - }, - "cancellation_reason": { - "description": "Reason for canceling the order.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "expected_at": { - "description": "Date when the cardholder expected to receive the product.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_description": { - "description": "Description of the merchandise or service that was purchased.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_type": { - "description": "Whether the product was a merchandise or service.", - "enum": [ - "merchandise", - "service" - ], - "nullable": true, - "type": "string" - }, - "return_status": { - "description": "Result of cardholder's attempt to return the product.", - "enum": [ - "merchant_rejected", - "successful" - ], - "nullable": true, - "type": "string" - }, - "returned_at": { - "description": "Date when the product was returned or attempted to be returned.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingDisputeCanceledEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_duplicate_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "card_statement": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the card statement showing that the product had already been paid for.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "cash_receipt": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Copy of the receipt showing that the product had been paid for in cash.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "check_image": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Image of the front and back of the check that was used to pay for the product.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "original_transaction": { - "description": "Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingDisputeDuplicateEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation", - "card_statement", - "cash_receipt", - "check_image" - ] - }, - "issuing_dispute_evidence": { - "description": "", - "properties": { - "canceled": { - "$ref": "#/components/schemas/issuing_dispute_canceled_evidence" - }, - "duplicate": { - "$ref": "#/components/schemas/issuing_dispute_duplicate_evidence" - }, - "fraudulent": { - "$ref": "#/components/schemas/issuing_dispute_fraudulent_evidence" - }, - "merchandise_not_as_described": { - "$ref": "#/components/schemas/issuing_dispute_merchandise_not_as_described_evidence" - }, - "no_valid_authorization": { - "$ref": "#/components/schemas/issuing_dispute_no_valid_authorization_evidence" - }, - "not_received": { - "$ref": "#/components/schemas/issuing_dispute_not_received_evidence" - }, - "other": { - "$ref": "#/components/schemas/issuing_dispute_other_evidence" - }, - "reason": { - "description": "The reason for filing the dispute. Its value will match the field containing the evidence.", - "enum": [ - "canceled", - "duplicate", - "fraudulent", - "merchandise_not_as_described", - "no_valid_authorization", - "not_received", - "other", - "service_not_as_described" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "service_not_as_described": { - "$ref": "#/components/schemas/issuing_dispute_service_not_as_described_evidence" - } - }, - "required": [ - "reason" - ], - "title": "IssuingDisputeEvidence", - "type": "object", - "x-expandableFields": [ - "canceled", - "duplicate", - "fraudulent", - "merchandise_not_as_described", - "no_valid_authorization", - "not_received", - "other", - "service_not_as_described" - ] - }, - "issuing_dispute_fraudulent_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingDisputeFraudulentEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_merchandise_not_as_described_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "received_at": { - "description": "Date when the product was received.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "return_description": { - "description": "Description of the cardholder's attempt to return the product.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "return_status": { - "description": "Result of cardholder's attempt to return the product.", - "enum": [ - "merchant_rejected", - "successful" - ], - "nullable": true, - "type": "string" - }, - "returned_at": { - "description": "Date when the product was returned or attempted to be returned.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingDisputeMerchandiseNotAsDescribedEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_no_valid_authorization_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingDisputeNoValidAuthorizationEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_not_received_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "expected_at": { - "description": "Date when the cardholder expected to receive the product.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_description": { - "description": "Description of the merchandise or service that was purchased.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_type": { - "description": "Whether the product was a merchandise or service.", - "enum": [ - "merchandise", - "service" - ], - "nullable": true, - "type": "string" - } - }, - "title": "IssuingDisputeNotReceivedEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_other_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_description": { - "description": "Description of the merchandise or service that was purchased.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "product_type": { - "description": "Whether the product was a merchandise or service.", - "enum": [ - "merchandise", - "service" - ], - "nullable": true, - "type": "string" - } - }, - "title": "IssuingDisputeOtherEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_service_not_as_described_evidence": { - "description": "", - "properties": { - "additional_documentation": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "(ID of a [file upload](https://stripe.com/docs/guides/file-upload)) Additional documentation supporting the dispute.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "canceled_at": { - "description": "Date when order was canceled.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "cancellation_reason": { - "description": "Reason for canceling the order.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "explanation": { - "description": "Explanation of why the cardholder is disputing this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "received_at": { - "description": "Date when the product was received.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingDisputeServiceNotAsDescribedEvidence", - "type": "object", - "x-expandableFields": [ - "additional_documentation" - ] - }, - "issuing_dispute_treasury": { - "description": "", - "properties": { - "debit_reversal": { - "description": "The Treasury [DebitReversal](https://stripe.com/docs/api/treasury/debit_reversals) representing this Issuing dispute", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "received_debit": { - "description": "The Treasury [ReceivedDebit](https://stripe.com/docs/api/treasury/received_debits) that is being disputed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "received_debit" - ], - "title": "IssuingDisputeTreasury", - "type": "object", - "x-expandableFields": [] - }, - "issuing_network_token_address": { - "description": "", - "properties": { - "line1": { - "description": "The street address of the cardholder tokenizing the card.", - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "description": "The postal code of the cardholder tokenizing the card.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "line1", - "postal_code" - ], - "title": "IssuingNetworkTokenAddress", - "type": "object", - "x-expandableFields": [] - }, - "issuing_network_token_device": { - "description": "", - "properties": { - "device_fingerprint": { - "description": "An obfuscated ID derived from the device ID.", - "maxLength": 5000, - "type": "string" - }, - "ip_address": { - "description": "The IP address of the device at provisioning time.", - "maxLength": 5000, - "type": "string" - }, - "location": { - "description": "The geographic latitude/longitude coordinates of the device at provisioning time. The format is [+-]decimal/[+-]decimal.", - "maxLength": 5000, - "type": "string" - }, - "name": { - "description": "The name of the device used for tokenization.", - "maxLength": 5000, - "type": "string" - }, - "phone_number": { - "description": "The phone number of the device used for tokenization.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "The type of device used for tokenization.", - "enum": [ - "other", - "phone", - "watch" - ], - "type": "string" - } - }, - "title": "IssuingNetworkTokenDevice", - "type": "object", - "x-expandableFields": [] - }, - "issuing_network_token_mastercard": { - "description": "", - "properties": { - "card_reference_id": { - "description": "A unique reference ID from MasterCard to represent the card account number.", - "maxLength": 5000, - "type": "string" - }, - "token_reference_id": { - "description": "The network-unique identifier for the token.", - "maxLength": 5000, - "type": "string" - }, - "token_requestor_id": { - "description": "The ID of the entity requesting tokenization, specific to MasterCard.", - "maxLength": 5000, - "type": "string" - }, - "token_requestor_name": { - "description": "The name of the entity requesting tokenization, if known. This is directly provided from MasterCard.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "token_reference_id", - "token_requestor_id" - ], - "title": "IssuingNetworkTokenMastercard", - "type": "object", - "x-expandableFields": [] - }, - "issuing_network_token_network_data": { - "description": "", - "properties": { - "device": { - "$ref": "#/components/schemas/issuing_network_token_device" - }, - "mastercard": { - "$ref": "#/components/schemas/issuing_network_token_mastercard" - }, - "type": { - "description": "The network that the token is associated with. An additional hash is included with a name matching this value, containing tokenization data specific to the card network.", - "enum": [ - "mastercard", - "visa" - ], - "type": "string" - }, - "visa": { - "$ref": "#/components/schemas/issuing_network_token_visa" - }, - "wallet_provider": { - "$ref": "#/components/schemas/issuing_network_token_wallet_provider" - } - }, - "required": [ - "type" - ], - "title": "IssuingNetworkTokenNetworkData", - "type": "object", - "x-expandableFields": [ - "device", - "mastercard", - "visa", - "wallet_provider" - ] - }, - "issuing_network_token_visa": { - "description": "", - "properties": { - "card_reference_id": { - "description": "A unique reference ID from Visa to represent the card account number.", - "maxLength": 5000, - "type": "string" - }, - "token_reference_id": { - "description": "The network-unique identifier for the token.", - "maxLength": 5000, - "type": "string" - }, - "token_requestor_id": { - "description": "The ID of the entity requesting tokenization, specific to Visa.", - "maxLength": 5000, - "type": "string" - }, - "token_risk_score": { - "description": "Degree of risk associated with the token between `01` and `99`, with higher number indicating higher risk. A `00` value indicates the token was not scored by Visa.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "card_reference_id", - "token_reference_id", - "token_requestor_id" - ], - "title": "IssuingNetworkTokenVisa", - "type": "object", - "x-expandableFields": [] - }, - "issuing_network_token_wallet_provider": { - "description": "", - "properties": { - "account_id": { - "description": "The wallet provider-given account ID of the digital wallet the token belongs to.", - "maxLength": 5000, - "type": "string" - }, - "account_trust_score": { - "description": "An evaluation on the trustworthiness of the wallet account between 1 and 5. A higher score indicates more trustworthy.", - "type": "integer" - }, - "card_number_source": { - "description": "The method used for tokenizing a card.", - "enum": [ - "app", - "manual", - "on_file", - "other" - ], - "type": "string" - }, - "cardholder_address": { - "$ref": "#/components/schemas/issuing_network_token_address" - }, - "cardholder_name": { - "description": "The name of the cardholder tokenizing the card.", - "maxLength": 5000, - "type": "string" - }, - "device_trust_score": { - "description": "An evaluation on the trustworthiness of the device. A higher score indicates more trustworthy.", - "type": "integer" - }, - "hashed_account_email_address": { - "description": "The hashed email address of the cardholder's account with the wallet provider.", - "maxLength": 5000, - "type": "string" - }, - "reason_codes": { - "description": "The reasons for suggested tokenization given by the card network.", - "items": { - "enum": [ - "account_card_too_new", - "account_recently_changed", - "account_too_new", - "account_too_new_since_launch", - "additional_device", - "data_expired", - "defer_id_v_decision", - "device_recently_lost", - "good_activity_history", - "has_suspended_tokens", - "high_risk", - "inactive_account", - "long_account_tenure", - "low_account_score", - "low_device_score", - "low_phone_number_score", - "network_service_error", - "outside_home_territory", - "provisioning_cardholder_mismatch", - "provisioning_device_and_cardholder_mismatch", - "provisioning_device_mismatch", - "same_device_no_prior_authentication", - "same_device_successful_prior_authentication", - "software_update", - "suspicious_activity", - "too_many_different_cardholders", - "too_many_recent_attempts", - "too_many_recent_tokens" - ], - "type": "string" - }, - "type": "array" - }, - "suggested_decision": { - "description": "The recommendation on responding to the tokenization request.", - "enum": [ - "approve", - "decline", - "require_auth" - ], - "type": "string" - }, - "suggested_decision_version": { - "description": "The version of the standard for mapping reason codes followed by the wallet provider.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "IssuingNetworkTokenWalletProvider", - "type": "object", - "x-expandableFields": [ - "cardholder_address" - ] - }, - "issuing_personalization_design_carrier_text": { - "description": "", - "properties": { - "footer_body": { - "description": "The footer body text of the carrier letter.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "footer_title": { - "description": "The footer title text of the carrier letter.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "header_body": { - "description": "The header body text of the carrier letter.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "header_title": { - "description": "The header title text of the carrier letter.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingPersonalizationDesignCarrierText", - "type": "object", - "x-expandableFields": [] - }, - "issuing_personalization_design_preferences": { - "description": "", - "properties": { - "is_default": { - "description": "Whether we use this personalization design to create cards when one isn't specified. A connected account uses the Connect platform's default design if no personalization design is set as the default design.", - "type": "boolean" - }, - "is_platform_default": { - "description": "Whether this personalization design is used to create cards when one is not specified and a default for this connected account does not exist.", - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "is_default" - ], - "title": "IssuingPersonalizationDesignPreferences", - "type": "object", - "x-expandableFields": [] - }, - "issuing_personalization_design_rejection_reasons": { - "description": "", - "properties": { - "card_logo": { - "description": "The reason(s) the card logo was rejected.", - "items": { - "enum": [ - "geographic_location", - "inappropriate", - "network_name", - "non_binary_image", - "non_fiat_currency", - "other", - "other_entity", - "promotional_material" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "carrier_text": { - "description": "The reason(s) the carrier text was rejected.", - "items": { - "enum": [ - "geographic_location", - "inappropriate", - "network_name", - "non_fiat_currency", - "other", - "other_entity", - "promotional_material" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "title": "IssuingPersonalizationDesignRejectionReasons", - "type": "object", - "x-expandableFields": [] - }, - "issuing_physical_bundle_features": { - "description": "", - "properties": { - "card_logo": { - "description": "The policy for how to use card logo images in a card design with this physical bundle.", - "enum": [ - "optional", - "required", - "unsupported" - ], - "type": "string" - }, - "carrier_text": { - "description": "The policy for how to use carrier letter text in a card design with this physical bundle.", - "enum": [ - "optional", - "required", - "unsupported" - ], - "type": "string" - }, - "second_line": { - "description": "The policy for how to use a second line on a card with this physical bundle.", - "enum": [ - "optional", - "required", - "unsupported" - ], - "type": "string" - } - }, - "required": [ - "card_logo", - "carrier_text", - "second_line" - ], - "title": "IssuingPhysicalBundleFeatures", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_amount_details": { - "description": "", - "properties": { - "atm_fee": { - "description": "The fee charged by the ATM for the cash withdrawal.", - "nullable": true, - "type": "integer" - }, - "cashback_amount": { - "description": "The amount of cash requested by the cardholder.", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingTransactionAmountDetails", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_fleet_cardholder_prompt_data": { - "description": "", - "properties": { - "driver_id": { - "description": "Driver ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "odometer": { - "description": "Odometer reading.", - "nullable": true, - "type": "integer" - }, - "unspecified_id": { - "description": "An alphanumeric ID. This field is used when a vehicle ID, driver ID, or generic ID is entered by the cardholder, but the merchant or card network did not specify the prompt type.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_id": { - "description": "User ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "vehicle_number": { - "description": "Vehicle number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionFleetCardholderPromptData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_fleet_data": { - "description": "", - "properties": { - "cardholder_prompt_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fleet_cardholder_prompt_data" - } - ], - "description": "Answers to prompts presented to cardholder at point of sale.", - "nullable": true - }, - "purchase_type": { - "description": "The type of purchase. One of `fuel_purchase`, `non_fuel_purchase`, or `fuel_and_non_fuel_purchase`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reported_breakdown": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fleet_reported_breakdown" - } - ], - "description": "More information about the total amount. This information is not guaranteed to be accurate as some merchants may provide unreliable data.", - "nullable": true - }, - "service_type": { - "description": "The type of fuel service. One of `non_fuel_transaction`, `full_service`, or `self_service`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionFleetData", - "type": "object", - "x-expandableFields": [ - "cardholder_prompt_data", - "reported_breakdown" - ] - }, - "issuing_transaction_fleet_fuel_price_data": { - "description": "", - "properties": { - "gross_amount_decimal": { - "description": "Gross fuel amount that should equal Fuel Volume multipled by Fuel Unit Cost, inclusive of taxes.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionFleetFuelPriceData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_fleet_non_fuel_price_data": { - "description": "", - "properties": { - "gross_amount_decimal": { - "description": "Gross non-fuel amount that should equal the sum of the line items, inclusive of taxes.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionFleetNonFuelPriceData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_fleet_reported_breakdown": { - "description": "", - "properties": { - "fuel": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fleet_fuel_price_data" - } - ], - "description": "Breakdown of fuel portion of the purchase.", - "nullable": true - }, - "non_fuel": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fleet_non_fuel_price_data" - } - ], - "description": "Breakdown of non-fuel portion of the purchase.", - "nullable": true - }, - "tax": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fleet_tax_data" - } - ], - "description": "Information about tax included in this transaction.", - "nullable": true - } - }, - "title": "IssuingTransactionFleetReportedBreakdown", - "type": "object", - "x-expandableFields": [ - "fuel", - "non_fuel", - "tax" - ] - }, - "issuing_transaction_fleet_tax_data": { - "description": "", - "properties": { - "local_amount_decimal": { - "description": "Amount of state or provincial Sales Tax included in the transaction amount. Null if not reported by merchant or not subject to tax.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "national_amount_decimal": { - "description": "Amount of national Sales Tax or VAT included in the transaction amount. Null if not reported by merchant or not subject to tax.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionFleetTaxData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_flight_data": { - "description": "", - "properties": { - "departure_at": { - "description": "The time that the flight departed.", - "nullable": true, - "type": "integer" - }, - "passenger_name": { - "description": "The name of the passenger.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "refundable": { - "description": "Whether the ticket is refundable.", - "nullable": true, - "type": "boolean" - }, - "segments": { - "description": "The legs of the trip.", - "items": { - "$ref": "#/components/schemas/issuing_transaction_flight_data_leg" - }, - "nullable": true, - "type": "array" - }, - "travel_agency": { - "description": "The travel agency that issued the ticket.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionFlightData", - "type": "object", - "x-expandableFields": [ - "segments" - ] - }, - "issuing_transaction_flight_data_leg": { - "description": "", - "properties": { - "arrival_airport_code": { - "description": "The three-letter IATA airport code of the flight's destination.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "carrier": { - "description": "The airline carrier code.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "departure_airport_code": { - "description": "The three-letter IATA airport code that the flight departed from.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "flight_number": { - "description": "The flight number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "service_class": { - "description": "The flight's service class.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "stopover_allowed": { - "description": "Whether a stopover is allowed on this flight.", - "nullable": true, - "type": "boolean" - } - }, - "title": "IssuingTransactionFlightDataLeg", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_fuel_data": { - "description": "", - "properties": { - "industry_product_code": { - "description": "[Conexxus Payment System Product Code](https://www.conexxus.org/conexxus-payment-system-product-codes) identifying the primary fuel product purchased.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity_decimal": { - "description": "The quantity of `unit`s of fuel that was dispensed, represented as a decimal string with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "type": { - "description": "The type of fuel that was purchased. One of `diesel`, `unleaded_plus`, `unleaded_regular`, `unleaded_super`, or `other`.", - "maxLength": 5000, - "type": "string" - }, - "unit": { - "description": "The units for `quantity_decimal`. One of `charging_minute`, `imperial_gallon`, `kilogram`, `kilowatt_hour`, `liter`, `pound`, `us_gallon`, or `other`.", - "maxLength": 5000, - "type": "string" - }, - "unit_cost_decimal": { - "description": "The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places.", - "format": "decimal", - "type": "string" - } - }, - "required": [ - "type", - "unit", - "unit_cost_decimal" - ], - "title": "IssuingTransactionFuelData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_lodging_data": { - "description": "", - "properties": { - "check_in_at": { - "description": "The time of checking into the lodging.", - "nullable": true, - "type": "integer" - }, - "nights": { - "description": "The number of nights stayed at the lodging.", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingTransactionLodgingData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_network_data": { - "description": "", - "properties": { - "authorization_code": { - "description": "A code created by Stripe which is shared with the merchant to validate the authorization. This field will be populated if the authorization message was approved. The code typically starts with the letter \"S\", followed by a six-digit number. For example, \"S498162\". Please note that the code is not guaranteed to be unique across authorizations.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "processing_date": { - "description": "The date the transaction was processed by the card network. This can be different from the date the seller recorded the transaction depending on when the acquirer submits the transaction to the network.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transaction_id": { - "description": "Unique identifier for the authorization assigned by the card network used to match subsequent messages, disputes, and transactions.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionNetworkData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_purchase_details": { - "description": "", - "properties": { - "fleet": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fleet_data" - } - ], - "description": "Fleet-specific information for transactions using Fleet cards.", - "nullable": true - }, - "flight": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_flight_data" - } - ], - "description": "Information about the flight that was purchased with this transaction.", - "nullable": true - }, - "fuel": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_fuel_data" - } - ], - "description": "Information about fuel that was purchased with this transaction.", - "nullable": true - }, - "lodging": { - "anyOf": [ - { - "$ref": "#/components/schemas/issuing_transaction_lodging_data" - } - ], - "description": "Information about lodging that was purchased with this transaction.", - "nullable": true - }, - "receipt": { - "description": "The line items in the purchase.", - "items": { - "$ref": "#/components/schemas/issuing_transaction_receipt_data" - }, - "nullable": true, - "type": "array" - }, - "reference": { - "description": "A merchant-specific order number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionPurchaseDetails", - "type": "object", - "x-expandableFields": [ - "fleet", - "flight", - "fuel", - "lodging", - "receipt" - ] - }, - "issuing_transaction_receipt_data": { - "description": "", - "properties": { - "description": { - "description": "The description of the item. The maximum length of this field is 26 characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity": { - "description": "The quantity of the item.", - "nullable": true, - "type": "number" - }, - "total": { - "description": "The total for this line item in cents.", - "nullable": true, - "type": "integer" - }, - "unit_cost": { - "description": "The unit cost of the item in cents.", - "nullable": true, - "type": "integer" - } - }, - "title": "IssuingTransactionReceiptData", - "type": "object", - "x-expandableFields": [] - }, - "issuing_transaction_treasury": { - "description": "", - "properties": { - "received_credit": { - "description": "The Treasury [ReceivedCredit](https://stripe.com/docs/api/treasury/received_credits) representing this Issuing transaction if it is a refund", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "received_debit": { - "description": "The Treasury [ReceivedDebit](https://stripe.com/docs/api/treasury/received_debits) representing this Issuing transaction if it is a capture", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "IssuingTransactionTreasury", - "type": "object", - "x-expandableFields": [] - }, - "item": { - "description": "A line item.", - "properties": { - "amount_discount": { - "description": "Total discount amount applied. If no discounts were applied, defaults to 0.", - "type": "integer" - }, - "amount_subtotal": { - "description": "Total before any discounts or taxes are applied.", - "type": "integer" - }, - "amount_tax": { - "description": "Total tax amount applied. If no tax was applied, defaults to 0.", - "type": "integer" - }, - "amount_total": { - "description": "Total after discounts and taxes.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.", - "maxLength": 5000, - "type": "string" - }, - "discounts": { - "description": "The discounts applied to the line item.", - "items": { - "$ref": "#/components/schemas/line_items_discount_amount" - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "item" - ], - "type": "string" - }, - "price": { - "anyOf": [ - { - "$ref": "#/components/schemas/price" - } - ], - "description": "The price used to generate the line item.", - "nullable": true - }, - "quantity": { - "description": "The quantity of products being purchased.", - "nullable": true, - "type": "integer" - }, - "taxes": { - "description": "The taxes applied to the line item.", - "items": { - "$ref": "#/components/schemas/line_items_tax_amount" - }, - "type": "array" - } - }, - "required": [ - "amount_discount", - "amount_subtotal", - "amount_tax", - "amount_total", - "currency", - "description", - "id", - "object" - ], - "title": "LineItem", - "type": "object", - "x-expandableFields": [ - "discounts", - "price", - "taxes" - ], - "x-resourceId": "item" - }, - "legal_entity_company": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "address_kana": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_japan_address" - } - ], - "description": "The Kana variation of the company's primary address (Japan only).", - "nullable": true - }, - "address_kanji": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_japan_address" - } - ], - "description": "The Kanji variation of the company's primary address (Japan only).", - "nullable": true - }, - "directors_provided": { - "description": "Whether the company's directors have been provided. This Boolean will be `true` if you've manually indicated that all directors are provided via [the `directors_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-directors_provided).", - "type": "boolean" - }, - "executives_provided": { - "description": "Whether the company's executives have been provided. This Boolean will be `true` if you've manually indicated that all executives are provided via [the `executives_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-executives_provided), or if Stripe determined that sufficient executives were provided.", - "type": "boolean" - }, - "export_license_id": { - "description": "The export license ID number of the company, also referred as Import Export Code (India only).", - "maxLength": 5000, - "type": "string" - }, - "export_purpose_code": { - "description": "The purpose code to use for export transactions (India only).", - "maxLength": 5000, - "type": "string" - }, - "name": { - "description": "The company's legal name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name_kana": { - "description": "The Kana variation of the company's legal name (Japan only).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name_kanji": { - "description": "The Kanji variation of the company's legal name (Japan only).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "owners_provided": { - "description": "Whether the company's owners have been provided. This Boolean will be `true` if you've manually indicated that all owners are provided via [the `owners_provided` parameter](https://stripe.com/docs/api/accounts/update#update_account-company-owners_provided), or if Stripe determined that sufficient owners were provided. Stripe determines ownership requirements using both the number of owners provided and their total percent ownership (calculated by adding the `percent_ownership` of each owner together).", - "type": "boolean" - }, - "ownership_declaration": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_ubo_declaration" - } - ], - "description": "This hash is used to attest that the beneficial owner information provided to Stripe is both current and correct.", - "nullable": true - }, - "phone": { - "description": "The company's phone number (used for verification).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "structure": { - "description": "The category identifying the legal structure of the company or legal entity. See [Business structure](https://stripe.com/docs/connect/identity-verification#business-structure) for more details.", - "enum": [ - "free_zone_establishment", - "free_zone_llc", - "government_instrumentality", - "governmental_unit", - "incorporated_non_profit", - "incorporated_partnership", - "limited_liability_partnership", - "llc", - "multi_member_llc", - "private_company", - "private_corporation", - "private_partnership", - "public_company", - "public_corporation", - "public_partnership", - "registered_charity", - "single_member_llc", - "sole_establishment", - "sole_proprietorship", - "tax_exempt_government_instrumentality", - "unincorporated_association", - "unincorporated_non_profit", - "unincorporated_partnership" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "tax_id_provided": { - "description": "Whether the company's business ID number was provided.", - "type": "boolean" - }, - "tax_id_registrar": { - "description": "The jurisdiction in which the `tax_id` is registered (Germany-based companies only).", - "maxLength": 5000, - "type": "string" - }, - "vat_id_provided": { - "description": "Whether the company's business VAT number was provided.", - "type": "boolean" - }, - "verification": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_company_verification" - } - ], - "description": "Information on the verification state of the company.", - "nullable": true - } - }, - "title": "LegalEntityCompany", - "type": "object", - "x-expandableFields": [ - "address", - "address_kana", - "address_kanji", - "ownership_declaration", - "verification" - ] - }, - "legal_entity_company_verification": { - "description": "", - "properties": { - "document": { - "$ref": "#/components/schemas/legal_entity_company_verification_document" - } - }, - "required": [ - "document" - ], - "title": "LegalEntityCompanyVerification", - "type": "object", - "x-expandableFields": [ - "document" - ] - }, - "legal_entity_company_verification_document": { - "description": "", - "properties": { - "back": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The back of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "details": { - "description": "A user-displayable string describing the verification state of this document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "details_code": { - "description": "One of `document_corrupt`, `document_expired`, `document_failed_copy`, `document_failed_greyscale`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_not_readable`, `document_not_uploaded`, `document_type_not_supported`, or `document_too_large`. A machine-readable code specifying the verification state for this document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "front": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The front of a document returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `additional_verification`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - } - }, - "title": "LegalEntityCompanyVerificationDocument", - "type": "object", - "x-expandableFields": [ - "back", - "front" - ] - }, - "legal_entity_dob": { - "description": "", - "properties": { - "day": { - "description": "The day of birth, between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "The month of birth, between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year of birth.", - "nullable": true, - "type": "integer" - } - }, - "title": "LegalEntityDOB", - "type": "object", - "x-expandableFields": [] - }, - "legal_entity_japan_address": { - "description": "", - "properties": { - "city": { - "description": "City/Ward.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "line1": { - "description": "Block/Building number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "line2": { - "description": "Building details.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "postal_code": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "state": { - "description": "Prefecture.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "town": { - "description": "Town/cho-me.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "LegalEntityJapanAddress", - "type": "object", - "x-expandableFields": [] - }, - "legal_entity_person_verification": { - "description": "", - "properties": { - "additional_document": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_person_verification_document" - } - ], - "description": "A document showing address, either a passport, local ID card, or utility bill from a well-known utility company.", - "nullable": true - }, - "details": { - "description": "A user-displayable string describing the verification state for the person. For example, this may say \"Provided identity information could not be verified\".", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "details_code": { - "description": "One of `document_address_mismatch`, `document_dob_mismatch`, `document_duplicate_type`, `document_id_number_mismatch`, `document_name_mismatch`, `document_nationality_mismatch`, `failed_keyed_identity`, or `failed_other`. A machine-readable code specifying the verification state for the person.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "document": { - "$ref": "#/components/schemas/legal_entity_person_verification_document" - }, - "status": { - "description": "The state of verification for the person. Possible values are `unverified`, `pending`, or `verified`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "LegalEntityPersonVerification", - "type": "object", - "x-expandableFields": [ - "additional_document", - "document" - ] - }, - "legal_entity_person_verification_document": { - "description": "", - "properties": { - "back": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The back of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - }, - "details": { - "description": "A user-displayable string describing the verification state of this document. For example, if a document is uploaded and the picture is too fuzzy, this may say \"Identity document is too unclear to read\".", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "details_code": { - "description": "One of `document_corrupt`, `document_country_not_supported`, `document_expired`, `document_failed_copy`, `document_failed_other`, `document_failed_test_mode`, `document_fraudulent`, `document_failed_greyscale`, `document_incomplete`, `document_invalid`, `document_manipulated`, `document_missing_back`, `document_missing_front`, `document_not_readable`, `document_not_uploaded`, `document_photo_mismatch`, `document_too_large`, or `document_type_not_supported`. A machine-readable code specifying the verification state for this document.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "front": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The front of an ID returned by a [file upload](https://stripe.com/docs/api#create_file) with a `purpose` value of `identity_document`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - } - }, - "title": "LegalEntityPersonVerificationDocument", - "type": "object", - "x-expandableFields": [ - "back", - "front" - ] - }, - "legal_entity_ubo_declaration": { - "description": "", - "properties": { - "date": { - "description": "The Unix timestamp marking when the beneficial owner attestation was made.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "ip": { - "description": "The IP address from which the beneficial owner attestation was made.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The user-agent string from the browser where the beneficial owner attestation was made.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "LegalEntityUBODeclaration", - "type": "object", - "x-expandableFields": [] - }, - "line_item": { - "description": "", - "properties": { - "amount": { - "description": "The amount, in cents (or local equivalent).", - "type": "integer" - }, - "amount_excluding_tax": { - "description": "The integer amount in cents (or local equivalent) representing the amount for this line item, excluding all tax and discounts.", - "nullable": true, - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discount_amounts": { - "description": "The amount of discount calculated per discount for this line item.", - "items": { - "$ref": "#/components/schemas/discounts_resource_discount_amount" - }, - "nullable": true, - "type": "array" - }, - "discountable": { - "description": "If true, discounts will apply to this line item. Always false for prorations.", - "type": "boolean" - }, - "discounts": { - "description": "The discounts applied to the invoice line item. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - } - ] - } - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "description": "The ID of the invoice that contains this line item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_item": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoiceitem" - } - ], - "description": "The ID of the [invoice item](https://stripe.com/docs/api/invoiceitems) associated with this line item if any.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoiceitem" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription`, `metadata` reflects the current metadata from the subscription associated with the line item, unless the invoice line was directly updated with different metadata after creation.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "line_item" - ], - "type": "string" - }, - "period": { - "$ref": "#/components/schemas/invoice_line_item_period" - }, - "price": { - "anyOf": [ - { - "$ref": "#/components/schemas/price" - } - ], - "description": "The price of the line item.", - "nullable": true - }, - "proration": { - "description": "Whether this is a proration.", - "type": "boolean" - }, - "proration_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoices_resource_line_items_proration_details" - } - ], - "description": "Additional details for proration line items", - "nullable": true - }, - "quantity": { - "description": "The quantity of the subscription, if the line item is a subscription or a proration.", - "nullable": true, - "type": "integer" - }, - "subscription": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription" - } - ], - "description": "The subscription that the invoice item pertains to, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription" - } - ] - } - }, - "subscription_item": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription_item" - } - ], - "description": "The subscription item that generated this line item. Left empty if the line item is not an explicit result of a subscription.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription_item" - } - ] - } - }, - "tax_amounts": { - "description": "The amount of tax calculated per tax rate for this line item", - "items": { - "$ref": "#/components/schemas/invoice_tax_amount" - }, - "type": "array" - }, - "tax_rates": { - "description": "The tax rates which apply to the line item.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "type": "array" - }, - "type": { - "description": "A string identifying the type of the source of this line item, either an `invoiceitem` or a `subscription`.", - "enum": [ - "invoiceitem", - "subscription" - ], - "type": "string" - }, - "unit_amount_excluding_tax": { - "description": "The amount in cents (or local equivalent) representing the unit amount for this line item, excluding all tax and discounts.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "discountable", - "discounts", - "id", - "livemode", - "metadata", - "object", - "period", - "proration", - "type" - ], - "title": "InvoiceLineItem", - "type": "object", - "x-expandableFields": [ - "discount_amounts", - "discounts", - "invoice_item", - "period", - "price", - "proration_details", - "subscription", - "subscription_item", - "tax_amounts", - "tax_rates" - ], - "x-resourceId": "line_item" - }, - "line_items_discount_amount": { - "description": "", - "properties": { - "amount": { - "description": "The amount discounted.", - "type": "integer" - }, - "discount": { - "$ref": "#/components/schemas/discount" - } - }, - "required": [ - "amount", - "discount" - ], - "title": "LineItemsDiscountAmount", - "type": "object", - "x-expandableFields": [ - "discount" - ] - }, - "line_items_tax_amount": { - "description": "", - "properties": { - "amount": { - "description": "Amount of tax applied for this rate.", - "type": "integer" - }, - "rate": { - "$ref": "#/components/schemas/tax_rate" - }, - "taxability_reason": { - "description": "The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.", - "enum": [ - "customer_exempt", - "not_collecting", - "not_subject_to_tax", - "not_supported", - "portion_product_exempt", - "portion_reduced_rated", - "portion_standard_rated", - "product_exempt", - "product_exempt_holiday", - "proportionally_rated", - "reduced_rated", - "reverse_charge", - "standard_rated", - "taxable_basis_reduced", - "zero_rated" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "taxable_amount": { - "description": "The amount on which tax is calculated, in cents (or local equivalent).", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "amount", - "rate" - ], - "title": "LineItemsTaxAmount", - "type": "object", - "x-expandableFields": [ - "rate" - ] - }, - "linked_account_options_us_bank_account": { - "description": "", - "properties": { - "filters": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_us_bank_account_linked_account_options_filters" - }, - "permissions": { - "description": "The list of permissions to request. The `payment_method` permission must be included.", - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "type": "string" - }, - "type": "array" - }, - "prefetch": { - "description": "Data features requested to be retrieved upon account creation.", - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - }, - "return_url": { - "description": "For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_us_bank_account", - "type": "object", - "x-expandableFields": [ - "filters" - ] - }, - "login_link": { - "description": "Login Links are single-use URLs for a connected account to access the Express Dashboard. The connected account's [account.controller.stripe_dashboard.type](/api/accounts/object#account_object-controller-stripe_dashboard-type) must be `express` to have access to the Express Dashboard.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "login_link" - ], - "type": "string" - }, - "url": { - "description": "The URL for the login link.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "object", - "url" - ], - "title": "LoginLink", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "login_link" - }, - "mandate": { - "description": "A Mandate is a record of the permission that your customer gives you to debit their payment method.", - "properties": { - "customer_acceptance": { - "$ref": "#/components/schemas/customer_acceptance" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "multi_use": { - "$ref": "#/components/schemas/mandate_multi_use" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "mandate" - ], - "type": "string" - }, - "on_behalf_of": { - "description": "The account (if any) that the mandate is intended for.", - "maxLength": 5000, - "type": "string" - }, - "payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the payment method associated with this mandate.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "payment_method_details": { - "$ref": "#/components/schemas/mandate_payment_method_details" - }, - "single_use": { - "$ref": "#/components/schemas/mandate_single_use" - }, - "status": { - "description": "The mandate status indicates whether or not you can use it to initiate a payment.", - "enum": [ - "active", - "inactive", - "pending" - ], - "type": "string" - }, - "type": { - "description": "The type of the mandate.", - "enum": [ - "multi_use", - "single_use" - ], - "type": "string" - } - }, - "required": [ - "customer_acceptance", - "id", - "livemode", - "object", - "payment_method", - "payment_method_details", - "status", - "type" - ], - "title": "Mandate", - "type": "object", - "x-expandableFields": [ - "customer_acceptance", - "multi_use", - "payment_method", - "payment_method_details", - "single_use" - ], - "x-resourceId": "mandate" - }, - "mandate_acss_debit": { - "description": "", - "properties": { - "default_for": { - "description": "List of Stripe products where this mandate can be selected automatically.", - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "description": "Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_schedule": { - "description": "Payment schedule for the mandate.", - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "description": "Transaction type of the mandate.", - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "required": [ - "payment_schedule", - "transaction_type" - ], - "title": "mandate_acss_debit", - "type": "object", - "x-expandableFields": [] - }, - "mandate_amazon_pay": { - "description": "", - "properties": {}, - "title": "mandate_amazon_pay", - "type": "object", - "x-expandableFields": [] - }, - "mandate_au_becs_debit": { - "description": "", - "properties": { - "url": { - "description": "The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "url" - ], - "title": "mandate_au_becs_debit", - "type": "object", - "x-expandableFields": [] - }, - "mandate_bacs_debit": { - "description": "", - "properties": { - "network_status": { - "description": "The status of the mandate on the Bacs network. Can be one of `pending`, `revoked`, `refused`, or `accepted`.", - "enum": [ - "accepted", - "pending", - "refused", - "revoked" - ], - "type": "string" - }, - "reference": { - "description": "The unique reference identifying the mandate on the Bacs network.", - "maxLength": 5000, - "type": "string" - }, - "revocation_reason": { - "description": "When the mandate is revoked on the Bacs network this field displays the reason for the revocation.", - "enum": [ - "account_closed", - "bank_account_restricted", - "bank_ownership_changed", - "could_not_process", - "debit_not_authorized" - ], - "nullable": true, - "type": "string" - }, - "url": { - "description": "The URL that will contain the mandate that the customer has signed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "network_status", - "reference", - "url" - ], - "title": "mandate_bacs_debit", - "type": "object", - "x-expandableFields": [] - }, - "mandate_cashapp": { - "description": "", - "properties": {}, - "title": "mandate_cashapp", - "type": "object", - "x-expandableFields": [] - }, - "mandate_link": { - "description": "", - "properties": {}, - "title": "mandate_link", - "type": "object", - "x-expandableFields": [] - }, - "mandate_multi_use": { - "description": "", - "properties": {}, - "title": "mandate_multi_use", - "type": "object", - "x-expandableFields": [] - }, - "mandate_payment_method_details": { - "description": "", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/mandate_acss_debit" - }, - "amazon_pay": { - "$ref": "#/components/schemas/mandate_amazon_pay" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/mandate_au_becs_debit" - }, - "bacs_debit": { - "$ref": "#/components/schemas/mandate_bacs_debit" - }, - "card": { - "$ref": "#/components/schemas/card_mandate_payment_method_details" - }, - "cashapp": { - "$ref": "#/components/schemas/mandate_cashapp" - }, - "link": { - "$ref": "#/components/schemas/mandate_link" - }, - "paypal": { - "$ref": "#/components/schemas/mandate_paypal" - }, - "revolut_pay": { - "$ref": "#/components/schemas/mandate_revolut_pay" - }, - "sepa_debit": { - "$ref": "#/components/schemas/mandate_sepa_debit" - }, - "type": { - "description": "This mandate corresponds with a specific payment method type. The `payment_method_details` includes an additional hash with the same name and contains mandate information that's specific to that payment method.", - "maxLength": 5000, - "type": "string" - }, - "us_bank_account": { - "$ref": "#/components/schemas/mandate_us_bank_account" - } - }, - "required": [ - "type" - ], - "title": "mandate_payment_method_details", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "card", - "cashapp", - "link", - "paypal", - "revolut_pay", - "sepa_debit", - "us_bank_account" - ] - }, - "mandate_paypal": { - "description": "", - "properties": { - "billing_agreement_id": { - "description": "The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payer_id": { - "description": "PayPal account PayerID. This identifier uniquely identifies the PayPal customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "mandate_paypal", - "type": "object", - "x-expandableFields": [] - }, - "mandate_revolut_pay": { - "description": "", - "properties": {}, - "title": "mandate_revolut_pay", - "type": "object", - "x-expandableFields": [] - }, - "mandate_sepa_debit": { - "description": "", - "properties": { - "reference": { - "description": "The unique reference of the mandate.", - "maxLength": 5000, - "type": "string" - }, - "url": { - "description": "The URL of the mandate. This URL generally contains sensitive information about the customer and should be shared with them exclusively.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "reference", - "url" - ], - "title": "mandate_sepa_debit", - "type": "object", - "x-expandableFields": [] - }, - "mandate_single_use": { - "description": "", - "properties": { - "amount": { - "description": "The amount of the payment on a single use mandate.", - "type": "integer" - }, - "currency": { - "description": "The currency of the payment on a single use mandate.", - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "mandate_single_use", - "type": "object", - "x-expandableFields": [] - }, - "mandate_us_bank_account": { - "description": "", - "properties": { - "collection_method": { - "description": "Mandate collection method", - "enum": [ - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_us_bank_account", - "type": "object", - "x-expandableFields": [] - }, - "networks": { - "description": "", - "properties": { - "available": { - "description": "All available networks for the card.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "preferred": { - "description": "The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "available" - ], - "title": "networks", - "type": "object", - "x-expandableFields": [] - }, - "notification_event_data": { - "description": "", - "properties": { - "object": { - "description": "Object containing the API resource relevant to the event. For example, an `invoice.created` event will have a full [invoice object](https://stripe.com/docs/api#invoice_object) as the value of the object key.", - "type": "object" - }, - "previous_attributes": { - "description": "Object containing the names of the updated attributes and their values prior to the event (only included in events of type `*.updated`). If an array attribute has any updated elements, this object contains the entire array. In Stripe API versions 2017-04-06 or earlier, an updated array attribute in this object includes only the updated array elements.", - "type": "object" - } - }, - "required": [ - "object" - ], - "title": "NotificationEventData", - "type": "object", - "x-expandableFields": [] - }, - "notification_event_request": { - "description": "", - "properties": { - "id": { - "description": "ID of the API request that caused the event. If null, the event was automatic (e.g., Stripe's automatic subscription handling). Request logs are available in the [dashboard](https://dashboard.stripe.com/logs), but currently not in the API.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "idempotency_key": { - "description": "The idempotency key transmitted during the request, if any. *Note: This property is populated only for events on or after May 23, 2017*.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "NotificationEventRequest", - "type": "object", - "x-expandableFields": [] - }, - "offline_acceptance": { - "description": "", - "properties": {}, - "title": "offline_acceptance", - "type": "object", - "x-expandableFields": [] - }, - "online_acceptance": { - "description": "", - "properties": { - "ip_address": { - "description": "The customer accepts the mandate from this IP address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The customer accepts the mandate using the user agent of the browser.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "online_acceptance", - "type": "object", - "x-expandableFields": [] - }, - "outbound_payments_payment_method_details": { - "description": "", - "properties": { - "billing_details": { - "$ref": "#/components/schemas/treasury_shared_resource_billing_details" - }, - "financial_account": { - "$ref": "#/components/schemas/outbound_payments_payment_method_details_financial_account" - }, - "type": { - "description": "The type of the payment method used in the OutboundPayment.", - "enum": [ - "financial_account", - "us_bank_account" - ], - "type": "string" - }, - "us_bank_account": { - "$ref": "#/components/schemas/outbound_payments_payment_method_details_us_bank_account" - } - }, - "required": [ - "billing_details", - "type" - ], - "title": "OutboundPaymentsPaymentMethodDetails", - "type": "object", - "x-expandableFields": [ - "billing_details", - "financial_account", - "us_bank_account" - ] - }, - "outbound_payments_payment_method_details_financial_account": { - "description": "", - "properties": { - "id": { - "description": "Token of the FinancialAccount.", - "maxLength": 5000, - "type": "string" - }, - "network": { - "description": "The rails used to send funds.", - "enum": [ - "stripe" - ], - "type": "string" - } - }, - "required": [ - "id", - "network" - ], - "title": "outbound_payments_payment_method_details_financial_account", - "type": "object", - "x-expandableFields": [] - }, - "outbound_payments_payment_method_details_us_bank_account": { - "description": "", - "properties": { - "account_holder_type": { - "description": "Account holder type: individual or company.", - "enum": [ - "company", - "individual" - ], - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "Account type: checkings or savings. Defaults to checking if omitted.", - "enum": [ - "checking", - "savings" - ], - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "ID of the mandate used to make this payment.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "network": { - "description": "The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type.", - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "routing_number": { - "description": "Routing number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "network" - ], - "title": "outbound_payments_payment_method_details_us_bank_account", - "type": "object", - "x-expandableFields": [ - "mandate" - ] - }, - "outbound_transfers_payment_method_details": { - "description": "", - "properties": { - "billing_details": { - "$ref": "#/components/schemas/treasury_shared_resource_billing_details" - }, - "type": { - "description": "The type of the payment method used in the OutboundTransfer.", - "enum": [ - "us_bank_account" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "$ref": "#/components/schemas/outbound_transfers_payment_method_details_us_bank_account" - } - }, - "required": [ - "billing_details", - "type" - ], - "title": "OutboundTransfersPaymentMethodDetails", - "type": "object", - "x-expandableFields": [ - "billing_details", - "us_bank_account" - ] - }, - "outbound_transfers_payment_method_details_us_bank_account": { - "description": "", - "properties": { - "account_holder_type": { - "description": "Account holder type: individual or company.", - "enum": [ - "company", - "individual" - ], - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "Account type: checkings or savings. Defaults to checking if omitted.", - "enum": [ - "checking", - "savings" - ], - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "ID of the mandate used to make this payment.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "network": { - "description": "The network rails used. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type.", - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "routing_number": { - "description": "Routing number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "network" - ], - "title": "outbound_transfers_payment_method_details_us_bank_account", - "type": "object", - "x-expandableFields": [ - "mandate" - ] - }, - "package_dimensions": { - "description": "", - "properties": { - "height": { - "description": "Height, in inches.", - "type": "number" - }, - "length": { - "description": "Length, in inches.", - "type": "number" - }, - "weight": { - "description": "Weight, in ounces.", - "type": "number" - }, - "width": { - "description": "Width, in inches.", - "type": "number" - } - }, - "required": [ - "height", - "length", - "weight", - "width" - ], - "title": "PackageDimensions", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_amount_details": { - "description": "", - "properties": { - "tip": { - "$ref": "#/components/schemas/payment_flows_amount_details_resource_tip" - } - }, - "title": "PaymentFlowsAmountDetails", - "type": "object", - "x-expandableFields": [ - "tip" - ] - }, - "payment_flows_amount_details_resource_tip": { - "description": "", - "properties": { - "amount": { - "description": "Portion of the amount that corresponds to a tip.", - "type": "integer" - } - }, - "title": "PaymentFlowsAmountDetailsResourceTip", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_automatic_payment_methods_payment_intent": { - "description": "", - "properties": { - "allow_redirects": { - "description": "Controls whether this PaymentIntent will accept redirect-based payment methods.\n\nRedirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/payment_intents/confirm) this PaymentIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the payment.", - "enum": [ - "always", - "never" - ], - "type": "string" - }, - "enabled": { - "description": "Automatically calculates compatible payment methods", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentFlowsAutomaticPaymentMethodsPaymentIntent", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_automatic_payment_methods_setup_intent": { - "description": "", - "properties": { - "allow_redirects": { - "description": "Controls whether this SetupIntent will accept redirect-based payment methods.\n\nRedirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/setup_intents/confirm) this SetupIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the setup.", - "enum": [ - "always", - "never" - ], - "type": "string" - }, - "enabled": { - "description": "Automatically calculates compatible payment methods", - "nullable": true, - "type": "boolean" - } - }, - "title": "PaymentFlowsAutomaticPaymentMethodsSetupIntent", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_installment_options": { - "description": "", - "properties": { - "enabled": { - "type": "boolean" - }, - "plan": { - "$ref": "#/components/schemas/payment_method_details_card_installments_plan" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentFlowsInstallmentOptions", - "type": "object", - "x-expandableFields": [ - "plan" - ] - }, - "payment_flows_private_payment_methods_alipay": { - "description": "", - "properties": {}, - "title": "PaymentFlowsPrivatePaymentMethodsAlipay", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_alipay_details": { - "description": "", - "properties": { - "buyer_id": { - "description": "Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same.", - "maxLength": 5000, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular Alipay account. You can use this attribute to check whether two Alipay accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transaction_id": { - "description": "Transaction ID of this particular Alipay transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentFlowsPrivatePaymentMethodsAlipayDetails", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_card_details_api_resource_enterprise_features_extended_authorization_extended_authorization": { - "description": "", - "properties": { - "status": { - "description": "Indicates whether or not the capture window is extended beyond the standard authorization.", - "enum": [ - "disabled", - "enabled" - ], - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "PaymentFlowsPrivatePaymentMethodsCardDetailsAPIResourceEnterpriseFeaturesExtendedAuthorizationExtendedAuthorization", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_card_details_api_resource_enterprise_features_incremental_authorization_incremental_authorization": { - "description": "", - "properties": { - "status": { - "description": "Indicates whether or not the incremental authorization feature is supported.", - "enum": [ - "available", - "unavailable" - ], - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "PaymentFlowsPrivatePaymentMethodsCardDetailsAPIResourceEnterpriseFeaturesIncrementalAuthorizationIncrementalAuthorization", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_card_details_api_resource_enterprise_features_overcapture_overcapture": { - "description": "", - "properties": { - "maximum_amount_capturable": { - "description": "The maximum amount that can be captured.", - "type": "integer" - }, - "status": { - "description": "Indicates whether or not the authorized amount can be over-captured.", - "enum": [ - "available", - "unavailable" - ], - "type": "string" - } - }, - "required": [ - "maximum_amount_capturable", - "status" - ], - "title": "PaymentFlowsPrivatePaymentMethodsCardDetailsAPIResourceEnterpriseFeaturesOvercaptureOvercapture", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_card_details_api_resource_multicapture": { - "description": "", - "properties": { - "status": { - "description": "Indicates whether or not multiple captures are supported.", - "enum": [ - "available", - "unavailable" - ], - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "PaymentFlowsPrivatePaymentMethodsCardDetailsAPIResourceMulticapture", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_klarna_dob": { - "description": "", - "properties": { - "day": { - "description": "The day of birth, between 1 and 31.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "The month of birth, between 1 and 12.", - "nullable": true, - "type": "integer" - }, - "year": { - "description": "The four-digit year of birth.", - "nullable": true, - "type": "integer" - } - }, - "title": "PaymentFlowsPrivatePaymentMethodsKlarnaDOB", - "type": "object", - "x-expandableFields": [] - }, - "payment_flows_private_payment_methods_us_bank_account_linked_account_options_filters": { - "description": "", - "properties": { - "account_subcategories": { - "description": "The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.", - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "PaymentFlowsPrivatePaymentMethodsUsBankAccountLinkedAccountOptionsFilters", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent": { - "description": "A PaymentIntent guides you through the process of collecting a payment from your customer.\nWe recommend that you create exactly one PaymentIntent for each order or\ncustomer session in your system. You can reference the PaymentIntent later to\nsee the history of payment attempts for a particular session.\n\nA PaymentIntent transitions through\n[multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses)\nthroughout its lifetime as it interfaces with Stripe.js to perform\nauthentication flows and ultimately creates at most one successful charge.\n\nRelated guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents)", - "properties": { - "amount": { - "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "amount_capturable": { - "description": "Amount that can be captured from this PaymentIntent.", - "type": "integer" - }, - "amount_details": { - "$ref": "#/components/schemas/payment_flows_amount_details" - }, - "amount_received": { - "description": "Amount that this PaymentIntent collects.", - "type": "integer" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - } - ], - "description": "ID of the Connect application that created the PaymentIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - } - ] - } - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "nullable": true, - "type": "integer" - }, - "automatic_payment_methods": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_flows_automatic_payment_methods_payment_intent" - } - ], - "description": "Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods)", - "nullable": true - }, - "canceled_at": { - "description": "Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "cancellation_reason": { - "description": "Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, or `automatic`).", - "enum": [ - "abandoned", - "automatic", - "duplicate", - "failed_invoice", - "fraudulent", - "requested_by_customer", - "void_invoice" - ], - "nullable": true, - "type": "string" - }, - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "client_secret": { - "description": "The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. \n\nThe client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.\n\nRefer to our docs to [accept a payment](https://stripe.com/docs/payments/accept-a-payment?ui=elements) and learn about how `client_secret` should be handled.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "confirmation_method": { - "description": "Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.", - "enum": [ - "automatic", - "manual" - ], - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "ID of the Customer this PaymentIntent belongs to, if one exists.\n\nPayment methods attached to other Customers cannot be used with this PaymentIntent.\n\nIf [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.corp.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "ID of the invoice that created this PaymentIntent, if it exists.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "last_payment_error": { - "anyOf": [ - { - "$ref": "#/components/schemas/api_errors" - } - ], - "description": "The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.", - "nullable": true - }, - "latest_charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the latest [Charge object](https://stripe.com/docs/api/charges) created by this PaymentIntent. This property is `null` until PaymentIntent confirmation is attempted.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Learn more about [storing information in metadata](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).", - "type": "object" - }, - "next_action": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_next_action" - } - ], - "description": "If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.", - "nullable": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "payment_intent" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the payment method used in this PaymentIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "payment_method_configuration_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_config_biz_payment_method_configuration_details" - } - ], - "description": "Information about the payment method configuration used for this PaymentIntent.", - "nullable": true - }, - "payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options" - } - ], - "description": "Payment-method-specific configuration for this PaymentIntent.", - "nullable": true - }, - "payment_method_types": { - "description": "The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "processing": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_processing" - } - ], - "description": "If present, this property tells you about the processing state of the payment.", - "nullable": true - }, - "receipt_email": { - "description": "Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "review": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/review" - } - ], - "description": "ID of the review associated with this PaymentIntent, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/review" - } - ] - } - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "off_session", - "on_session" - ], - "nullable": true, - "type": "string" - }, - "shipping": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping" - } - ], - "description": "Shipping information for this PaymentIntent.", - "nullable": true - }, - "statement_descriptor": { - "description": "For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses).", - "enum": [ - "canceled", - "processing", - "requires_action", - "requires_capture", - "requires_confirmation", - "requires_payment_method", - "succeeded" - ], - "type": "string" - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/transfer_data" - } - ], - "description": "The data that automatically creates a Transfer after the payment finalizes. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "nullable": true - }, - "transfer_group": { - "description": "A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "capture_method", - "confirmation_method", - "created", - "currency", - "id", - "livemode", - "object", - "payment_method_types", - "status" - ], - "title": "PaymentIntent", - "type": "object", - "x-expandableFields": [ - "amount_details", - "application", - "automatic_payment_methods", - "customer", - "invoice", - "last_payment_error", - "latest_charge", - "next_action", - "on_behalf_of", - "payment_method", - "payment_method_configuration_details", - "payment_method_options", - "processing", - "review", - "shipping", - "transfer_data" - ], - "x-resourceId": "payment_intent" - }, - "payment_intent_card_processing": { - "description": "", - "properties": { - "customer_notification": { - "$ref": "#/components/schemas/payment_intent_processing_customer_notification" - } - }, - "title": "PaymentIntentCardProcessing", - "type": "object", - "x-expandableFields": [ - "customer_notification" - ] - }, - "payment_intent_next_action": { - "description": "", - "properties": { - "alipay_handle_redirect": { - "$ref": "#/components/schemas/payment_intent_next_action_alipay_handle_redirect" - }, - "boleto_display_details": { - "$ref": "#/components/schemas/payment_intent_next_action_boleto" - }, - "card_await_notification": { - "$ref": "#/components/schemas/payment_intent_next_action_card_await_notification" - }, - "cashapp_handle_redirect_or_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_cashapp_handle_redirect_or_display_qr_code" - }, - "display_bank_transfer_instructions": { - "$ref": "#/components/schemas/payment_intent_next_action_display_bank_transfer_instructions" - }, - "konbini_display_details": { - "$ref": "#/components/schemas/payment_intent_next_action_konbini" - }, - "multibanco_display_details": { - "$ref": "#/components/schemas/payment_intent_next_action_display_multibanco_details" - }, - "oxxo_display_details": { - "$ref": "#/components/schemas/payment_intent_next_action_display_oxxo_details" - }, - "paynow_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_paynow_display_qr_code" - }, - "pix_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_pix_display_qr_code" - }, - "promptpay_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_promptpay_display_qr_code" - }, - "redirect_to_url": { - "$ref": "#/components/schemas/payment_intent_next_action_redirect_to_url" - }, - "swish_handle_redirect_or_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_swish_handle_redirect_or_display_qr_code" - }, - "type": { - "description": "Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`.", - "maxLength": 5000, - "type": "string" - }, - "use_stripe_sdk": { - "description": "When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.", - "type": "object" - }, - "verify_with_microdeposits": { - "$ref": "#/components/schemas/payment_intent_next_action_verify_with_microdeposits" - }, - "wechat_pay_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_wechat_pay_display_qr_code" - }, - "wechat_pay_redirect_to_android_app": { - "$ref": "#/components/schemas/payment_intent_next_action_wechat_pay_redirect_to_android_app" - }, - "wechat_pay_redirect_to_ios_app": { - "$ref": "#/components/schemas/payment_intent_next_action_wechat_pay_redirect_to_ios_app" - } - }, - "required": [ - "type" - ], - "title": "PaymentIntentNextAction", - "type": "object", - "x-expandableFields": [ - "alipay_handle_redirect", - "boleto_display_details", - "card_await_notification", - "cashapp_handle_redirect_or_display_qr_code", - "display_bank_transfer_instructions", - "konbini_display_details", - "multibanco_display_details", - "oxxo_display_details", - "paynow_display_qr_code", - "pix_display_qr_code", - "promptpay_display_qr_code", - "redirect_to_url", - "swish_handle_redirect_or_display_qr_code", - "verify_with_microdeposits", - "wechat_pay_display_qr_code", - "wechat_pay_redirect_to_android_app", - "wechat_pay_redirect_to_ios_app" - ] - }, - "payment_intent_next_action_alipay_handle_redirect": { - "description": "", - "properties": { - "native_data": { - "description": "The native data to be used with Alipay SDK you must redirect your customer to in order to authenticate the payment in an Android App.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "native_url": { - "description": "The native URL you must redirect your customer to in order to authenticate the payment in an iOS App.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "return_url": { - "description": "If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "The URL you must redirect your customer to in order to authenticate the payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentIntentNextActionAlipayHandleRedirect", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_boleto": { - "description": "", - "properties": { - "expires_at": { - "description": "The timestamp after which the boleto expires.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "hosted_voucher_url": { - "description": "The URL to the hosted boleto voucher page, which allows customers to view the boleto voucher.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "number": { - "description": "The boleto number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "pdf": { - "description": "The URL to the downloadable boleto voucher PDF.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_intent_next_action_boleto", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_card_await_notification": { - "description": "", - "properties": { - "charge_attempt_at": { - "description": "The time that payment will be attempted. If customer approval is required, they need to provide approval before this time.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "customer_approval_required": { - "description": "For payments greater than INR 15000, the customer must provide explicit approval of the payment with their bank. For payments of lower amount, no customer action is required.", - "nullable": true, - "type": "boolean" - } - }, - "title": "PaymentIntentNextActionCardAwaitNotification", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_cashapp_handle_redirect_or_display_qr_code": { - "description": "", - "properties": { - "hosted_instructions_url": { - "description": "The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR code, and supports QR code refreshing on expiration.", - "maxLength": 5000, - "type": "string" - }, - "mobile_auth_url": { - "description": "The url for mobile redirect based auth", - "maxLength": 5000, - "type": "string" - }, - "qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_cashapp_qr_code" - } - }, - "required": [ - "hosted_instructions_url", - "mobile_auth_url", - "qr_code" - ], - "title": "PaymentIntentNextActionCashappHandleRedirectOrDisplayQrCode", - "type": "object", - "x-expandableFields": [ - "qr_code" - ] - }, - "payment_intent_next_action_cashapp_qr_code": { - "description": "", - "properties": { - "expires_at": { - "description": "The date (unix timestamp) when the QR code expires.", - "format": "unix-time", - "type": "integer" - }, - "image_url_png": { - "description": "The image_url_png string used to render QR code", - "maxLength": 5000, - "type": "string" - }, - "image_url_svg": { - "description": "The image_url_svg string used to render QR code", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "expires_at", - "image_url_png", - "image_url_svg" - ], - "title": "PaymentIntentNextActionCashappQRCode", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_display_bank_transfer_instructions": { - "description": "", - "properties": { - "amount_remaining": { - "description": "The remaining amount that needs to be transferred to complete the payment.", - "nullable": true, - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "nullable": true, - "type": "string" - }, - "financial_addresses": { - "description": "A list of financial addresses that can be used to fund the customer balance", - "items": { - "$ref": "#/components/schemas/funding_instructions_bank_transfer_financial_address" - }, - "type": "array" - }, - "hosted_instructions_url": { - "description": "A link to a hosted page that guides your customer through completing the transfer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference": { - "description": "A string identifying this payment. Instruct your customer to include this code in the reference or memo field of their bank transfer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "Type of bank transfer", - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "PaymentIntentNextActionDisplayBankTransferInstructions", - "type": "object", - "x-expandableFields": [ - "financial_addresses" - ] - }, - "payment_intent_next_action_display_multibanco_details": { - "description": "", - "properties": { - "entity": { - "description": "Entity number associated with this Multibanco payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "expires_at": { - "description": "The timestamp at which the Multibanco voucher expires.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "hosted_voucher_url": { - "description": "The URL for the hosted Multibanco voucher page, which allows customers to view a Multibanco voucher.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference": { - "description": "Reference number associated with this Multibanco payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentIntentNextActionDisplayMultibancoDetails", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_display_oxxo_details": { - "description": "", - "properties": { - "expires_after": { - "description": "The timestamp after which the OXXO voucher expires.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "hosted_voucher_url": { - "description": "The URL for the hosted OXXO voucher page, which allows customers to view and print an OXXO voucher.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "number": { - "description": "OXXO reference number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentIntentNextActionDisplayOxxoDetails", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_konbini": { - "description": "", - "properties": { - "expires_at": { - "description": "The timestamp at which the pending Konbini payment expires.", - "format": "unix-time", - "type": "integer" - }, - "hosted_voucher_url": { - "description": "The URL for the Konbini payment instructions page, which allows customers to view and print a Konbini voucher.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "stores": { - "$ref": "#/components/schemas/payment_intent_next_action_konbini_stores" - } - }, - "required": [ - "expires_at", - "stores" - ], - "title": "payment_intent_next_action_konbini", - "type": "object", - "x-expandableFields": [ - "stores" - ] - }, - "payment_intent_next_action_konbini_familymart": { - "description": "", - "properties": { - "confirmation_number": { - "description": "The confirmation number.", - "maxLength": 5000, - "type": "string" - }, - "payment_code": { - "description": "The payment code.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "payment_code" - ], - "title": "payment_intent_next_action_konbini_familymart", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_konbini_lawson": { - "description": "", - "properties": { - "confirmation_number": { - "description": "The confirmation number.", - "maxLength": 5000, - "type": "string" - }, - "payment_code": { - "description": "The payment code.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "payment_code" - ], - "title": "payment_intent_next_action_konbini_lawson", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_konbini_ministop": { - "description": "", - "properties": { - "confirmation_number": { - "description": "The confirmation number.", - "maxLength": 5000, - "type": "string" - }, - "payment_code": { - "description": "The payment code.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "payment_code" - ], - "title": "payment_intent_next_action_konbini_ministop", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_konbini_seicomart": { - "description": "", - "properties": { - "confirmation_number": { - "description": "The confirmation number.", - "maxLength": 5000, - "type": "string" - }, - "payment_code": { - "description": "The payment code.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "payment_code" - ], - "title": "payment_intent_next_action_konbini_seicomart", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_konbini_stores": { - "description": "", - "properties": { - "familymart": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_next_action_konbini_familymart" - } - ], - "description": "FamilyMart instruction details.", - "nullable": true - }, - "lawson": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_next_action_konbini_lawson" - } - ], - "description": "Lawson instruction details.", - "nullable": true - }, - "ministop": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_next_action_konbini_ministop" - } - ], - "description": "Ministop instruction details.", - "nullable": true - }, - "seicomart": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_next_action_konbini_seicomart" - } - ], - "description": "Seicomart instruction details.", - "nullable": true - } - }, - "title": "payment_intent_next_action_konbini_stores", - "type": "object", - "x-expandableFields": [ - "familymart", - "lawson", - "ministop", - "seicomart" - ] - }, - "payment_intent_next_action_paynow_display_qr_code": { - "description": "", - "properties": { - "data": { - "description": "The raw data string used to generate QR code, it should be used together with QR code library.", - "maxLength": 5000, - "type": "string" - }, - "hosted_instructions_url": { - "description": "The URL to the hosted PayNow instructions page, which allows customers to view the PayNow QR code.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "image_url_png": { - "description": "The image_url_png string used to render QR code", - "maxLength": 5000, - "type": "string" - }, - "image_url_svg": { - "description": "The image_url_svg string used to render QR code", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "image_url_png", - "image_url_svg" - ], - "title": "PaymentIntentNextActionPaynowDisplayQrCode", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_pix_display_qr_code": { - "description": "", - "properties": { - "data": { - "description": "The raw data string used to generate QR code, it should be used together with QR code library.", - "maxLength": 5000, - "type": "string" - }, - "expires_at": { - "description": "The date (unix timestamp) when the PIX expires.", - "type": "integer" - }, - "hosted_instructions_url": { - "description": "The URL to the hosted pix instructions page, which allows customers to view the pix QR code.", - "maxLength": 5000, - "type": "string" - }, - "image_url_png": { - "description": "The image_url_png string used to render png QR code", - "maxLength": 5000, - "type": "string" - }, - "image_url_svg": { - "description": "The image_url_svg string used to render svg QR code", - "maxLength": 5000, - "type": "string" - } - }, - "title": "PaymentIntentNextActionPixDisplayQrCode", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_promptpay_display_qr_code": { - "description": "", - "properties": { - "data": { - "description": "The raw data string used to generate QR code, it should be used together with QR code library.", - "maxLength": 5000, - "type": "string" - }, - "hosted_instructions_url": { - "description": "The URL to the hosted PromptPay instructions page, which allows customers to view the PromptPay QR code.", - "maxLength": 5000, - "type": "string" - }, - "image_url_png": { - "description": "The PNG path used to render the QR code, can be used as the source in an HTML img tag", - "maxLength": 5000, - "type": "string" - }, - "image_url_svg": { - "description": "The SVG path used to render the QR code, can be used as the source in an HTML img tag", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "hosted_instructions_url", - "image_url_png", - "image_url_svg" - ], - "title": "PaymentIntentNextActionPromptpayDisplayQrCode", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_redirect_to_url": { - "description": "", - "properties": { - "return_url": { - "description": "If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "The URL you must redirect your customer to in order to authenticate the payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentIntentNextActionRedirectToUrl", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_swish_handle_redirect_or_display_qr_code": { - "description": "", - "properties": { - "hosted_instructions_url": { - "description": "The URL to the hosted Swish instructions page, which allows customers to view the QR code.", - "maxLength": 5000, - "type": "string" - }, - "qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_swish_qr_code" - } - }, - "required": [ - "hosted_instructions_url", - "qr_code" - ], - "title": "PaymentIntentNextActionSwishHandleRedirectOrDisplayQrCode", - "type": "object", - "x-expandableFields": [ - "qr_code" - ] - }, - "payment_intent_next_action_swish_qr_code": { - "description": "", - "properties": { - "data": { - "description": "The raw data string used to generate QR code, it should be used together with QR code library.", - "maxLength": 5000, - "type": "string" - }, - "image_url_png": { - "description": "The image_url_png string used to render QR code", - "maxLength": 5000, - "type": "string" - }, - "image_url_svg": { - "description": "The image_url_svg string used to render QR code", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "image_url_png", - "image_url_svg" - ], - "title": "PaymentIntentNextActionSwishQRCode", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_verify_with_microdeposits": { - "description": "", - "properties": { - "arrival_date": { - "description": "The timestamp when the microdeposits are expected to land.", - "format": "unix-time", - "type": "integer" - }, - "hosted_verification_url": { - "description": "The URL for the hosted verification page, which allows customers to verify their bank account.", - "maxLength": 5000, - "type": "string" - }, - "microdeposit_type": { - "description": "The type of the microdeposit sent to the customer. Used to distinguish between different verification methods.", - "enum": [ - "amounts", - "descriptor_code" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "arrival_date", - "hosted_verification_url" - ], - "title": "PaymentIntentNextActionVerifyWithMicrodeposits", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_wechat_pay_display_qr_code": { - "description": "", - "properties": { - "data": { - "description": "The data being used to generate QR code", - "maxLength": 5000, - "type": "string" - }, - "hosted_instructions_url": { - "description": "The URL to the hosted WeChat Pay instructions page, which allows customers to view the WeChat Pay QR code.", - "maxLength": 5000, - "type": "string" - }, - "image_data_url": { - "description": "The base64 image data for a pre-generated QR code", - "maxLength": 5000, - "type": "string" - }, - "image_url_png": { - "description": "The image_url_png string used to render QR code", - "maxLength": 5000, - "type": "string" - }, - "image_url_svg": { - "description": "The image_url_svg string used to render QR code", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "hosted_instructions_url", - "image_data_url", - "image_url_png", - "image_url_svg" - ], - "title": "PaymentIntentNextActionWechatPayDisplayQrCode", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_wechat_pay_redirect_to_android_app": { - "description": "", - "properties": { - "app_id": { - "description": "app_id is the APP ID registered on WeChat open platform", - "maxLength": 5000, - "type": "string" - }, - "nonce_str": { - "description": "nonce_str is a random string", - "maxLength": 5000, - "type": "string" - }, - "package": { - "description": "package is static value", - "maxLength": 5000, - "type": "string" - }, - "partner_id": { - "description": "an unique merchant ID assigned by WeChat Pay", - "maxLength": 5000, - "type": "string" - }, - "prepay_id": { - "description": "an unique trading ID assigned by WeChat Pay", - "maxLength": 5000, - "type": "string" - }, - "sign": { - "description": "A signature", - "maxLength": 5000, - "type": "string" - }, - "timestamp": { - "description": "Specifies the current time in epoch format", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "app_id", - "nonce_str", - "package", - "partner_id", - "prepay_id", - "sign", - "timestamp" - ], - "title": "PaymentIntentNextActionWechatPayRedirectToAndroidApp", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_next_action_wechat_pay_redirect_to_ios_app": { - "description": "", - "properties": { - "native_url": { - "description": "An universal link that redirect to WeChat Pay app", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "native_url" - ], - "title": "PaymentIntentNextActionWechatPayRedirectToIOSApp", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options": { - "description": "", - "properties": { - "acss_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_acss_debit" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "affirm": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_affirm" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "afterpay_clearpay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_afterpay_clearpay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "alipay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_alipay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "amazon_pay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_amazon_pay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "au_becs_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_au_becs_debit" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "bacs_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_bacs_debit" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_bancontact" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "blik": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_blik" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "boleto": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_boleto" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "card": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_card" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "card_present": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_card_present" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "cashapp": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_cashapp" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_customer_balance" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "eps": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_eps" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "fpx": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_fpx" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "giropay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_giropay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "grabpay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_grabpay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "ideal": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_ideal" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "interac_present": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_interac_present" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "klarna": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_klarna" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "konbini": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_konbini" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "link": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_link" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "mobilepay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_mobilepay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "multibanco": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_multibanco" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "oxxo": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_oxxo" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "p24": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_p24" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "paynow": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_paynow" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "paypal": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_paypal" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "pix": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_pix" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "promptpay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_promptpay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "revolut_pay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_revolut_pay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_sepa_debit" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "sofort": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_sofort" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "swish": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_swish" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "twint": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_twint" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_intent_payment_method_options_us_bank_account" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "wechat_pay": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_wechat_pay" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - }, - "zip": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_zip" - }, - { - "$ref": "#/components/schemas/payment_intent_type_specific_payment_method_options_client" - } - ] - } - }, - "title": "PaymentIntentPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "card_present", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "interac_present", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ] - }, - "payment_intent_payment_method_options_acss_debit": { - "description": "", - "properties": { - "mandate_options": { - "$ref": "#/components/schemas/payment_intent_payment_method_options_mandate_options_acss_debit" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_acss_debit", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "payment_intent_payment_method_options_au_becs_debit": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_au_becs_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_blik": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_blik", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_card": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "installments": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_card_installments" - } - ], - "description": "Installment details for this payment (Mexico only).\n\nFor more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).", - "nullable": true - }, - "mandate_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_options_card_mandate_options" - } - ], - "description": "Configuration options for setting up an eMandate for cards issued in India.", - "nullable": true - }, - "network": { - "description": "Selected network to process this payment intent on. Depends on the available networks of the card attached to the payment intent. Can be only set confirm-time.", - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "nullable": true, - "type": "string" - }, - "request_extended_authorization": { - "description": "Request ability to [capture beyond the standard authorization validity window](https://stripe.com/docs/payments/extended-authorization) for this PaymentIntent.", - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_incremental_authorization": { - "description": "Request ability to [increment the authorization](https://stripe.com/docs/payments/incremental-authorization) for this PaymentIntent.", - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_multicapture": { - "description": "Request ability to make [multiple captures](https://stripe.com/docs/payments/multicapture) for this PaymentIntent.", - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_overcapture": { - "description": "Request ability to [overcapture](https://stripe.com/docs/payments/overcapture) for this PaymentIntent.", - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_three_d_secure": { - "description": "We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.", - "enum": [ - "any", - "automatic", - "challenge" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "require_cvc_recollection": { - "description": "When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter).", - "type": "boolean" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the Kana prefix (shortened Kana descriptor) or Kana statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 22 characters.", - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor_suffix_kanji": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the Kanji prefix (shortened Kanji descriptor) or Kanji statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 17 characters. On card statements, the *concatenation* of both prefix and suffix (including separators) will appear truncated to 17 characters.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_card", - "type": "object", - "x-expandableFields": [ - "installments", - "mandate_options" - ] - }, - "payment_intent_payment_method_options_eps": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_eps", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_link": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_link", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_mandate_options_acss_debit": { - "description": "", - "properties": { - "custom_mandate_url": { - "description": "A URL for custom mandate text", - "maxLength": 5000, - "type": "string" - }, - "interval_description": { - "description": "Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_schedule": { - "description": "Payment schedule for the mandate.", - "enum": [ - "combined", - "interval", - "sporadic" - ], - "nullable": true, - "type": "string" - }, - "transaction_type": { - "description": "Transaction type of the mandate.", - "enum": [ - "business", - "personal" - ], - "nullable": true, - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_mandate_options_acss_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_mandate_options_sepa_debit": { - "description": "", - "properties": {}, - "title": "payment_intent_payment_method_options_mandate_options_sepa_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_mobilepay": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_mobilepay", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_sepa_debit": { - "description": "", - "properties": { - "mandate_options": { - "$ref": "#/components/schemas/payment_intent_payment_method_options_mandate_options_sepa_debit" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_sepa_debit", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "payment_intent_payment_method_options_swish": { - "description": "", - "properties": { - "reference": { - "description": "The order ID displayed in the Swish app after the payment is authorized.", - "maxLength": 35, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_swish", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_payment_method_options_us_bank_account": { - "description": "", - "properties": { - "financial_connections": { - "$ref": "#/components/schemas/linked_account_options_us_bank_account" - }, - "mandate_options": { - "$ref": "#/components/schemas/payment_method_options_us_bank_account_mandate_options" - }, - "preferred_settlement_speed": { - "description": "Preferred transaction settlement speed", - "enum": [ - "fastest", - "standard" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_us_bank_account", - "type": "object", - "x-expandableFields": [ - "financial_connections", - "mandate_options" - ] - }, - "payment_intent_processing": { - "description": "", - "properties": { - "card": { - "$ref": "#/components/schemas/payment_intent_card_processing" - }, - "type": { - "description": "Type of the payment method for which payment is in `processing` state, one of `card`.", - "enum": [ - "card" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PaymentIntentProcessing", - "type": "object", - "x-expandableFields": [ - "card" - ] - }, - "payment_intent_processing_customer_notification": { - "description": "", - "properties": { - "approval_requested": { - "description": "Whether customer approval has been requested for this payment. For payments greater than INR 15000 or mandate amount, the customer must provide explicit approval of the payment with their bank.", - "nullable": true, - "type": "boolean" - }, - "completes_at": { - "description": "If customer approval is required, they need to provide approval before this time.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "PaymentIntentProcessingCustomerNotification", - "type": "object", - "x-expandableFields": [] - }, - "payment_intent_type_specific_payment_method_options_client": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual", - "manual_preferred" - ], - "type": "string" - }, - "installments": { - "$ref": "#/components/schemas/payment_flows_installment_options" - }, - "request_incremental_authorization_support": { - "description": "Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support.", - "type": "boolean" - }, - "require_cvc_recollection": { - "description": "When enabled, using a card that is attached to a customer will require the CVC to be provided again (i.e. using the cvc_token parameter).", - "type": "boolean" - }, - "routing": { - "$ref": "#/components/schemas/payment_method_options_card_present_routing" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "PaymentIntentTypeSpecificPaymentMethodOptionsClient", - "type": "object", - "x-expandableFields": [ - "installments", - "routing" - ] - }, - "payment_link": { - "description": "A payment link is a shareable URL that will take your customers to a hosted payment page. A payment link can be shared and used multiple times.\n\nWhen a customer opens a payment link it will open a new [checkout session](https://stripe.com/docs/api/checkout/sessions) to render the payment page. You can use [checkout session events](https://stripe.com/docs/api/events/types#event_types-checkout.session.completed) to track payments through payment links.\n\nRelated guide: [Payment Links API](https://stripe.com/docs/payment-links)", - "properties": { - "active": { - "description": "Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated.", - "type": "boolean" - }, - "after_completion": { - "$ref": "#/components/schemas/payment_links_resource_after_completion" - }, - "allow_promotion_codes": { - "description": "Whether user redeemable promotion codes are enabled.", - "type": "boolean" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ], - "description": "The ID of the Connect application that created the Payment Link.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ] - } - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account.", - "nullable": true, - "type": "integer" - }, - "application_fee_percent": { - "description": "This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account.", - "nullable": true, - "type": "number" - }, - "automatic_tax": { - "$ref": "#/components/schemas/payment_links_resource_automatic_tax" - }, - "billing_address_collection": { - "description": "Configuration for collecting the customer's billing address. Defaults to `auto`.", - "enum": [ - "auto", - "required" - ], - "type": "string" - }, - "consent_collection": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_consent_collection" - } - ], - "description": "When set, provides configuration to gather active consent from customers.", - "nullable": true - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "custom_fields": { - "description": "Collect additional information from your customer using custom fields. Up to 3 fields are supported.", - "items": { - "$ref": "#/components/schemas/payment_links_resource_custom_fields" - }, - "type": "array" - }, - "custom_text": { - "$ref": "#/components/schemas/payment_links_resource_custom_text" - }, - "customer_creation": { - "description": "Configuration for Customer creation during checkout.", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "inactive_message": { - "description": "The custom message to be displayed to a customer when a payment link is no longer active.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_creation": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_invoice_creation" - } - ], - "description": "Configuration for creating invoice for payment mode payment links.", - "nullable": true - }, - "line_items": { - "description": "The line items representing what is being sold.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentLinksResourceListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "payment_link" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "payment_intent_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_payment_intent_data" - } - ], - "description": "Indicates the parameters to be passed to PaymentIntent creation during checkout.", - "nullable": true - }, - "payment_method_collection": { - "description": "Configuration for collecting a payment method during checkout. Defaults to `always`.", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "payment_method_types": { - "description": "The list of payment method types that customers can use. When `null`, Stripe will dynamically show relevant payment methods you've enabled in your [payment method settings](https://dashboard.stripe.com/settings/payment_methods).", - "items": { - "enum": [ - "affirm", - "afterpay_clearpay", - "alipay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - }, - "phone_number_collection": { - "$ref": "#/components/schemas/payment_links_resource_phone_number_collection" - }, - "restrictions": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_restrictions" - } - ], - "description": "Settings that restrict the usage of a payment link.", - "nullable": true - }, - "shipping_address_collection": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_shipping_address_collection" - } - ], - "description": "Configuration for collecting the customer's shipping address.", - "nullable": true - }, - "shipping_options": { - "description": "The shipping rate options applied to the session.", - "items": { - "$ref": "#/components/schemas/payment_links_resource_shipping_option" - }, - "type": "array" - }, - "submit_type": { - "description": "Indicates the type of transaction being performed which customizes relevant text on the page, such as the submit button.", - "enum": [ - "auto", - "book", - "donate", - "pay" - ], - "type": "string" - }, - "subscription_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_subscription_data" - } - ], - "description": "When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`.", - "nullable": true - }, - "tax_id_collection": { - "$ref": "#/components/schemas/payment_links_resource_tax_id_collection" - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_transfer_data" - } - ], - "description": "The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to.", - "nullable": true - }, - "url": { - "description": "The public URL that can be shared with customers.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "active", - "after_completion", - "allow_promotion_codes", - "automatic_tax", - "billing_address_collection", - "currency", - "custom_fields", - "custom_text", - "customer_creation", - "id", - "livemode", - "metadata", - "object", - "payment_method_collection", - "phone_number_collection", - "shipping_options", - "submit_type", - "tax_id_collection", - "url" - ], - "title": "PaymentLink", - "type": "object", - "x-expandableFields": [ - "after_completion", - "application", - "automatic_tax", - "consent_collection", - "custom_fields", - "custom_text", - "invoice_creation", - "line_items", - "on_behalf_of", - "payment_intent_data", - "phone_number_collection", - "restrictions", - "shipping_address_collection", - "shipping_options", - "subscription_data", - "tax_id_collection", - "transfer_data" - ], - "x-resourceId": "payment_link" - }, - "payment_links_resource_after_completion": { - "description": "", - "properties": { - "hosted_confirmation": { - "$ref": "#/components/schemas/payment_links_resource_completion_behavior_confirmation_page" - }, - "redirect": { - "$ref": "#/components/schemas/payment_links_resource_completion_behavior_redirect" - }, - "type": { - "description": "The specified behavior after the purchase is complete.", - "enum": [ - "hosted_confirmation", - "redirect" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PaymentLinksResourceAfterCompletion", - "type": "object", - "x-expandableFields": [ - "hosted_confirmation", - "redirect" - ] - }, - "payment_links_resource_automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "If `true`, tax will be calculated automatically using the customer's location.", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "PaymentLinksResourceAutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "payment_links_resource_completed_sessions": { - "description": "", - "properties": { - "count": { - "description": "The current number of checkout sessions that have been completed on the payment link which count towards the `completed_sessions` restriction to be met.", - "type": "integer" - }, - "limit": { - "description": "The maximum number of checkout sessions that can be completed for the `completed_sessions` restriction to be met.", - "type": "integer" - } - }, - "required": [ - "count", - "limit" - ], - "title": "PaymentLinksResourceCompletedSessions", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_completion_behavior_confirmation_page": { - "description": "", - "properties": { - "custom_message": { - "description": "The custom message that is displayed to the customer after the purchase is complete.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentLinksResourceCompletionBehaviorConfirmationPage", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_completion_behavior_redirect": { - "description": "", - "properties": { - "url": { - "description": "The URL the customer will be redirected to after the purchase is complete.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "url" - ], - "title": "PaymentLinksResourceCompletionBehaviorRedirect", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_consent_collection": { - "description": "", - "properties": { - "payment_method_reuse_agreement": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_payment_method_reuse_agreement" - } - ], - "description": "Settings related to the payment method reuse text shown in the Checkout UI.", - "nullable": true - }, - "promotions": { - "description": "If set to `auto`, enables the collection of customer consent for promotional communications.", - "enum": [ - "auto", - "none" - ], - "nullable": true, - "type": "string" - }, - "terms_of_service": { - "description": "If set to `required`, it requires cutomers to accept the terms of service before being able to pay. If set to `none`, customers won't be shown a checkbox to accept the terms of service.", - "enum": [ - "none", - "required" - ], - "nullable": true, - "type": "string" - } - }, - "title": "PaymentLinksResourceConsentCollection", - "type": "object", - "x-expandableFields": [ - "payment_method_reuse_agreement" - ] - }, - "payment_links_resource_custom_fields": { - "description": "", - "properties": { - "dropdown": { - "$ref": "#/components/schemas/payment_links_resource_custom_fields_dropdown" - }, - "key": { - "description": "String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters.", - "maxLength": 5000, - "type": "string" - }, - "label": { - "$ref": "#/components/schemas/payment_links_resource_custom_fields_label" - }, - "numeric": { - "$ref": "#/components/schemas/payment_links_resource_custom_fields_numeric" - }, - "optional": { - "description": "Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`.", - "type": "boolean" - }, - "text": { - "$ref": "#/components/schemas/payment_links_resource_custom_fields_text" - }, - "type": { - "description": "The type of the field.", - "enum": [ - "dropdown", - "numeric", - "text" - ], - "type": "string" - } - }, - "required": [ - "key", - "label", - "optional", - "type" - ], - "title": "PaymentLinksResourceCustomFields", - "type": "object", - "x-expandableFields": [ - "dropdown", - "label", - "numeric", - "text" - ] - }, - "payment_links_resource_custom_fields_dropdown": { - "description": "", - "properties": { - "options": { - "description": "The options available for the customer to select. Up to 200 options allowed.", - "items": { - "$ref": "#/components/schemas/payment_links_resource_custom_fields_dropdown_option" - }, - "type": "array" - } - }, - "required": [ - "options" - ], - "title": "PaymentLinksResourceCustomFieldsDropdown", - "type": "object", - "x-expandableFields": [ - "options" - ] - }, - "payment_links_resource_custom_fields_dropdown_option": { - "description": "", - "properties": { - "label": { - "description": "The label for the option, displayed to the customer. Up to 100 characters.", - "maxLength": 5000, - "type": "string" - }, - "value": { - "description": "The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "title": "PaymentLinksResourceCustomFieldsDropdownOption", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_custom_fields_label": { - "description": "", - "properties": { - "custom": { - "description": "Custom text for the label, displayed to the customer. Up to 50 characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "The type of the label.", - "enum": [ - "custom" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PaymentLinksResourceCustomFieldsLabel", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_custom_fields_numeric": { - "description": "", - "properties": { - "maximum_length": { - "description": "The maximum character length constraint for the customer's input.", - "nullable": true, - "type": "integer" - }, - "minimum_length": { - "description": "The minimum character length requirement for the customer's input.", - "nullable": true, - "type": "integer" - } - }, - "title": "PaymentLinksResourceCustomFieldsNumeric", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_custom_fields_text": { - "description": "", - "properties": { - "maximum_length": { - "description": "The maximum character length constraint for the customer's input.", - "nullable": true, - "type": "integer" - }, - "minimum_length": { - "description": "The minimum character length requirement for the customer's input.", - "nullable": true, - "type": "integer" - } - }, - "title": "PaymentLinksResourceCustomFieldsText", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_custom_text": { - "description": "", - "properties": { - "after_submit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_custom_text_position" - } - ], - "description": "Custom text that should be displayed after the payment confirmation button.", - "nullable": true - }, - "shipping_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_custom_text_position" - } - ], - "description": "Custom text that should be displayed alongside shipping address collection.", - "nullable": true - }, - "submit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_custom_text_position" - } - ], - "description": "Custom text that should be displayed alongside the payment confirmation button.", - "nullable": true - }, - "terms_of_service_acceptance": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_custom_text_position" - } - ], - "description": "Custom text that should be displayed in place of the default terms of service agreement text.", - "nullable": true - } - }, - "title": "PaymentLinksResourceCustomText", - "type": "object", - "x-expandableFields": [ - "after_submit", - "shipping_address", - "submit", - "terms_of_service_acceptance" - ] - }, - "payment_links_resource_custom_text_position": { - "description": "", - "properties": { - "message": { - "description": "Text may be up to 1200 characters in length.", - "maxLength": 500, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "PaymentLinksResourceCustomTextPosition", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_invoice_creation": { - "description": "", - "properties": { - "enabled": { - "description": "Enable creating an invoice on successful payment.", - "type": "boolean" - }, - "invoice_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_links_resource_invoice_settings" - } - ], - "description": "Configuration for the invoice. Default invoice values will be used if unspecified.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "PaymentLinksResourceInvoiceCreation", - "type": "object", - "x-expandableFields": [ - "invoice_data" - ] - }, - "payment_links_resource_invoice_settings": { - "description": "", - "properties": { - "account_tax_ids": { - "description": "The account tax IDs associated with the invoice.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "custom_fields": { - "description": "A list of up to 4 custom fields to be displayed on the invoice.", - "items": { - "$ref": "#/components/schemas/invoice_setting_custom_field" - }, - "nullable": true, - "type": "array" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "footer": { - "description": "Footer to be displayed on the invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuer": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "nullable": true - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "rendering_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_setting_rendering_options" - } - ], - "description": "Options for invoice PDF rendering.", - "nullable": true - } - }, - "title": "PaymentLinksResourceInvoiceSettings", - "type": "object", - "x-expandableFields": [ - "account_tax_ids", - "custom_fields", - "issuer", - "rendering_options" - ] - }, - "payment_links_resource_payment_intent_data": { - "description": "", - "properties": { - "capture_method": { - "description": "Indicates when the funds will be captured from the customer's account.", - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "nullable": true, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on [Payment Intents](https://stripe.com/docs/api/payment_intents) generated from this payment link.", - "type": "object" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with the payment method collected during checkout.", - "enum": [ - "off_session", - "on_session" - ], - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "description": "Extra information about the payment. This will appear on your customer's statement when this payment succeeds in creating a charge.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that's set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transfer_group": { - "description": "A string that identifies the resulting payment as part of a group. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers) for details.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "metadata" - ], - "title": "PaymentLinksResourcePaymentIntentData", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_payment_method_reuse_agreement": { - "description": "", - "properties": { - "position": { - "description": "Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used.\n\nWhen set to `hidden`, the payment method reuse agreement text will always be hidden in the UI.", - "enum": [ - "auto", - "hidden" - ], - "type": "string" - } - }, - "required": [ - "position" - ], - "title": "PaymentLinksResourcePaymentMethodReuseAgreement", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_phone_number_collection": { - "description": "", - "properties": { - "enabled": { - "description": "If `true`, a phone number will be collected during checkout.", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentLinksResourcePhoneNumberCollection", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_restrictions": { - "description": "", - "properties": { - "completed_sessions": { - "$ref": "#/components/schemas/payment_links_resource_completed_sessions" - } - }, - "required": [ - "completed_sessions" - ], - "title": "PaymentLinksResourceRestrictions", - "type": "object", - "x-expandableFields": [ - "completed_sessions" - ] - }, - "payment_links_resource_shipping_address_collection": { - "description": "", - "properties": { - "allowed_countries": { - "description": "An array of two-letter ISO country codes representing which countries Checkout should provide as options for shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`.", - "items": { - "enum": [ - "AC", - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CV", - "CW", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MK", - "ML", - "MM", - "MN", - "MO", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SZ", - "TA", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - "ZZ" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "allowed_countries" - ], - "title": "PaymentLinksResourceShippingAddressCollection", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_shipping_option": { - "description": "", - "properties": { - "shipping_amount": { - "description": "A non-negative integer in cents representing how much to charge.", - "type": "integer" - }, - "shipping_rate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/shipping_rate" - } - ], - "description": "The ID of the Shipping Rate to use for this shipping option.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/shipping_rate" - } - ] - } - } - }, - "required": [ - "shipping_amount", - "shipping_rate" - ], - "title": "PaymentLinksResourceShippingOption", - "type": "object", - "x-expandableFields": [ - "shipping_rate" - ] - }, - "payment_links_resource_subscription_data": { - "description": "", - "properties": { - "description": { - "description": "The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_settings": { - "$ref": "#/components/schemas/payment_links_resource_subscription_data_invoice_settings" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on [Subscriptions](https://stripe.com/docs/api/subscriptions) generated from this payment link.", - "type": "object" - }, - "trial_period_days": { - "description": "Integer representing the number of trial period days before the customer is charged for the first time.", - "nullable": true, - "type": "integer" - }, - "trial_settings": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_trials_resource_trial_settings" - } - ], - "description": "Settings related to subscription trials.", - "nullable": true - } - }, - "required": [ - "invoice_settings", - "metadata" - ], - "title": "PaymentLinksResourceSubscriptionData", - "type": "object", - "x-expandableFields": [ - "invoice_settings", - "trial_settings" - ] - }, - "payment_links_resource_subscription_data_invoice_settings": { - "description": "", - "properties": { - "issuer": { - "$ref": "#/components/schemas/connect_account_reference" - } - }, - "required": [ - "issuer" - ], - "title": "PaymentLinksResourceSubscriptionDataInvoiceSettings", - "type": "object", - "x-expandableFields": [ - "issuer" - ] - }, - "payment_links_resource_tax_id_collection": { - "description": "", - "properties": { - "enabled": { - "description": "Indicates whether tax ID collection is enabled for the session.", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentLinksResourceTaxIdCollection", - "type": "object", - "x-expandableFields": [] - }, - "payment_links_resource_transfer_data": { - "description": "", - "properties": { - "amount": { - "description": "The amount in cents (or local equivalent) that will be transferred to the destination account. By default, the entire amount is transferred to the destination.", - "nullable": true, - "type": "integer" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The connected account receiving the transfer.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - } - }, - "required": [ - "destination" - ], - "title": "PaymentLinksResourceTransferData", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "payment_method": { - "description": "PaymentMethod objects represent your customer's payment instruments.\nYou can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to\nCustomer objects to store instrument details for future payments.\n\nRelated guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios).", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/payment_method_acss_debit" - }, - "affirm": { - "$ref": "#/components/schemas/payment_method_affirm" - }, - "afterpay_clearpay": { - "$ref": "#/components/schemas/payment_method_afterpay_clearpay" - }, - "alipay": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_alipay" - }, - "allow_redisplay": { - "description": "This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”.", - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "$ref": "#/components/schemas/payment_method_amazon_pay" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/payment_method_au_becs_debit" - }, - "bacs_debit": { - "$ref": "#/components/schemas/payment_method_bacs_debit" - }, - "bancontact": { - "$ref": "#/components/schemas/payment_method_bancontact" - }, - "billing_details": { - "$ref": "#/components/schemas/billing_details" - }, - "blik": { - "$ref": "#/components/schemas/payment_method_blik" - }, - "boleto": { - "$ref": "#/components/schemas/payment_method_boleto" - }, - "card": { - "$ref": "#/components/schemas/payment_method_card" - }, - "card_present": { - "$ref": "#/components/schemas/payment_method_card_present" - }, - "cashapp": { - "$ref": "#/components/schemas/payment_method_cashapp" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "customer_balance": { - "$ref": "#/components/schemas/payment_method_customer_balance" - }, - "eps": { - "$ref": "#/components/schemas/payment_method_eps" - }, - "fpx": { - "$ref": "#/components/schemas/payment_method_fpx" - }, - "giropay": { - "$ref": "#/components/schemas/payment_method_giropay" - }, - "grabpay": { - "$ref": "#/components/schemas/payment_method_grabpay" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "ideal": { - "$ref": "#/components/schemas/payment_method_ideal" - }, - "interac_present": { - "$ref": "#/components/schemas/payment_method_interac_present" - }, - "klarna": { - "$ref": "#/components/schemas/payment_method_klarna" - }, - "konbini": { - "$ref": "#/components/schemas/payment_method_konbini" - }, - "link": { - "$ref": "#/components/schemas/payment_method_link" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "mobilepay": { - "$ref": "#/components/schemas/payment_method_mobilepay" - }, - "multibanco": { - "$ref": "#/components/schemas/payment_method_multibanco" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "payment_method" - ], - "type": "string" - }, - "oxxo": { - "$ref": "#/components/schemas/payment_method_oxxo" - }, - "p24": { - "$ref": "#/components/schemas/payment_method_p24" - }, - "paynow": { - "$ref": "#/components/schemas/payment_method_paynow" - }, - "paypal": { - "$ref": "#/components/schemas/payment_method_paypal" - }, - "pix": { - "$ref": "#/components/schemas/payment_method_pix" - }, - "promptpay": { - "$ref": "#/components/schemas/payment_method_promptpay" - }, - "radar_options": { - "$ref": "#/components/schemas/radar_radar_options" - }, - "revolut_pay": { - "$ref": "#/components/schemas/payment_method_revolut_pay" - }, - "sepa_debit": { - "$ref": "#/components/schemas/payment_method_sepa_debit" - }, - "sofort": { - "$ref": "#/components/schemas/payment_method_sofort" - }, - "swish": { - "$ref": "#/components/schemas/payment_method_swish" - }, - "twint": { - "$ref": "#/components/schemas/payment_method_twint" - }, - "type": { - "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "card_present", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "interac_present", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "$ref": "#/components/schemas/payment_method_us_bank_account" - }, - "wechat_pay": { - "$ref": "#/components/schemas/payment_method_wechat_pay" - }, - "zip": { - "$ref": "#/components/schemas/payment_method_zip" - } - }, - "required": [ - "billing_details", - "created", - "id", - "livemode", - "object", - "type" - ], - "title": "PaymentMethod", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "billing_details", - "blik", - "boleto", - "card", - "card_present", - "cashapp", - "customer", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "interac_present", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "radar_options", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "x-resourceId": "payment_method" - }, - "payment_method_acss_debit": { - "description": "", - "properties": { - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "institution_number": { - "description": "Institution number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transit_number": { - "description": "Transit number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_acss_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_affirm": { - "description": "", - "properties": {}, - "title": "payment_method_affirm", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_afterpay_clearpay": { - "description": "", - "properties": {}, - "title": "payment_method_afterpay_clearpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_amazon_pay": { - "description": "", - "properties": {}, - "title": "payment_method_amazon_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_au_becs_debit": { - "description": "", - "properties": { - "bsb_number": { - "description": "Six-digit number identifying bank and branch associated with this bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_au_becs_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_bacs_debit": { - "description": "", - "properties": { - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sort_code": { - "description": "Sort code of the bank account. (e.g., `10-20-30`)", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_bacs_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_bancontact": { - "description": "", - "properties": {}, - "title": "payment_method_bancontact", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_blik": { - "description": "", - "properties": {}, - "title": "payment_method_blik", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_boleto": { - "description": "", - "properties": { - "tax_id": { - "description": "Uniquely identifies the customer tax id (CNPJ or CPF)", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "payment_method_boleto", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card": { - "description": "", - "properties": { - "brand": { - "description": "Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "type": "string" - }, - "checks": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_card_checks" - } - ], - "description": "Checks on Card address and CVC if provided.", - "nullable": true - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "display_brand": { - "description": "The brand to use when displaying the card, this accounts for customer's brand choice on dual-branded cards. Can be `american_express`, `cartes_bancaires`, `diners_club`, `discover`, `eftpos_australia`, `interac`, `jcb`, `mastercard`, `union_pay`, `visa`, or `other` and may contain more values in the future.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "type": "string" - }, - "generated_from": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_card_generated_card" - } - ], - "description": "Details of the original PaymentMethod that created this object.", - "nullable": true - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "type": "string" - }, - "networks": { - "anyOf": [ - { - "$ref": "#/components/schemas/networks" - } - ], - "description": "Contains information about card networks that can be used to process the payment.", - "nullable": true - }, - "three_d_secure_usage": { - "anyOf": [ - { - "$ref": "#/components/schemas/three_d_secure_usage" - } - ], - "description": "Contains details on how this Card may be used for 3D Secure authentication.", - "nullable": true - }, - "wallet": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_card_wallet" - } - ], - "description": "If this Card is part of a card wallet, this contains the details of the card wallet.", - "nullable": true - } - }, - "required": [ - "brand", - "exp_month", - "exp_year", - "funding", - "last4" - ], - "title": "payment_method_card", - "type": "object", - "x-expandableFields": [ - "checks", - "generated_from", - "networks", - "three_d_secure_usage", - "wallet" - ] - }, - "payment_method_card_checks": { - "description": "", - "properties": { - "address_line1_check": { - "description": "If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_postal_code_check": { - "description": "If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cvc_check": { - "description": "If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_card_checks", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_generated_card": { - "description": "", - "properties": { - "charge": { - "description": "The charge that created this object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_method_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/card_generated_from_payment_method_details" - } - ], - "description": "Transaction-specific details of the payment method used in the payment.", - "nullable": true - }, - "setup_attempt": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_attempt" - } - ], - "description": "The ID of the SetupAttempt that generated this PaymentMethod, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_attempt" - } - ] - } - } - }, - "title": "payment_method_card_generated_card", - "type": "object", - "x-expandableFields": [ - "payment_method_details", - "setup_attempt" - ] - }, - "payment_method_card_present": { - "description": "", - "properties": { - "brand": { - "description": "Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "brand_product": { - "description": "The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cardholder_name": { - "description": "The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "description": { - "description": "A high-level description of the type of cards issued in this range.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuer": { - "description": "The name of the card's issuing bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "networks": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_card_present_networks" - } - ], - "description": "Contains information about card networks that can be used to process the payment.", - "nullable": true - }, - "preferred_locales": { - "description": "EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "read_method": { - "description": "How card details were read in this transaction.", - "enum": [ - "contact_emv", - "contactless_emv", - "contactless_magstripe_mode", - "magnetic_stripe_fallback", - "magnetic_stripe_track2" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year" - ], - "title": "payment_method_card_present", - "type": "object", - "x-expandableFields": [ - "networks" - ] - }, - "payment_method_card_present_networks": { - "description": "", - "properties": { - "available": { - "description": "All available networks for the card.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "preferred": { - "description": "The preferred network for the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "available" - ], - "title": "payment_method_card_present_networks", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_wallet": { - "description": "", - "properties": { - "amex_express_checkout": { - "$ref": "#/components/schemas/payment_method_card_wallet_amex_express_checkout" - }, - "apple_pay": { - "$ref": "#/components/schemas/payment_method_card_wallet_apple_pay" - }, - "dynamic_last4": { - "description": "(For tokenized numbers only.) The last four digits of the device account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "google_pay": { - "$ref": "#/components/schemas/payment_method_card_wallet_google_pay" - }, - "link": { - "$ref": "#/components/schemas/payment_method_card_wallet_link" - }, - "masterpass": { - "$ref": "#/components/schemas/payment_method_card_wallet_masterpass" - }, - "samsung_pay": { - "$ref": "#/components/schemas/payment_method_card_wallet_samsung_pay" - }, - "type": { - "description": "The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", - "enum": [ - "amex_express_checkout", - "apple_pay", - "google_pay", - "link", - "masterpass", - "samsung_pay", - "visa_checkout" - ], - "type": "string" - }, - "visa_checkout": { - "$ref": "#/components/schemas/payment_method_card_wallet_visa_checkout" - } - }, - "required": [ - "type" - ], - "title": "payment_method_card_wallet", - "type": "object", - "x-expandableFields": [ - "amex_express_checkout", - "apple_pay", - "google_pay", - "link", - "masterpass", - "samsung_pay", - "visa_checkout" - ] - }, - "payment_method_card_wallet_amex_express_checkout": { - "description": "", - "properties": {}, - "title": "payment_method_card_wallet_amex_express_checkout", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_wallet_apple_pay": { - "description": "", - "properties": {}, - "title": "payment_method_card_wallet_apple_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_wallet_google_pay": { - "description": "", - "properties": {}, - "title": "payment_method_card_wallet_google_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_wallet_link": { - "description": "", - "properties": {}, - "title": "payment_method_card_wallet_link", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_wallet_masterpass": { - "description": "", - "properties": { - "billing_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - }, - "email": { - "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - } - }, - "title": "payment_method_card_wallet_masterpass", - "type": "object", - "x-expandableFields": [ - "billing_address", - "shipping_address" - ] - }, - "payment_method_card_wallet_samsung_pay": { - "description": "", - "properties": {}, - "title": "payment_method_card_wallet_samsung_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_card_wallet_visa_checkout": { - "description": "", - "properties": { - "billing_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - }, - "email": { - "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - } - }, - "title": "payment_method_card_wallet_visa_checkout", - "type": "object", - "x-expandableFields": [ - "billing_address", - "shipping_address" - ] - }, - "payment_method_cashapp": { - "description": "", - "properties": { - "buyer_id": { - "description": "A unique and immutable identifier assigned by Cash App to every buyer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cashtag": { - "description": "A public identifier for buyers using Cash App.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_cashapp", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_config_biz_payment_method_configuration_details": { - "description": "", - "properties": { - "id": { - "description": "ID of the payment method configuration used.", - "maxLength": 5000, - "type": "string" - }, - "parent": { - "description": "ID of the parent payment method configuration used.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "id" - ], - "title": "PaymentMethodConfigBizPaymentMethodConfigurationDetails", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_config_resource_display_preference": { - "description": "", - "properties": { - "overridable": { - "description": "For child configs, whether or not the account's preference will be observed. If `false`, the parent configuration's default is used.", - "nullable": true, - "type": "boolean" - }, - "preference": { - "description": "The account's display preference.", - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - }, - "value": { - "description": "The effective display preference value.", - "enum": [ - "off", - "on" - ], - "type": "string" - } - }, - "required": [ - "preference", - "value" - ], - "title": "PaymentMethodConfigResourceDisplayPreference", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_config_resource_payment_method_properties": { - "description": "", - "properties": { - "available": { - "description": "Whether this payment method may be offered at checkout. True if `display_preference` is `on` and the payment method's capability is active.", - "type": "boolean" - }, - "display_preference": { - "$ref": "#/components/schemas/payment_method_config_resource_display_preference" - } - }, - "required": [ - "available", - "display_preference" - ], - "title": "PaymentMethodConfigResourcePaymentMethodProperties", - "type": "object", - "x-expandableFields": [ - "display_preference" - ] - }, - "payment_method_configuration": { - "description": "PaymentMethodConfigurations control which payment methods are displayed to your customers when you don't explicitly specify payment method types. You can have multiple configurations with different sets of payment methods for different scenarios.\n\nThere are two types of PaymentMethodConfigurations. Which is used depends on the [charge type](https://stripe.com/docs/connect/charges):\n\n**Direct** configurations apply to payments created on your account, including Connect destination charges, Connect separate charges and transfers, and payments not involving Connect.\n\n**Child** configurations apply to payments created on your connected accounts using direct charges, and charges with the on_behalf_of parameter.\n\nChild configurations have a `parent` that sets default values and controls which settings connected accounts may override. You can specify a parent ID at payment time, and Stripe will automatically resolve the connected account’s associated child configuration. Parent configurations are [managed in the dashboard](https://dashboard.stripe.com/settings/payment_methods/connected_accounts) and are not available in this API.\n\nRelated guides:\n- [Payment Method Configurations API](https://stripe.com/docs/connect/payment-method-configurations)\n- [Multiple configurations on dynamic payment methods](https://stripe.com/docs/payments/multiple-payment-method-configs)\n- [Multiple configurations for your Connect accounts](https://stripe.com/docs/connect/multiple-payment-method-configurations)", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "active": { - "description": "Whether the configuration can be used for new payments.", - "type": "boolean" - }, - "affirm": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "afterpay_clearpay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "alipay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "amazon_pay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "apple_pay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "application": { - "description": "For child configs, the Connect application associated with the configuration.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "bacs_debit": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "bancontact": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "blik": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "boleto": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "card": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "cartes_bancaires": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "cashapp": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "customer_balance": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "eps": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "fpx": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "giropay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "google_pay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "grabpay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "ideal": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "is_default": { - "description": "The default configuration is used whenever a payment method configuration is not specified.", - "type": "boolean" - }, - "jcb": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "klarna": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "konbini": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "link": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "mobilepay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "multibanco": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "name": { - "description": "The configuration's name.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "payment_method_configuration" - ], - "type": "string" - }, - "oxxo": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "p24": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "parent": { - "description": "For child configs, the configuration's parent configuration.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "paynow": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "paypal": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "promptpay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "revolut_pay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "sepa_debit": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "sofort": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "swish": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "twint": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "us_bank_account": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "wechat_pay": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - }, - "zip": { - "$ref": "#/components/schemas/payment_method_config_resource_payment_method_properties" - } - }, - "required": [ - "active", - "id", - "is_default", - "livemode", - "name", - "object" - ], - "title": "PaymentMethodConfigResourcePaymentMethodConfiguration", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "apple_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cartes_bancaires", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "google_pay", - "grabpay", - "ideal", - "jcb", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "x-resourceId": "payment_method_configuration" - }, - "payment_method_customer_balance": { - "description": "", - "properties": {}, - "title": "payment_method_customer_balance", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details": { - "description": "", - "properties": { - "ach_credit_transfer": { - "$ref": "#/components/schemas/payment_method_details_ach_credit_transfer" - }, - "ach_debit": { - "$ref": "#/components/schemas/payment_method_details_ach_debit" - }, - "acss_debit": { - "$ref": "#/components/schemas/payment_method_details_acss_debit" - }, - "affirm": { - "$ref": "#/components/schemas/payment_method_details_affirm" - }, - "afterpay_clearpay": { - "$ref": "#/components/schemas/payment_method_details_afterpay_clearpay" - }, - "alipay": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_alipay_details" - }, - "amazon_pay": { - "$ref": "#/components/schemas/payment_method_details_amazon_pay" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/payment_method_details_au_becs_debit" - }, - "bacs_debit": { - "$ref": "#/components/schemas/payment_method_details_bacs_debit" - }, - "bancontact": { - "$ref": "#/components/schemas/payment_method_details_bancontact" - }, - "blik": { - "$ref": "#/components/schemas/payment_method_details_blik" - }, - "boleto": { - "$ref": "#/components/schemas/payment_method_details_boleto" - }, - "card": { - "$ref": "#/components/schemas/payment_method_details_card" - }, - "card_present": { - "$ref": "#/components/schemas/payment_method_details_card_present" - }, - "cashapp": { - "$ref": "#/components/schemas/payment_method_details_cashapp" - }, - "customer_balance": { - "$ref": "#/components/schemas/payment_method_details_customer_balance" - }, - "eps": { - "$ref": "#/components/schemas/payment_method_details_eps" - }, - "fpx": { - "$ref": "#/components/schemas/payment_method_details_fpx" - }, - "giropay": { - "$ref": "#/components/schemas/payment_method_details_giropay" - }, - "grabpay": { - "$ref": "#/components/schemas/payment_method_details_grabpay" - }, - "ideal": { - "$ref": "#/components/schemas/payment_method_details_ideal" - }, - "interac_present": { - "$ref": "#/components/schemas/payment_method_details_interac_present" - }, - "klarna": { - "$ref": "#/components/schemas/payment_method_details_klarna" - }, - "konbini": { - "$ref": "#/components/schemas/payment_method_details_konbini" - }, - "link": { - "$ref": "#/components/schemas/payment_method_details_link" - }, - "mobilepay": { - "$ref": "#/components/schemas/payment_method_details_mobilepay" - }, - "multibanco": { - "$ref": "#/components/schemas/payment_method_details_multibanco" - }, - "oxxo": { - "$ref": "#/components/schemas/payment_method_details_oxxo" - }, - "p24": { - "$ref": "#/components/schemas/payment_method_details_p24" - }, - "paynow": { - "$ref": "#/components/schemas/payment_method_details_paynow" - }, - "paypal": { - "$ref": "#/components/schemas/payment_method_details_paypal" - }, - "pix": { - "$ref": "#/components/schemas/payment_method_details_pix" - }, - "promptpay": { - "$ref": "#/components/schemas/payment_method_details_promptpay" - }, - "revolut_pay": { - "$ref": "#/components/schemas/payment_method_details_revolut_pay" - }, - "sepa_debit": { - "$ref": "#/components/schemas/payment_method_details_sepa_debit" - }, - "sofort": { - "$ref": "#/components/schemas/payment_method_details_sofort" - }, - "stripe_account": { - "$ref": "#/components/schemas/payment_method_details_stripe_account" - }, - "swish": { - "$ref": "#/components/schemas/payment_method_details_swish" - }, - "twint": { - "$ref": "#/components/schemas/payment_method_details_twint" - }, - "type": { - "description": "The type of transaction-specific details of the payment method used in the payment, one of `ach_credit_transfer`, `ach_debit`, `acss_debit`, `alipay`, `au_becs_debit`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `klarna`, `multibanco`, `p24`, `sepa_debit`, `sofort`, `stripe_account`, or `wechat`.\nAn additional hash is included on `payment_method_details` with a name matching this value.\nIt contains information specific to the payment method.", - "maxLength": 5000, - "type": "string" - }, - "us_bank_account": { - "$ref": "#/components/schemas/payment_method_details_us_bank_account" - }, - "wechat": { - "$ref": "#/components/schemas/payment_method_details_wechat" - }, - "wechat_pay": { - "$ref": "#/components/schemas/payment_method_details_wechat_pay" - }, - "zip": { - "$ref": "#/components/schemas/payment_method_details_zip" - } - }, - "required": [ - "type" - ], - "title": "payment_method_details", - "type": "object", - "x-expandableFields": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "card_present", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "interac_present", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "stripe_account", - "swish", - "twint", - "us_bank_account", - "wechat", - "wechat_pay", - "zip" - ] - }, - "payment_method_details_ach_credit_transfer": { - "description": "", - "properties": { - "account_number": { - "description": "Account number to transfer funds to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the routing number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "routing_number": { - "description": "Routing transit number for the bank account to transfer funds to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "swift_code": { - "description": "SWIFT code of the bank associated with the routing number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_ach_credit_transfer", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_ach_debit": { - "description": "", - "properties": { - "account_holder_type": { - "description": "Type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "company", - "individual" - ], - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country the bank account is located in.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "routing_number": { - "description": "Routing transit number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_ach_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_acss_debit": { - "description": "", - "properties": { - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "institution_number": { - "description": "Institution number of the bank account", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "description": "ID of the mandate used to make this payment.", - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "description": "Transit number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_acss_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_affirm": { - "description": "", - "properties": { - "transaction_id": { - "description": "The Affirm transaction ID associated with this payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_affirm", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_afterpay_clearpay": { - "description": "", - "properties": { - "order_id": { - "description": "The Afterpay order ID associated with this payment intent.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference": { - "description": "Order identifier shown to the merchant in Afterpay’s online portal.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_afterpay_clearpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_amazon_pay": { - "description": "", - "properties": {}, - "title": "payment_method_details_amazon_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_au_becs_debit": { - "description": "", - "properties": { - "bsb_number": { - "description": "Bank-State-Branch number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "description": "ID of the mandate used to make this payment.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_details_au_becs_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_bacs_debit": { - "description": "", - "properties": { - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "description": "ID of the mandate used to make this payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "sort_code": { - "description": "Sort code of the bank account. (e.g., `10-20-30`)", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_bacs_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_bancontact": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bic": { - "description": "Bank Identifier Code of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_sepa_debit": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "generated_sepa_debit_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "iban_last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_language": { - "description": "Preferred language of the Bancontact authorization page that the customer is redirected to.\nCan be one of `en`, `de`, `fr`, or `nl`", - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by Bancontact directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_bancontact", - "type": "object", - "x-expandableFields": [ - "generated_sepa_debit", - "generated_sepa_debit_mandate" - ] - }, - "payment_method_details_blik": { - "description": "", - "properties": { - "buyer_id": { - "description": "A unique and immutable identifier assigned by BLIK to every buyer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_blik", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_boleto": { - "description": "", - "properties": { - "tax_id": { - "description": "The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses consumers)", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "payment_method_details_boleto", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card": { - "description": "", - "properties": { - "amount_authorized": { - "description": "The authorized amount.", - "nullable": true, - "type": "integer" - }, - "brand": { - "description": "Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "capture_before": { - "description": "When using manual capture, a future timestamp at which the charge will be automatically refunded if uncaptured.", - "format": "unix-time", - "type": "integer" - }, - "checks": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_checks" - } - ], - "description": "Check results by Card networks on Card address and CVC at time of payment.", - "nullable": true - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "extended_authorization": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_card_details_api_resource_enterprise_features_extended_authorization_extended_authorization" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "incremental_authorization": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_card_details_api_resource_enterprise_features_incremental_authorization_incremental_authorization" - }, - "installments": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_installments" - } - ], - "description": "Installment details for this payment (Mexico only).\n\nFor more information, see the [installments integration guide](https://stripe.com/docs/payments/installments).", - "nullable": true - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "description": "ID of the mandate used to make this payment or created by it.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "multicapture": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_card_details_api_resource_multicapture" - }, - "network": { - "description": "Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network_token": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_network_token" - } - ], - "description": "If this card has network token credentials, this contains the details of the network token credentials.", - "nullable": true - }, - "overcapture": { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_card_details_api_resource_enterprise_features_overcapture_overcapture" - }, - "three_d_secure": { - "anyOf": [ - { - "$ref": "#/components/schemas/three_d_secure_details_charge" - } - ], - "description": "Populated if this transaction used 3D Secure authentication.", - "nullable": true - }, - "wallet": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_wallet" - } - ], - "description": "If this Card is part of a card wallet, this contains the details of the card wallet.", - "nullable": true - } - }, - "required": [ - "exp_month", - "exp_year" - ], - "title": "payment_method_details_card", - "type": "object", - "x-expandableFields": [ - "checks", - "extended_authorization", - "incremental_authorization", - "installments", - "multicapture", - "network_token", - "overcapture", - "three_d_secure", - "wallet" - ] - }, - "payment_method_details_card_checks": { - "description": "", - "properties": { - "address_line1_check": { - "description": "If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_postal_code_check": { - "description": "If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cvc_check": { - "description": "If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_card_checks", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_installments": { - "description": "", - "properties": { - "plan": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_installments_plan" - } - ], - "description": "Installment plan selected for the payment.", - "nullable": true - } - }, - "title": "payment_method_details_card_installments", - "type": "object", - "x-expandableFields": [ - "plan" - ] - }, - "payment_method_details_card_installments_plan": { - "description": "", - "properties": { - "count": { - "description": "For `fixed_count` installment plans, this is the number of installment payments your customer will make to their credit card.", - "nullable": true, - "type": "integer" - }, - "interval": { - "description": "For `fixed_count` installment plans, this is the interval between installment payments your customer will make to their credit card.\nOne of `month`.", - "enum": [ - "month" - ], - "nullable": true, - "type": "string" - }, - "type": { - "description": "Type of installment plan, one of `fixed_count`.", - "enum": [ - "fixed_count" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "payment_method_details_card_installments_plan", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_network_token": { - "description": "", - "properties": { - "used": { - "description": "Indicates if Stripe used a network token, either user provided or Stripe managed when processing the transaction.", - "type": "boolean" - } - }, - "required": [ - "used" - ], - "title": "payment_method_details_card_network_token", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_present": { - "description": "", - "properties": { - "amount_authorized": { - "description": "The authorized amount", - "nullable": true, - "type": "integer" - }, - "brand": { - "description": "Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "brand_product": { - "description": "The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "capture_before": { - "description": "When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured.", - "format": "unix-time", - "type": "integer" - }, - "cardholder_name": { - "description": "The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "description": { - "description": "A high-level description of the type of cards issued in this range.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "emv_auth_data": { - "description": "Authorization response cryptogram.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_card": { - "description": "ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "incremental_authorization_supported": { - "description": "Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support).", - "type": "boolean" - }, - "issuer": { - "description": "The name of the card's issuing bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network": { - "description": "Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network_transaction_id": { - "description": "This is used by the financial networks to identify a transaction.\nVisa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data.\nThe first three digits of the Trace ID is the Financial Network Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent the date (MM/DD).\nThis field will be available for successful Visa, Mastercard, or American Express transactions and always null for other card brands.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "offline": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_present_offline" - } - ], - "description": "Details about payments collected offline.", - "nullable": true - }, - "overcapture_supported": { - "description": "Defines whether the authorized amount can be over-captured or not", - "type": "boolean" - }, - "preferred_locales": { - "description": "EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "read_method": { - "description": "How card details were read in this transaction.", - "enum": [ - "contact_emv", - "contactless_emv", - "contactless_magstripe_mode", - "magnetic_stripe_fallback", - "magnetic_stripe_track2" - ], - "nullable": true, - "type": "string" - }, - "receipt": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_present_receipt" - } - ], - "description": "A collection of fields required to be displayed on receipts. Only required for EMV transactions.", - "nullable": true - } - }, - "required": [ - "exp_month", - "exp_year", - "incremental_authorization_supported", - "overcapture_supported" - ], - "title": "payment_method_details_card_present", - "type": "object", - "x-expandableFields": [ - "offline", - "receipt" - ] - }, - "payment_method_details_card_present_offline": { - "description": "", - "properties": { - "stored_at": { - "description": "Time at which the payment was collected while offline", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "payment_method_details_card_present_offline", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_present_receipt": { - "description": "", - "properties": { - "account_type": { - "description": "The type of account being debited or credited", - "enum": [ - "checking", - "credit", - "prepaid", - "unknown" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "application_cryptogram": { - "description": "EMV tag 9F26, cryptogram generated by the integrated circuit chip.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "application_preferred_name": { - "description": "Mnenomic of the Application Identifier.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "authorization_code": { - "description": "Identifier for this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "authorization_response_code": { - "description": "EMV tag 8A. A code returned by the card issuer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cardholder_verification_method": { - "description": "Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "dedicated_file_name": { - "description": "EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "terminal_verification_results": { - "description": "The outcome of a series of EMV functions performed by the card reader.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transaction_status_information": { - "description": "An indication of various EMV functions performed during the transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_card_present_receipt", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_wallet": { - "description": "", - "properties": { - "amex_express_checkout": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_amex_express_checkout" - }, - "apple_pay": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_apple_pay" - }, - "dynamic_last4": { - "description": "(For tokenized numbers only.) The last four digits of the device account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "google_pay": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_google_pay" - }, - "link": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_link" - }, - "masterpass": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_masterpass" - }, - "samsung_pay": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_samsung_pay" - }, - "type": { - "description": "The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", - "enum": [ - "amex_express_checkout", - "apple_pay", - "google_pay", - "link", - "masterpass", - "samsung_pay", - "visa_checkout" - ], - "type": "string" - }, - "visa_checkout": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_visa_checkout" - } - }, - "required": [ - "type" - ], - "title": "payment_method_details_card_wallet", - "type": "object", - "x-expandableFields": [ - "amex_express_checkout", - "apple_pay", - "google_pay", - "link", - "masterpass", - "samsung_pay", - "visa_checkout" - ] - }, - "payment_method_details_card_wallet_amex_express_checkout": { - "description": "", - "properties": {}, - "title": "payment_method_details_card_wallet_amex_express_checkout", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_wallet_apple_pay": { - "description": "", - "properties": {}, - "title": "payment_method_details_card_wallet_apple_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_wallet_google_pay": { - "description": "", - "properties": {}, - "title": "payment_method_details_card_wallet_google_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_wallet_link": { - "description": "", - "properties": {}, - "title": "payment_method_details_card_wallet_link", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_wallet_masterpass": { - "description": "", - "properties": { - "billing_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - }, - "email": { - "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - } - }, - "title": "payment_method_details_card_wallet_masterpass", - "type": "object", - "x-expandableFields": [ - "billing_address", - "shipping_address" - ] - }, - "payment_method_details_card_wallet_samsung_pay": { - "description": "", - "properties": {}, - "title": "payment_method_details_card_wallet_samsung_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_card_wallet_visa_checkout": { - "description": "", - "properties": { - "billing_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - }, - "email": { - "description": "Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "shipping_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - } - }, - "title": "payment_method_details_card_wallet_visa_checkout", - "type": "object", - "x-expandableFields": [ - "billing_address", - "shipping_address" - ] - }, - "payment_method_details_cashapp": { - "description": "", - "properties": { - "buyer_id": { - "description": "A unique and immutable identifier assigned by Cash App to every buyer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cashtag": { - "description": "A public identifier for buyers using Cash App.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_cashapp", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_customer_balance": { - "description": "", - "properties": {}, - "title": "payment_method_details_customer_balance", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_eps": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`.", - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by EPS directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.\nEPS rarely provides this information so the attribute is usually empty.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_eps", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_fpx": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`.", - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "type": "string" - }, - "transaction_id": { - "description": "Unique transaction id generated by FPX for every request from the merchant", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "bank" - ], - "title": "payment_method_details_fpx", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_giropay": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bic": { - "description": "Bank Identifier Code of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by Giropay directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.\nGiropay rarely provides this information so the attribute is usually empty.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_giropay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_grabpay": { - "description": "", - "properties": { - "transaction_id": { - "description": "Unique transaction id generated by GrabPay", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_grabpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_ideal": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`.", - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "nullable": true, - "type": "string" - }, - "bic": { - "description": "The Bank Identifier Code of the customer's bank.", - "enum": [ - "ABNANL2A", - "ASNBNL21", - "BITSNL2A", - "BUNQNL2A", - "FVLBNL22", - "HANDNL2A", - "INGBNL2A", - "KNABNL2H", - "MOYONL21", - "NNBANL2G", - "NTSBDEB1", - "RABONL2U", - "RBRBNL21", - "REVOIE23", - "REVOLT21", - "SNSBNL2A", - "TRIONL2U" - ], - "nullable": true, - "type": "string" - }, - "generated_sepa_debit": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "generated_sepa_debit_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "iban_last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by iDEAL directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_ideal", - "type": "object", - "x-expandableFields": [ - "generated_sepa_debit", - "generated_sepa_debit_mandate" - ] - }, - "payment_method_details_interac_present": { - "description": "", - "properties": { - "brand": { - "description": "Card brand. Can be `interac`, `mastercard` or `visa`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cardholder_name": { - "description": "The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "description": { - "description": "A high-level description of the type of cards issued in this range.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "emv_auth_data": { - "description": "Authorization response cryptogram.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_card": { - "description": "ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuer": { - "description": "The name of the card's issuing bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network": { - "description": "Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network_transaction_id": { - "description": "This is used by the financial networks to identify a transaction.\nVisa calls this the Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the Acquirer Reference Data.\nThe first three digits of the Trace ID is the Financial Network Code, the next 6 digits is the Banknet Reference Number, and the last 4 digits represent the date (MM/DD).\nThis field will be available for successful Visa, Mastercard, or American Express transactions and always null for other card brands.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_locales": { - "description": "EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "read_method": { - "description": "How card details were read in this transaction.", - "enum": [ - "contact_emv", - "contactless_emv", - "contactless_magstripe_mode", - "magnetic_stripe_fallback", - "magnetic_stripe_track2" - ], - "nullable": true, - "type": "string" - }, - "receipt": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_interac_present_receipt" - } - ], - "description": "A collection of fields required to be displayed on receipts. Only required for EMV transactions.", - "nullable": true - } - }, - "required": [ - "exp_month", - "exp_year" - ], - "title": "payment_method_details_interac_present", - "type": "object", - "x-expandableFields": [ - "receipt" - ] - }, - "payment_method_details_interac_present_receipt": { - "description": "", - "properties": { - "account_type": { - "description": "The type of account being debited or credited", - "enum": [ - "checking", - "savings", - "unknown" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "application_cryptogram": { - "description": "EMV tag 9F26, cryptogram generated by the integrated circuit chip.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "application_preferred_name": { - "description": "Mnenomic of the Application Identifier.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "authorization_code": { - "description": "Identifier for this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "authorization_response_code": { - "description": "EMV tag 8A. A code returned by the card issuer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cardholder_verification_method": { - "description": "Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "dedicated_file_name": { - "description": "EMV tag 84. Similar to the application identifier stored on the integrated circuit chip.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "terminal_verification_results": { - "description": "The outcome of a series of EMV functions performed by the card reader.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transaction_status_information": { - "description": "An indication of various EMV functions performed during the transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_interac_present_receipt", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_klarna": { - "description": "", - "properties": { - "payment_method_category": { - "description": "The Klarna payment method used for this transaction.\nCan be one of `pay_later`, `pay_now`, `pay_with_financing`, or `pay_in_installments`", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_locale": { - "description": "Preferred language of the Klarna authorization page that the customer is redirected to.\nCan be one of `de-AT`, `en-AT`, `nl-BE`, `fr-BE`, `en-BE`, `de-DE`, `en-DE`, `da-DK`, `en-DK`, `es-ES`, `en-ES`, `fi-FI`, `sv-FI`, `en-FI`, `en-GB`, `en-IE`, `it-IT`, `en-IT`, `nl-NL`, `en-NL`, `nb-NO`, `en-NO`, `sv-SE`, `en-SE`, `en-US`, `es-US`, `fr-FR`, `en-FR`, `cs-CZ`, `en-CZ`, `ro-RO`, `en-RO`, `el-GR`, `en-GR`, `en-AU`, `en-NZ`, `en-CA`, `fr-CA`, `pl-PL`, `en-PL`, `pt-PT`, `en-PT`, `de-CH`, `fr-CH`, `it-CH`, or `en-CH`", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_klarna", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_konbini": { - "description": "", - "properties": { - "store": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_konbini_store" - } - ], - "description": "If the payment succeeded, this contains the details of the convenience store where the payment was completed.", - "nullable": true - } - }, - "title": "payment_method_details_konbini", - "type": "object", - "x-expandableFields": [ - "store" - ] - }, - "payment_method_details_konbini_store": { - "description": "", - "properties": { - "chain": { - "description": "The name of the convenience store chain where the payment was completed.", - "enum": [ - "familymart", - "lawson", - "ministop", - "seicomart" - ], - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_konbini_store", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_link": { - "description": "", - "properties": { - "country": { - "description": "Two-letter ISO code representing the funding source country beneath the Link payment.\nYou could use this attribute to get a sense of international fees.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_link", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_mobilepay": { - "description": "", - "properties": { - "card": { - "anyOf": [ - { - "$ref": "#/components/schemas/internal_card" - } - ], - "description": "Internal card details", - "nullable": true - } - }, - "title": "payment_method_details_mobilepay", - "type": "object", - "x-expandableFields": [ - "card" - ] - }, - "payment_method_details_multibanco": { - "description": "", - "properties": { - "entity": { - "description": "Entity number associated with this Multibanco payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference": { - "description": "Reference number associated with this Multibanco payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_multibanco", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_oxxo": { - "description": "", - "properties": { - "number": { - "description": "OXXO reference number", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_oxxo", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_p24": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank. Can be one of `ing`, `citi_handlowy`, `tmobile_usbugi_bankowe`, `plus_bank`, `etransfer_pocztowy24`, `banki_spbdzielcze`, `bank_nowy_bfg_sa`, `getin_bank`, `velobank`, `blik`, `noble_pay`, `ideabank`, `envelobank`, `santander_przelew24`, `nest_przelew`, `mbank_mtransfer`, `inteligo`, `pbac_z_ipko`, `bnp_paribas`, `credit_agricole`, `toyota_bank`, `bank_pekao_sa`, `volkswagen_bank`, `bank_millennium`, `alior_bank`, or `boz`.", - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "nullable": true, - "type": "string" - }, - "reference": { - "description": "Unique reference for this Przelewy24 payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by Przelewy24 directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.\nPrzelewy24 rarely provides this information so the attribute is usually empty.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_p24", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_paynow": { - "description": "", - "properties": { - "reference": { - "description": "Reference number associated with this PayNow payment", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_paynow", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_paypal": { - "description": "", - "properties": { - "payer_email": { - "description": "Owner's email. Values are provided by PayPal directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payer_id": { - "description": "PayPal account PayerID. This identifier uniquely identifies the PayPal customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payer_name": { - "description": "Owner's full name. Values provided by PayPal directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "seller_protection": { - "anyOf": [ - { - "$ref": "#/components/schemas/paypal_seller_protection" - } - ], - "description": "The level of protection offered as defined by PayPal Seller Protection for Merchants, for this transaction.", - "nullable": true - }, - "transaction_id": { - "description": "A unique ID generated by PayPal for this transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_paypal", - "type": "object", - "x-expandableFields": [ - "seller_protection" - ] - }, - "payment_method_details_pix": { - "description": "", - "properties": { - "bank_transaction_id": { - "description": "Unique transaction id generated by BCB", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_pix", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_promptpay": { - "description": "", - "properties": { - "reference": { - "description": "Bill reference generated by PromptPay", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_promptpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_revolut_pay": { - "description": "", - "properties": {}, - "title": "payment_method_details_revolut_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_sepa_debit": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "branch_code": { - "description": "Branch code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country the bank account is located in.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "description": "Find the ID of the mandate used for this payment under the [payment_method_details.sepa_debit.mandate](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-sepa_debit-mandate) property on the Charge. Use this mandate ID to [retrieve the Mandate](https://stripe.com/docs/api/mandates/retrieve).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_sepa_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_sofort": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bic": { - "description": "Bank Identifier Code of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country the bank account is located in.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_sepa_debit": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "generated_sepa_debit_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "iban_last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_language": { - "description": "Preferred language of the SOFORT authorization page that the customer is redirected to.\nCan be one of `de`, `en`, `es`, `fr`, `it`, `nl`, or `pl`", - "enum": [ - "de", - "en", - "es", - "fr", - "it", - "nl", - "pl" - ], - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by SOFORT directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_sofort", - "type": "object", - "x-expandableFields": [ - "generated_sepa_debit", - "generated_sepa_debit_mandate" - ] - }, - "payment_method_details_stripe_account": { - "description": "", - "properties": {}, - "title": "payment_method_details_stripe_account", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_swish": { - "description": "", - "properties": { - "fingerprint": { - "description": "Uniquely identifies the payer's Swish account. You can use this attribute to check whether two Swish transactions were paid for by the same payer", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_reference": { - "description": "Payer bank reference number for the payment", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_phone_last4": { - "description": "The last four digits of the Swish account phone number", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_swish", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_twint": { - "description": "", - "properties": {}, - "title": "payment_method_details_twint", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_us_bank_account": { - "description": "", - "properties": { - "account_holder_type": { - "description": "Account holder type: individual or company.", - "enum": [ - "company", - "individual" - ], - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "Account type: checkings or savings. Defaults to checking if omitted.", - "enum": [ - "checking", - "savings" - ], - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "ID of the mandate used to make this payment.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "payment_reference": { - "description": "Reference number to locate ACH payments with customer's bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "routing_number": { - "description": "Routing number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_us_bank_account", - "type": "object", - "x-expandableFields": [ - "mandate" - ] - }, - "payment_method_details_wechat": { - "description": "", - "properties": {}, - "title": "payment_method_details_wechat", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_wechat_pay": { - "description": "", - "properties": { - "fingerprint": { - "description": "Uniquely identifies this particular WeChat Pay account. You can use this attribute to check whether two WeChat accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transaction_id": { - "description": "Transaction ID of this particular WeChat Pay transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_details_wechat_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_details_zip": { - "description": "", - "properties": {}, - "title": "payment_method_details_zip", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_domain": { - "description": "A payment method domain represents a web domain that you have registered with Stripe.\nStripe Elements use registered payment method domains to control where certain payment methods are shown.\n\nRelated guide: [Payment method domains](https://stripe.com/docs/payments/payment-methods/pmd-registration).", - "properties": { - "apple_pay": { - "$ref": "#/components/schemas/payment_method_domain_resource_payment_method_status" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "domain_name": { - "description": "The domain name that this payment method domain object represents.", - "maxLength": 5000, - "type": "string" - }, - "enabled": { - "description": "Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements.", - "type": "boolean" - }, - "google_pay": { - "$ref": "#/components/schemas/payment_method_domain_resource_payment_method_status" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "link": { - "$ref": "#/components/schemas/payment_method_domain_resource_payment_method_status" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "payment_method_domain" - ], - "type": "string" - }, - "paypal": { - "$ref": "#/components/schemas/payment_method_domain_resource_payment_method_status" - } - }, - "required": [ - "apple_pay", - "created", - "domain_name", - "enabled", - "google_pay", - "id", - "link", - "livemode", - "object", - "paypal" - ], - "title": "PaymentMethodDomainResourcePaymentMethodDomain", - "type": "object", - "x-expandableFields": [ - "apple_pay", - "google_pay", - "link", - "paypal" - ], - "x-resourceId": "payment_method_domain" - }, - "payment_method_domain_resource_payment_method_status": { - "description": "Indicates the status of a specific payment method on a payment method domain.", - "properties": { - "status": { - "description": "The status of the payment method on the domain.", - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "status_details": { - "$ref": "#/components/schemas/payment_method_domain_resource_payment_method_status_details" - } - }, - "required": [ - "status" - ], - "title": "PaymentMethodDomainResourcePaymentMethodStatus", - "type": "object", - "x-expandableFields": [ - "status_details" - ] - }, - "payment_method_domain_resource_payment_method_status_details": { - "description": "Contains additional details about the status of a payment method for a specific payment method domain.", - "properties": { - "error_message": { - "description": "The error message associated with the status of the payment method on the domain.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "error_message" - ], - "title": "PaymentMethodDomainResourcePaymentMethodStatusDetails", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_eps": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`.", - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_eps", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_fpx": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank, if provided. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`.", - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "type": "string" - } - }, - "required": [ - "bank" - ], - "title": "payment_method_fpx", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_giropay": { - "description": "", - "properties": {}, - "title": "payment_method_giropay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_grabpay": { - "description": "", - "properties": {}, - "title": "payment_method_grabpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_ideal": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`.", - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "nullable": true, - "type": "string" - }, - "bic": { - "description": "The Bank Identifier Code of the customer's bank, if the bank was provided.", - "enum": [ - "ABNANL2A", - "ASNBNL21", - "BITSNL2A", - "BUNQNL2A", - "FVLBNL22", - "HANDNL2A", - "INGBNL2A", - "KNABNL2H", - "MOYONL21", - "NNBANL2G", - "NTSBDEB1", - "RABONL2U", - "RBRBNL21", - "REVOIE23", - "REVOLT21", - "SNSBNL2A", - "TRIONL2U" - ], - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_ideal", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_interac_present": { - "description": "", - "properties": { - "brand": { - "description": "Card brand. Can be `interac`, `mastercard` or `visa`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cardholder_name": { - "description": "The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). In some cases, the cardholder name may not be available depending on how the issuer has configured the card. Cardholder name is typically not available on swipe or contactless payments, such as those made with Apple Pay and Google Pay.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "description": { - "description": "A high-level description of the type of cards issued in this range.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuer": { - "description": "The name of the card's issuing bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "networks": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_card_present_networks" - } - ], - "description": "Contains information about card networks that can be used to process the payment.", - "nullable": true - }, - "preferred_locales": { - "description": "EMV tag 5F2D. Preferred languages specified by the integrated circuit chip.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "read_method": { - "description": "How card details were read in this transaction.", - "enum": [ - "contact_emv", - "contactless_emv", - "contactless_magstripe_mode", - "magnetic_stripe_fallback", - "magnetic_stripe_track2" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year" - ], - "title": "payment_method_interac_present", - "type": "object", - "x-expandableFields": [ - "networks" - ] - }, - "payment_method_klarna": { - "description": "", - "properties": { - "dob": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_flows_private_payment_methods_klarna_dob" - } - ], - "description": "The customer's date of birth, if provided.", - "nullable": true - } - }, - "title": "payment_method_klarna", - "type": "object", - "x-expandableFields": [ - "dob" - ] - }, - "payment_method_konbini": { - "description": "", - "properties": {}, - "title": "payment_method_konbini", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_link": { - "description": "", - "properties": { - "email": { - "description": "Account owner's email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_link", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_mobilepay": { - "description": "", - "properties": {}, - "title": "payment_method_mobilepay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_multibanco": { - "description": "", - "properties": {}, - "title": "payment_method_multibanco", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_affirm": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "description": "Preferred language of the Affirm authorization page that the customer is redirected to.", - "maxLength": 30, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_affirm", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_afterpay_clearpay": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "reference": { - "description": "An internal identifier or reference that this payment corresponds to. You must limit the identifier to 128 characters, and it can only contain letters, numbers, underscores, backslashes, and dashes.\nThis field differs from the statement descriptor and item name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_afterpay_clearpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_alipay": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_alipay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_amazon_pay": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_amazon_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_bacs_debit": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_bacs_debit", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_bancontact": { - "description": "", - "properties": { - "preferred_language": { - "description": "Preferred language of the Bancontact authorization page that the customer is redirected to.", - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "required": [ - "preferred_language" - ], - "title": "payment_method_options_bancontact", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_boleto": { - "description": "", - "properties": { - "expires_after_days": { - "description": "The number of calendar days before a Boleto voucher expires. For example, if you create a Boleto voucher on Monday and you set expires_after_days to 2, the Boleto voucher will expire on Wednesday at 23:59 America/Sao_Paulo time.", - "type": "integer" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "required": [ - "expires_after_days" - ], - "title": "payment_method_options_boleto", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_card_installments": { - "description": "", - "properties": { - "available_plans": { - "description": "Installment plans that may be selected for this PaymentIntent.", - "items": { - "$ref": "#/components/schemas/payment_method_details_card_installments_plan" - }, - "nullable": true, - "type": "array" - }, - "enabled": { - "description": "Whether Installments are enabled for this PaymentIntent.", - "type": "boolean" - }, - "plan": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_installments_plan" - } - ], - "description": "Installment plan selected for this PaymentIntent.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "payment_method_options_card_installments", - "type": "object", - "x-expandableFields": [ - "available_plans", - "plan" - ] - }, - "payment_method_options_card_mandate_options": { - "description": "", - "properties": { - "amount": { - "description": "Amount to be charged for future payments.", - "type": "integer" - }, - "amount_type": { - "description": "One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.", - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "description": "A description of the mandate or subscription that is meant to be displayed to the customer.", - "maxLength": 200, - "nullable": true, - "type": "string" - }, - "end_date": { - "description": "End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "interval": { - "description": "Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.", - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.", - "nullable": true, - "type": "integer" - }, - "reference": { - "description": "Unique identifier for the mandate or subscription.", - "maxLength": 80, - "type": "string" - }, - "start_date": { - "description": "Start date of the mandate or subscription. Start date should not be lesser than yesterday.", - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "description": "Specifies the type of mandates supported. Possible values are `india`.", - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "interval", - "reference", - "start_date" - ], - "title": "payment_method_options_card_mandate_options", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_card_present": { - "description": "", - "properties": { - "request_extended_authorization": { - "description": "Request ability to capture this payment beyond the standard [authorization validity window](https://stripe.com/docs/terminal/features/extended-authorizations#authorization-validity)", - "nullable": true, - "type": "boolean" - }, - "request_incremental_authorization_support": { - "description": "Request ability to [increment](https://stripe.com/docs/terminal/features/incremental-authorizations) this PaymentIntent if the combination of MCC and card brand is eligible. Check [incremental_authorization_supported](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card_present-incremental_authorization_supported) in the [Confirm](https://stripe.com/docs/api/payment_intents/confirm) response to verify support.", - "nullable": true, - "type": "boolean" - }, - "routing": { - "$ref": "#/components/schemas/payment_method_options_card_present_routing" - } - }, - "title": "payment_method_options_card_present", - "type": "object", - "x-expandableFields": [ - "routing" - ] - }, - "payment_method_options_card_present_routing": { - "description": "", - "properties": { - "requested_priority": { - "description": "Requested routing priority", - "enum": [ - "domestic", - "international" - ], - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_options_card_present_routing", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_cashapp": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_cashapp", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_customer_balance": { - "description": "", - "properties": { - "bank_transfer": { - "$ref": "#/components/schemas/payment_method_options_customer_balance_bank_transfer" - }, - "funding_type": { - "description": "The funding method type to be used when there are not enough funds in the customer balance. Permitted values include: `bank_transfer`.", - "enum": [ - "bank_transfer" - ], - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_customer_balance", - "type": "object", - "x-expandableFields": [ - "bank_transfer" - ] - }, - "payment_method_options_customer_balance_bank_transfer": { - "description": "", - "properties": { - "eu_bank_transfer": { - "$ref": "#/components/schemas/payment_method_options_customer_balance_eu_bank_account" - }, - "requested_address_types": { - "description": "List of address types that should be returned in the financial_addresses response. If not specified, all valid types will be returned.\n\nPermitted values include: `sort_code`, `zengin`, `iban`, or `spei`.", - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "description": "The bank transfer type that this PaymentIntent is allowed to use for funding Permitted values include: `eu_bank_transfer`, `gb_bank_transfer`, `jp_bank_transfer`, `mx_bank_transfer`, or `us_bank_transfer`.", - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_customer_balance_bank_transfer", - "type": "object", - "x-expandableFields": [ - "eu_bank_transfer" - ] - }, - "payment_method_options_customer_balance_eu_bank_account": { - "description": "", - "properties": { - "country": { - "description": "The desired country code of the bank account information. Permitted values include: `BE`, `DE`, `ES`, `FR`, `IE`, or `NL`.", - "enum": [ - "BE", - "DE", - "ES", - "FR", - "IE", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "payment_method_options_customer_balance_eu_bank_account", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_fpx": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_fpx", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_giropay": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_giropay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_grabpay": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_grabpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_ideal": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_ideal", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_interac_present": { - "description": "", - "properties": {}, - "title": "payment_method_options_interac_present", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_klarna": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "description": "Preferred locale of the Klarna checkout page that the customer is redirected to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_klarna", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_konbini": { - "description": "", - "properties": { - "confirmation_number": { - "description": "An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "expires_after_days": { - "description": "The number of calendar days (between 1 and 60) after which Konbini payment instructions will expire. For example, if a PaymentIntent is confirmed with Konbini and `expires_after_days` set to 2 on Monday JST, the instructions will expire on Wednesday 23:59:59 JST.", - "nullable": true, - "type": "integer" - }, - "expires_at": { - "description": "The timestamp at which the Konbini payment instructions will expire. Only one of `expires_after_days` or `expires_at` may be set.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "product_description": { - "description": "A product descriptor of up to 22 characters, which will appear to customers at the convenience store.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_konbini", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_multibanco": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_multibanco", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_oxxo": { - "description": "", - "properties": { - "expires_after_days": { - "description": "The number of calendar days before an OXXO invoice expires. For example, if you create an OXXO invoice on Monday and you set expires_after_days to 2, the OXXO invoice will expire on Wednesday at 23:59 America/Mexico_City time.", - "type": "integer" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "expires_after_days" - ], - "title": "payment_method_options_oxxo", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_p24": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_p24", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_paynow": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_paynow", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_paypal": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "description": "Preferred locale of the PayPal checkout page that the customer is redirected to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference": { - "description": "A reference of the PayPal transaction visible to customer which is mapped to PayPal's invoice ID. This must be a globally unique ID if you have configured in your PayPal settings to block multiple payments per invoice ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_paypal", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_pix": { - "description": "", - "properties": { - "expires_after_seconds": { - "description": "The number of seconds (between 10 and 1209600) after which Pix payment will expire.", - "nullable": true, - "type": "integer" - }, - "expires_at": { - "description": "The timestamp at which the Pix expires.", - "nullable": true, - "type": "integer" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_pix", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_promptpay": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_promptpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_revolut_pay": { - "description": "", - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_revolut_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_sofort": { - "description": "", - "properties": { - "preferred_language": { - "description": "Preferred language of the SOFORT authorization page that the customer is redirected to.", - "enum": [ - "de", - "en", - "es", - "fr", - "it", - "nl", - "pl" - ], - "nullable": true, - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_sofort", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_twint": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_twint", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_us_bank_account_mandate_options": { - "description": "", - "properties": { - "collection_method": { - "description": "Mandate collection method", - "enum": [ - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_us_bank_account_mandate_options", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_wechat_pay": { - "description": "", - "properties": { - "app_id": { - "description": "The app ID registered with WeChat Pay. Only required when client is ios or android.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "client": { - "description": "The client type that the end customer will pay from", - "enum": [ - "android", - "ios", - "web" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_wechat_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_options_zip": { - "description": "", - "properties": { - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_zip", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_oxxo": { - "description": "", - "properties": {}, - "title": "payment_method_oxxo", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_p24": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank, if provided.", - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_p24", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_paynow": { - "description": "", - "properties": {}, - "title": "payment_method_paynow", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_paypal": { - "description": "", - "properties": { - "payer_email": { - "description": "Owner's email. Values are provided by PayPal directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payer_id": { - "description": "PayPal account PayerID. This identifier uniquely identifies the PayPal customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_paypal", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_pix": { - "description": "", - "properties": {}, - "title": "payment_method_pix", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_promptpay": { - "description": "", - "properties": {}, - "title": "payment_method_promptpay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_revolut_pay": { - "description": "", - "properties": {}, - "title": "payment_method_revolut_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_sepa_debit": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "branch_code": { - "description": "Branch code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country the bank account is located in.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_from": { - "anyOf": [ - { - "$ref": "#/components/schemas/sepa_debit_generated_from" - } - ], - "description": "Information about the object that generated this PaymentMethod.", - "nullable": true - }, - "last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_sepa_debit", - "type": "object", - "x-expandableFields": [ - "generated_from" - ] - }, - "payment_method_sofort": { - "description": "", - "properties": { - "country": { - "description": "Two-letter ISO code representing the country the bank account is located in.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_sofort", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_swish": { - "description": "", - "properties": {}, - "title": "payment_method_swish", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_twint": { - "description": "", - "properties": {}, - "title": "payment_method_twint", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_us_bank_account": { - "description": "", - "properties": { - "account_holder_type": { - "description": "Account holder type: individual or company.", - "enum": [ - "company", - "individual" - ], - "nullable": true, - "type": "string" - }, - "account_type": { - "description": "Account type: checkings or savings. Defaults to checking if omitted.", - "enum": [ - "checking", - "savings" - ], - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "The name of the bank.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "financial_connections_account": { - "description": "The ID of the Financial Connections Account used to create the payment method.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fingerprint": { - "description": "Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "Last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "networks": { - "anyOf": [ - { - "$ref": "#/components/schemas/us_bank_account_networks" - } - ], - "description": "Contains information about US bank account networks that can be used.", - "nullable": true - }, - "routing_number": { - "description": "Routing number of the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_us_bank_account_status_details" - } - ], - "description": "Contains information about the future reusability of this PaymentMethod.", - "nullable": true - } - }, - "title": "payment_method_us_bank_account", - "type": "object", - "x-expandableFields": [ - "networks", - "status_details" - ] - }, - "payment_method_us_bank_account_blocked": { - "description": "", - "properties": { - "network_code": { - "description": "The ACH network code that resulted in this block.", - "enum": [ - "R02", - "R03", - "R04", - "R05", - "R07", - "R08", - "R10", - "R11", - "R16", - "R20", - "R29", - "R31" - ], - "nullable": true, - "type": "string" - }, - "reason": { - "description": "The reason why this PaymentMethod's fingerprint has been blocked", - "enum": [ - "bank_account_closed", - "bank_account_frozen", - "bank_account_invalid_details", - "bank_account_restricted", - "bank_account_unusable", - "debit_not_authorized" - ], - "nullable": true, - "type": "string" - } - }, - "title": "payment_method_us_bank_account_blocked", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_us_bank_account_status_details": { - "description": "", - "properties": { - "blocked": { - "$ref": "#/components/schemas/payment_method_us_bank_account_blocked" - } - }, - "title": "payment_method_us_bank_account_status_details", - "type": "object", - "x-expandableFields": [ - "blocked" - ] - }, - "payment_method_wechat_pay": { - "description": "", - "properties": {}, - "title": "payment_method_wechat_pay", - "type": "object", - "x-expandableFields": [] - }, - "payment_method_zip": { - "description": "", - "properties": {}, - "title": "payment_method_zip", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_after_expiration": { - "description": "", - "properties": { - "recovery": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_after_expiration_recovery" - } - ], - "description": "When set, configuration used to recover the Checkout Session on expiry.", - "nullable": true - } - }, - "title": "PaymentPagesCheckoutSessionAfterExpiration", - "type": "object", - "x-expandableFields": [ - "recovery" - ] - }, - "payment_pages_checkout_session_after_expiration_recovery": { - "description": "", - "properties": { - "allow_promotion_codes": { - "description": "Enables user redeemable promotion codes on the recovered Checkout Sessions. Defaults to `false`", - "type": "boolean" - }, - "enabled": { - "description": "If `true`, a recovery url will be generated to recover this Checkout Session if it\nexpires before a transaction is completed. It will be attached to the\nCheckout Session object upon expiration.", - "type": "boolean" - }, - "expires_at": { - "description": "The timestamp at which the recovery URL will expire.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "url": { - "description": "URL that creates a new Checkout Session when clicked that is a copy of this expired Checkout Session", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "allow_promotion_codes", - "enabled" - ], - "title": "PaymentPagesCheckoutSessionAfterExpirationRecovery", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "Indicates whether automatic tax is enabled for the session", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - }, - "status": { - "description": "The status of the most recent automated tax calculation for this session.", - "enum": [ - "complete", - "failed", - "requires_location_inputs" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentPagesCheckoutSessionAutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "payment_pages_checkout_session_consent": { - "description": "", - "properties": { - "promotions": { - "description": "If `opt_in`, the customer consents to receiving promotional communications\nfrom the merchant about this Checkout Session.", - "enum": [ - "opt_in", - "opt_out" - ], - "nullable": true, - "type": "string" - }, - "terms_of_service": { - "description": "If `accepted`, the customer in this Checkout Session has agreed to the merchant's terms of service.", - "enum": [ - "accepted" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "PaymentPagesCheckoutSessionConsent", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_consent_collection": { - "description": "", - "properties": { - "payment_method_reuse_agreement": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_payment_method_reuse_agreement" - } - ], - "description": "If set to `hidden`, it will hide legal text related to the reuse of a payment method.", - "nullable": true - }, - "promotions": { - "description": "If set to `auto`, enables the collection of customer consent for promotional communications. The Checkout\nSession will determine whether to display an option to opt into promotional communication\nfrom the merchant depending on the customer's locale. Only available to US merchants.", - "enum": [ - "auto", - "none" - ], - "nullable": true, - "type": "string" - }, - "terms_of_service": { - "description": "If set to `required`, it requires customers to accept the terms of service before being able to pay.", - "enum": [ - "none", - "required" - ], - "nullable": true, - "type": "string" - } - }, - "title": "PaymentPagesCheckoutSessionConsentCollection", - "type": "object", - "x-expandableFields": [ - "payment_method_reuse_agreement" - ] - }, - "payment_pages_checkout_session_currency_conversion": { - "description": "", - "properties": { - "amount_subtotal": { - "description": "Total of all items in source currency before discounts or taxes are applied.", - "type": "integer" - }, - "amount_total": { - "description": "Total of all items in source currency after discounts and taxes are applied.", - "type": "integer" - }, - "fx_rate": { - "description": "Exchange rate used to convert source currency amounts to customer currency amounts", - "format": "decimal", - "type": "string" - }, - "source_currency": { - "description": "Creation currency of the CheckoutSession before localization", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount_subtotal", - "amount_total", - "fx_rate", - "source_currency" - ], - "title": "PaymentPagesCheckoutSessionCurrencyConversion", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_custom_fields": { - "description": "", - "properties": { - "dropdown": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_fields_dropdown" - }, - "key": { - "description": "String of your choice that your integration can use to reconcile this field. Must be unique to this field, alphanumeric, and up to 200 characters.", - "maxLength": 5000, - "type": "string" - }, - "label": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_fields_label" - }, - "numeric": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_fields_numeric" - }, - "optional": { - "description": "Whether the customer is required to complete the field before completing the Checkout Session. Defaults to `false`.", - "type": "boolean" - }, - "text": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_fields_text" - }, - "type": { - "description": "The type of the field.", - "enum": [ - "dropdown", - "numeric", - "text" - ], - "type": "string" - } - }, - "required": [ - "key", - "label", - "optional", - "type" - ], - "title": "PaymentPagesCheckoutSessionCustomFields", - "type": "object", - "x-expandableFields": [ - "dropdown", - "label", - "numeric", - "text" - ] - }, - "payment_pages_checkout_session_custom_fields_dropdown": { - "description": "", - "properties": { - "default_value": { - "description": "The value that will pre-fill on the payment page.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "options": { - "description": "The options available for the customer to select. Up to 200 options allowed.", - "items": { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_fields_option" - }, - "type": "array" - }, - "value": { - "description": "The option selected by the customer. This will be the `value` for the option.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "options" - ], - "title": "PaymentPagesCheckoutSessionCustomFieldsDropdown", - "type": "object", - "x-expandableFields": [ - "options" - ] - }, - "payment_pages_checkout_session_custom_fields_label": { - "description": "", - "properties": { - "custom": { - "description": "Custom text for the label, displayed to the customer. Up to 50 characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "type": { - "description": "The type of the label.", - "enum": [ - "custom" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PaymentPagesCheckoutSessionCustomFieldsLabel", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_custom_fields_numeric": { - "description": "", - "properties": { - "default_value": { - "description": "The value that will pre-fill the field on the payment page.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "maximum_length": { - "description": "The maximum character length constraint for the customer's input.", - "nullable": true, - "type": "integer" - }, - "minimum_length": { - "description": "The minimum character length requirement for the customer's input.", - "nullable": true, - "type": "integer" - }, - "value": { - "description": "The value entered by the customer, containing only digits.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentPagesCheckoutSessionCustomFieldsNumeric", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_custom_fields_option": { - "description": "", - "properties": { - "label": { - "description": "The label for the option, displayed to the customer. Up to 100 characters.", - "maxLength": 5000, - "type": "string" - }, - "value": { - "description": "The value for this option, not displayed to the customer, used by your integration to reconcile the option selected by the customer. Must be unique to this option, alphanumeric, and up to 100 characters.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "title": "PaymentPagesCheckoutSessionCustomFieldsOption", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_custom_fields_text": { - "description": "", - "properties": { - "default_value": { - "description": "The value that will pre-fill the field on the payment page.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "maximum_length": { - "description": "The maximum character length constraint for the customer's input.", - "nullable": true, - "type": "integer" - }, - "minimum_length": { - "description": "The minimum character length requirement for the customer's input.", - "nullable": true, - "type": "integer" - }, - "value": { - "description": "The value entered by the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PaymentPagesCheckoutSessionCustomFieldsText", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_custom_text": { - "description": "", - "properties": { - "after_submit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_text_position" - } - ], - "description": "Custom text that should be displayed after the payment confirmation button.", - "nullable": true - }, - "shipping_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_text_position" - } - ], - "description": "Custom text that should be displayed alongside shipping address collection.", - "nullable": true - }, - "submit": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_text_position" - } - ], - "description": "Custom text that should be displayed alongside the payment confirmation button.", - "nullable": true - }, - "terms_of_service_acceptance": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_pages_checkout_session_custom_text_position" - } - ], - "description": "Custom text that should be displayed in place of the default terms of service agreement text.", - "nullable": true - } - }, - "title": "PaymentPagesCheckoutSessionCustomText", - "type": "object", - "x-expandableFields": [ - "after_submit", - "shipping_address", - "submit", - "terms_of_service_acceptance" - ] - }, - "payment_pages_checkout_session_custom_text_position": { - "description": "", - "properties": { - "message": { - "description": "Text may be up to 1200 characters in length.", - "maxLength": 500, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "PaymentPagesCheckoutSessionCustomTextPosition", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_customer_details": { - "description": "", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "The customer's address after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022.", - "nullable": true - }, - "email": { - "description": "The email associated with the Customer, if one exists, on the Checkout Session after a completed Checkout Session or at time of session expiry.\nOtherwise, if the customer has consented to promotional content, this value is the most recent valid email provided by the customer on the Checkout form.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "The customer's name after a completed Checkout Session. Note: This property is populated only for sessions on or after March 30, 2022.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "phone": { - "description": "The customer's phone number after a completed Checkout Session.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_exempt": { - "description": "The customer’s tax exempt status after a completed Checkout Session.", - "enum": [ - "exempt", - "none", - "reverse" - ], - "nullable": true, - "type": "string" - }, - "tax_ids": { - "description": "The customer’s tax IDs after a completed Checkout Session.", - "items": { - "$ref": "#/components/schemas/payment_pages_checkout_session_tax_id" - }, - "nullable": true, - "type": "array" - } - }, - "title": "PaymentPagesCheckoutSessionCustomerDetails", - "type": "object", - "x-expandableFields": [ - "address", - "tax_ids" - ] - }, - "payment_pages_checkout_session_invoice_creation": { - "description": "", - "properties": { - "enabled": { - "description": "Indicates whether invoice creation is enabled for the Checkout Session.", - "type": "boolean" - }, - "invoice_data": { - "$ref": "#/components/schemas/payment_pages_checkout_session_invoice_settings" - } - }, - "required": [ - "enabled", - "invoice_data" - ], - "title": "PaymentPagesCheckoutSessionInvoiceCreation", - "type": "object", - "x-expandableFields": [ - "invoice_data" - ] - }, - "payment_pages_checkout_session_invoice_settings": { - "description": "", - "properties": { - "account_tax_ids": { - "description": "The account tax IDs associated with the invoice.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "custom_fields": { - "description": "Custom fields displayed on the invoice.", - "items": { - "$ref": "#/components/schemas/invoice_setting_custom_field" - }, - "nullable": true, - "type": "array" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "footer": { - "description": "Footer displayed on the invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuer": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "nullable": true - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "rendering_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_setting_rendering_options" - } - ], - "description": "Options for invoice PDF rendering.", - "nullable": true - } - }, - "title": "PaymentPagesCheckoutSessionInvoiceSettings", - "type": "object", - "x-expandableFields": [ - "account_tax_ids", - "custom_fields", - "issuer", - "rendering_options" - ] - }, - "payment_pages_checkout_session_payment_method_reuse_agreement": { - "description": "", - "properties": { - "position": { - "description": "Determines the position and visibility of the payment method reuse agreement in the UI. When set to `auto`, Stripe's defaults will be used.\n\nWhen set to `hidden`, the payment method reuse agreement text will always be hidden in the UI.", - "enum": [ - "auto", - "hidden" - ], - "type": "string" - } - }, - "required": [ - "position" - ], - "title": "PaymentPagesCheckoutSessionPaymentMethodReuseAgreement", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_phone_number_collection": { - "description": "", - "properties": { - "enabled": { - "description": "Indicates whether phone number collection is enabled for the session", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentPagesCheckoutSessionPhoneNumberCollection", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_saved_payment_method_options": { - "description": "", - "properties": { - "allow_redisplay_filters": { - "description": "Uses the `allow_redisplay` value of each saved payment method to filter the set presented to a returning customer. By default, only saved payment methods with ’allow_redisplay: ‘always’ are shown in Checkout.", - "items": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "payment_method_remove": { - "description": "Enable customers to choose if they wish to remove their saved payment methods. Disabled by default.", - "enum": [ - "disabled", - "enabled" - ], - "nullable": true, - "type": "string" - }, - "payment_method_save": { - "description": "Enable customers to choose if they wish to save their payment method for future use. Disabled by default.", - "enum": [ - "disabled", - "enabled" - ], - "nullable": true, - "type": "string" - } - }, - "title": "PaymentPagesCheckoutSessionSavedPaymentMethodOptions", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_shipping_address_collection": { - "description": "", - "properties": { - "allowed_countries": { - "description": "An array of two-letter ISO country codes representing which countries Checkout should provide as options for\nshipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`.", - "items": { - "enum": [ - "AC", - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CV", - "CW", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MK", - "ML", - "MM", - "MN", - "MO", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SZ", - "TA", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - "ZZ" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "allowed_countries" - ], - "title": "PaymentPagesCheckoutSessionShippingAddressCollection", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_shipping_cost": { - "description": "", - "properties": { - "amount_subtotal": { - "description": "Total shipping cost before any discounts or taxes are applied.", - "type": "integer" - }, - "amount_tax": { - "description": "Total tax amount applied due to shipping costs. If no tax was applied, defaults to 0.", - "type": "integer" - }, - "amount_total": { - "description": "Total shipping cost after discounts and taxes are applied.", - "type": "integer" - }, - "shipping_rate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/shipping_rate" - } - ], - "description": "The ID of the ShippingRate for this order.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/shipping_rate" - } - ] - } - }, - "taxes": { - "description": "The taxes applied to the shipping rate.", - "items": { - "$ref": "#/components/schemas/line_items_tax_amount" - }, - "type": "array" - } - }, - "required": [ - "amount_subtotal", - "amount_tax", - "amount_total" - ], - "title": "PaymentPagesCheckoutSessionShippingCost", - "type": "object", - "x-expandableFields": [ - "shipping_rate", - "taxes" - ] - }, - "payment_pages_checkout_session_shipping_option": { - "description": "", - "properties": { - "shipping_amount": { - "description": "A non-negative integer in cents representing how much to charge.", - "type": "integer" - }, - "shipping_rate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/shipping_rate" - } - ], - "description": "The shipping rate.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/shipping_rate" - } - ] - } - } - }, - "required": [ - "shipping_amount", - "shipping_rate" - ], - "title": "PaymentPagesCheckoutSessionShippingOption", - "type": "object", - "x-expandableFields": [ - "shipping_rate" - ] - }, - "payment_pages_checkout_session_tax_id": { - "description": "", - "properties": { - "type": { - "description": "The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, or `unknown`", - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "unknown", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "type": "string" - }, - "value": { - "description": "The value of the tax ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PaymentPagesCheckoutSessionTaxID", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_tax_id_collection": { - "description": "", - "properties": { - "enabled": { - "description": "Indicates whether tax ID collection is enabled for the session", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PaymentPagesCheckoutSessionTaxIDCollection", - "type": "object", - "x-expandableFields": [] - }, - "payment_pages_checkout_session_total_details": { - "description": "", - "properties": { - "amount_discount": { - "description": "This is the sum of all the discounts.", - "type": "integer" - }, - "amount_shipping": { - "description": "This is the sum of all the shipping amounts.", - "nullable": true, - "type": "integer" - }, - "amount_tax": { - "description": "This is the sum of all the tax amounts.", - "type": "integer" - }, - "breakdown": { - "$ref": "#/components/schemas/payment_pages_checkout_session_total_details_resource_breakdown" - } - }, - "required": [ - "amount_discount", - "amount_tax" - ], - "title": "PaymentPagesCheckoutSessionTotalDetails", - "type": "object", - "x-expandableFields": [ - "breakdown" - ] - }, - "payment_pages_checkout_session_total_details_resource_breakdown": { - "description": "", - "properties": { - "discounts": { - "description": "The aggregated discounts.", - "items": { - "$ref": "#/components/schemas/line_items_discount_amount" - }, - "type": "array" - }, - "taxes": { - "description": "The aggregated tax amounts by rate.", - "items": { - "$ref": "#/components/schemas/line_items_tax_amount" - }, - "type": "array" - } - }, - "required": [ - "discounts", - "taxes" - ], - "title": "PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown", - "type": "object", - "x-expandableFields": [ - "discounts", - "taxes" - ] - }, - "payment_source": { - "anyOf": [ - { - "$ref": "#/components/schemas/account" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "title": "Polymorphic", - "x-resourceId": "payment_source", - "x-stripeBypassValidation": true - }, - "payout": { - "description": "A `Payout` object is created when you receive funds from Stripe, or when you\ninitiate a payout to either a bank account or debit card of a [connected\nStripe account](/docs/connect/bank-debit-card-payouts). You can retrieve individual payouts,\nand list all payouts. Payouts are made on [varying\nschedules](/docs/connect/manage-payout-schedule), depending on your country and\nindustry.\n\nRelated guide: [Receiving payouts](https://stripe.com/docs/payouts)", - "properties": { - "amount": { - "description": "The amount (in cents (or local equivalent)) that transfers to your bank account or debit card.", - "type": "integer" - }, - "application_fee": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application_fee" - } - ], - "description": "The application fee (if any) for the payout. [See the Connect documentation](https://stripe.com/docs/connect/instant-payouts#monetization-and-fees) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application_fee" - } - ] - } - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) requested for the payout. [See the Connect documentation](https://stripe.com/docs/connect/instant-payouts#monetization-and-fees) for details.", - "nullable": true, - "type": "integer" - }, - "arrival_date": { - "description": "Date that you can expect the payout to arrive in the bank. This factors in delays to account for weekends or bank holidays.", - "format": "unix-time", - "type": "integer" - }, - "automatic": { - "description": "Returns `true` if the payout is created by an [automated payout schedule](https://stripe.com/docs/payouts#payout-schedule) and `false` if it's [requested manually](https://stripe.com/docs/payouts#manual-payouts).", - "type": "boolean" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "ID of the balance transaction that describes the impact of this payout on your account balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/deleted_bank_account" - }, - { - "$ref": "#/components/schemas/deleted_card" - } - ], - "description": "ID of the bank account or card the payout is sent to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/deleted_bank_account" - }, - { - "$ref": "#/components/schemas/deleted_card" - } - ] - }, - "x-stripeBypassValidation": true - }, - "failure_balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "If the payout fails or cancels, this is the ID of the balance transaction that reverses the initial balance transaction and returns the funds from the failed payout back in your balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "failure_code": { - "description": "Error code that provides a reason for a payout failure, if available. View our [list of failure codes](https://stripe.com/docs/api#payout_failures).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "failure_message": { - "description": "Message that provides the reason for a payout failure, if available.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "method": { - "description": "The method used to send this payout, which can be `standard` or `instant`. `instant` is supported for payouts to debit cards and bank accounts in certain countries. Learn more about [bank support for Instant Payouts](https://stripe.com/docs/payouts/instant-payouts-banks).", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "payout" - ], - "type": "string" - }, - "original_payout": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payout" - } - ], - "description": "If the payout reverses another, this is the ID of the original payout.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payout" - } - ] - } - }, - "reconciliation_status": { - "description": "If `completed`, you can use the [Balance Transactions API](https://stripe.com/docs/api/balance_transactions/list#balance_transaction_list-payout) to list all balance transactions that are paid out in this payout.", - "enum": [ - "completed", - "in_progress", - "not_applicable" - ], - "type": "string" - }, - "reversed_by": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payout" - } - ], - "description": "If the payout reverses, this is the ID of the payout that reverses this payout.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payout" - } - ] - } - }, - "source_type": { - "description": "The source balance this payout came from, which can be one of the following: `card`, `fpx`, or `bank_account`.", - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor": { - "description": "Extra information about a payout that displays on the user's bank statement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "Current status of the payout: `paid`, `pending`, `in_transit`, `canceled` or `failed`. A payout is `pending` until it's submitted to the bank, when it becomes `in_transit`. The status changes to `paid` if the transaction succeeds, or to `failed` or `canceled` (within 5 business days). Some payouts that fail might initially show as `paid`, then change to `failed`.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "Can be `bank_account` or `card`.", - "enum": [ - "bank_account", - "card" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "amount", - "arrival_date", - "automatic", - "created", - "currency", - "id", - "livemode", - "method", - "object", - "reconciliation_status", - "source_type", - "status", - "type" - ], - "title": "Payout", - "type": "object", - "x-expandableFields": [ - "application_fee", - "balance_transaction", - "destination", - "failure_balance_transaction", - "original_payout", - "reversed_by" - ], - "x-resourceId": "payout" - }, - "paypal_seller_protection": { - "description": "", - "properties": { - "dispute_categories": { - "description": "An array of conditions that are covered for the transaction, if applicable.", - "items": { - "enum": [ - "fraudulent", - "product_not_received" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - }, - "status": { - "description": "Indicates whether the transaction is eligible for PayPal's seller protection.", - "enum": [ - "eligible", - "not_eligible", - "partially_eligible" - ], - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "paypal_seller_protection", - "type": "object", - "x-expandableFields": [] - }, - "period": { - "description": "", - "properties": { - "end": { - "description": "The end date of this usage period. All usage up to and including this point in time is included.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "start": { - "description": "The start date of this usage period. All usage after this point in time is included.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "Period", - "type": "object", - "x-expandableFields": [] - }, - "person": { - "description": "This is an object representing a person associated with a Stripe account.\n\nA platform cannot access a person for an account where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `stripe`, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding.\n\nSee the [Standard onboarding](/connect/standard-accounts) or [Express onboarding](/connect/express-accounts) documentation for information about prefilling information and account onboarding steps. Learn more about [handling identity verification with the API](/connect/handling-api-verification#person-information).", - "properties": { - "account": { - "description": "The account the person is associated with.", - "maxLength": 5000, - "type": "string" - }, - "additional_tos_acceptances": { - "$ref": "#/components/schemas/person_additional_tos_acceptances" - }, - "address": { - "$ref": "#/components/schemas/address" - }, - "address_kana": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_japan_address" - } - ], - "nullable": true - }, - "address_kanji": { - "anyOf": [ - { - "$ref": "#/components/schemas/legal_entity_japan_address" - } - ], - "nullable": true - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "dob": { - "$ref": "#/components/schemas/legal_entity_dob" - }, - "email": { - "description": "The person's email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "full_name_aliases": { - "description": "A list of alternate names or aliases that the person is known by.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "future_requirements": { - "anyOf": [ - { - "$ref": "#/components/schemas/person_future_requirements" - } - ], - "nullable": true - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "id_number_provided": { - "description": "Whether the person's `id_number` was provided. True if either the full ID number was provided or if only the required part of the ID number was provided (ex. last four of an individual's SSN for the US indicated by `ssn_last_4_provided`).", - "type": "boolean" - }, - "id_number_secondary_provided": { - "description": "Whether the person's `id_number_secondary` was provided.", - "type": "boolean" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "nationality": { - "description": "The country where the person is a national.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "person" - ], - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "enum": [ - "existing", - "none" - ], - "type": "string" - }, - "registered_address": { - "$ref": "#/components/schemas/address" - }, - "relationship": { - "$ref": "#/components/schemas/person_relationship" - }, - "requirements": { - "anyOf": [ - { - "$ref": "#/components/schemas/person_requirements" - } - ], - "nullable": true - }, - "ssn_last_4_provided": { - "description": "Whether the last four digits of the person's Social Security number have been provided (U.S. only).", - "type": "boolean" - }, - "verification": { - "$ref": "#/components/schemas/legal_entity_person_verification" - } - }, - "required": [ - "account", - "created", - "id", - "object" - ], - "title": "Person", - "type": "object", - "x-expandableFields": [ - "additional_tos_acceptances", - "address", - "address_kana", - "address_kanji", - "dob", - "future_requirements", - "registered_address", - "relationship", - "requirements", - "verification" - ], - "x-resourceId": "person" - }, - "person_additional_tos_acceptance": { - "description": "", - "properties": { - "date": { - "description": "The Unix timestamp marking when the legal guardian accepted the service agreement.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "ip": { - "description": "The IP address from which the legal guardian accepted the service agreement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "user_agent": { - "description": "The user agent of the browser from which the legal guardian accepted the service agreement.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PersonAdditionalTOSAcceptance", - "type": "object", - "x-expandableFields": [] - }, - "person_additional_tos_acceptances": { - "description": "", - "properties": { - "account": { - "$ref": "#/components/schemas/person_additional_tos_acceptance" - } - }, - "required": [ - "account" - ], - "title": "PersonAdditionalTOSAcceptances", - "type": "object", - "x-expandableFields": [ - "account" - ] - }, - "person_future_requirements": { - "description": "", - "properties": { - "alternatives": { - "description": "Fields that are due and can be satisfied by providing the corresponding alternative fields instead.", - "items": { - "$ref": "#/components/schemas/account_requirements_alternative" - }, - "nullable": true, - "type": "array" - }, - "currently_due": { - "description": "Fields that need to be collected to keep the person's account enabled. If not collected by the account's `future_requirements[current_deadline]`, these fields will transition to the main `requirements` hash, and may immediately become `past_due`, but the account may also be given a grace period depending on the account's enablement state prior to transition.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "type": "array" - }, - "eventually_due": { - "description": "Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and the account's `future_requirements[current_deadline]` becomes set.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by the account's `requirements.current_deadline`. These fields need to be collected to enable the person's account. New fields will never appear here; `future_requirements.past_due` will always be a subset of `requirements.past_due`.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due` or `currently_due`. Fields might appear in `eventually_due` or `currently_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "currently_due", - "errors", - "eventually_due", - "past_due", - "pending_verification" - ], - "title": "PersonFutureRequirements", - "type": "object", - "x-expandableFields": [ - "alternatives", - "errors" - ] - }, - "person_relationship": { - "description": "", - "properties": { - "director": { - "description": "Whether the person is a director of the account's legal entity. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations.", - "nullable": true, - "type": "boolean" - }, - "executive": { - "description": "Whether the person has significant responsibility to control, manage, or direct the organization.", - "nullable": true, - "type": "boolean" - }, - "legal_guardian": { - "description": "Whether the person is the legal guardian of the account's representative.", - "nullable": true, - "type": "boolean" - }, - "owner": { - "description": "Whether the person is an owner of the account’s legal entity.", - "nullable": true, - "type": "boolean" - }, - "percent_ownership": { - "description": "The percent owned by the person of the account's legal entity.", - "nullable": true, - "type": "number" - }, - "representative": { - "description": "Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account.", - "nullable": true, - "type": "boolean" - }, - "title": { - "description": "The person's title (e.g., CEO, Support Engineer).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PersonRelationship", - "type": "object", - "x-expandableFields": [] - }, - "person_requirements": { - "description": "", - "properties": { - "alternatives": { - "description": "Fields that are due and can be satisfied by providing the corresponding alternative fields instead.", - "items": { - "$ref": "#/components/schemas/account_requirements_alternative" - }, - "nullable": true, - "type": "array" - }, - "currently_due": { - "description": "Fields that need to be collected to keep the person's account enabled. If not collected by the account's `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "errors": { - "description": "Fields that are `currently_due` and need to be collected again because validation or verification failed.", - "items": { - "$ref": "#/components/schemas/account_requirements_error" - }, - "type": "array" - }, - "eventually_due": { - "description": "Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in `currently_due` as well, and the account's `current_deadline` becomes set.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "past_due": { - "description": "Fields that weren't collected by the account's `current_deadline`. These fields need to be collected to enable the person's account.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "pending_verification": { - "description": "Fields that might become required depending on the results of verification or review. It's an empty array unless an asynchronous verification is pending. If verification fails, these fields move to `eventually_due`, `currently_due`, or `past_due`. Fields might appear in `eventually_due`, `currently_due`, or `past_due` and in `pending_verification` if verification fails but another verification is still pending.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "currently_due", - "errors", - "eventually_due", - "past_due", - "pending_verification" - ], - "title": "PersonRequirements", - "type": "object", - "x-expandableFields": [ - "alternatives", - "errors" - ] - }, - "plan": { - "description": "You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration.\n\nPlans define the base price, currency, and billing cycle for recurring purchases of products.\n[Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme.\n\nFor example, you might have a single \"gold\" product that has plans for $10/month, $100/year, €9/month, and €90/year.\n\nRelated guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription) and more about [products and prices](https://stripe.com/docs/products-prices/overview).", - "properties": { - "active": { - "description": "Whether the plan can be used for new purchases.", - "type": "boolean" - }, - "aggregate_usage": { - "description": "Specifies a usage aggregation strategy for plans of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for using the last usage record reported within a period, `last_ever` for using the last usage record ever (across period bounds) or `max` which uses the usage record with the maximum reported usage during a period. Defaults to `sum`.", - "enum": [ - "last_during_period", - "last_ever", - "max", - "sum" - ], - "nullable": true, - "type": "string" - }, - "amount": { - "description": "The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`.", - "nullable": true, - "type": "integer" - }, - "amount_decimal": { - "description": "The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "billing_scheme": { - "description": "Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.", - "enum": [ - "per_unit", - "tiered" - ], - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "interval": { - "description": "The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`.", - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months.", - "type": "integer" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "meter": { - "description": "The meter tracking the usage of a metered price", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "nickname": { - "description": "A brief description of the plan, hidden from customers.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "plan" - ], - "type": "string" - }, - "product": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/product" - }, - { - "$ref": "#/components/schemas/deleted_product" - } - ], - "description": "The product whose pricing this plan determines.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/product" - }, - { - "$ref": "#/components/schemas/deleted_product" - } - ] - } - }, - "tiers": { - "description": "Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.", - "items": { - "$ref": "#/components/schemas/plan_tier" - }, - "type": "array" - }, - "tiers_mode": { - "description": "Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows.", - "enum": [ - "graduated", - "volume" - ], - "nullable": true, - "type": "string" - }, - "transform_usage": { - "anyOf": [ - { - "$ref": "#/components/schemas/transform_usage" - } - ], - "description": "Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with `tiers`.", - "nullable": true - }, - "trial_period_days": { - "description": "Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan).", - "nullable": true, - "type": "integer" - }, - "usage_type": { - "description": "Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`.", - "enum": [ - "licensed", - "metered" - ], - "type": "string" - } - }, - "required": [ - "active", - "billing_scheme", - "created", - "currency", - "id", - "interval", - "interval_count", - "livemode", - "object", - "usage_type" - ], - "title": "Plan", - "type": "object", - "x-expandableFields": [ - "product", - "tiers", - "transform_usage" - ], - "x-resourceId": "plan" - }, - "plan_tier": { - "description": "", - "properties": { - "flat_amount": { - "description": "Price for the entire tier.", - "nullable": true, - "type": "integer" - }, - "flat_amount_decimal": { - "description": "Same as `flat_amount`, but contains a decimal value with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "unit_amount": { - "description": "Per unit price for units relevant to the tier.", - "nullable": true, - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "up_to": { - "description": "Up to and including to this quantity will be contained in the tier.", - "nullable": true, - "type": "integer" - } - }, - "title": "PlanTier", - "type": "object", - "x-expandableFields": [] - }, - "platform_earning_fee_source": { - "description": "", - "properties": { - "charge": { - "description": "Charge ID that created this application fee.", - "maxLength": 5000, - "type": "string" - }, - "payout": { - "description": "Payout ID that created this application fee.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "Type of object that created the application fee, either `charge` or `payout`.", - "enum": [ - "charge", - "payout" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PlatformEarningFeeSource", - "type": "object", - "x-expandableFields": [] - }, - "portal_business_profile": { - "description": "", - "properties": { - "headline": { - "description": "The messaging shown to customers in the portal.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "privacy_policy_url": { - "description": "A link to the business’s publicly available privacy policy.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "terms_of_service_url": { - "description": "A link to the business’s publicly available terms of service.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PortalBusinessProfile", - "type": "object", - "x-expandableFields": [] - }, - "portal_customer_update": { - "description": "", - "properties": { - "allowed_updates": { - "description": "The types of customer updates that are supported. When empty, customers are not updateable.", - "items": { - "enum": [ - "address", - "email", - "name", - "phone", - "shipping", - "tax_id" - ], - "type": "string" - }, - "type": "array" - }, - "enabled": { - "description": "Whether the feature is enabled.", - "type": "boolean" - } - }, - "required": [ - "allowed_updates", - "enabled" - ], - "title": "PortalCustomerUpdate", - "type": "object", - "x-expandableFields": [] - }, - "portal_features": { - "description": "", - "properties": { - "customer_update": { - "$ref": "#/components/schemas/portal_customer_update" - }, - "invoice_history": { - "$ref": "#/components/schemas/portal_invoice_list" - }, - "payment_method_update": { - "$ref": "#/components/schemas/portal_payment_method_update" - }, - "subscription_cancel": { - "$ref": "#/components/schemas/portal_subscription_cancel" - }, - "subscription_update": { - "$ref": "#/components/schemas/portal_subscription_update" - } - }, - "required": [ - "customer_update", - "invoice_history", - "payment_method_update", - "subscription_cancel", - "subscription_update" - ], - "title": "PortalFeatures", - "type": "object", - "x-expandableFields": [ - "customer_update", - "invoice_history", - "payment_method_update", - "subscription_cancel", - "subscription_update" - ] - }, - "portal_flows_after_completion_hosted_confirmation": { - "description": "", - "properties": { - "custom_message": { - "description": "A custom message to display to the customer after the flow is completed.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PortalFlowsAfterCompletionHostedConfirmation", - "type": "object", - "x-expandableFields": [] - }, - "portal_flows_after_completion_redirect": { - "description": "", - "properties": { - "return_url": { - "description": "The URL the customer will be redirected to after the flow is completed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "return_url" - ], - "title": "PortalFlowsAfterCompletionRedirect", - "type": "object", - "x-expandableFields": [] - }, - "portal_flows_coupon_offer": { - "description": "", - "properties": { - "coupon": { - "description": "The ID of the coupon to be offered.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "coupon" - ], - "title": "PortalFlowsCouponOffer", - "type": "object", - "x-expandableFields": [] - }, - "portal_flows_flow": { - "description": "", - "properties": { - "after_completion": { - "$ref": "#/components/schemas/portal_flows_flow_after_completion" - }, - "subscription_cancel": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_flow_subscription_cancel" - } - ], - "description": "Configuration when `flow.type=subscription_cancel`.", - "nullable": true - }, - "subscription_update": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_flow_subscription_update" - } - ], - "description": "Configuration when `flow.type=subscription_update`.", - "nullable": true - }, - "subscription_update_confirm": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_flow_subscription_update_confirm" - } - ], - "description": "Configuration when `flow.type=subscription_update_confirm`.", - "nullable": true - }, - "type": { - "description": "Type of flow that the customer will go through.", - "enum": [ - "payment_method_update", - "subscription_cancel", - "subscription_update", - "subscription_update_confirm" - ], - "type": "string" - } - }, - "required": [ - "after_completion", - "type" - ], - "title": "PortalFlowsFlow", - "type": "object", - "x-expandableFields": [ - "after_completion", - "subscription_cancel", - "subscription_update", - "subscription_update_confirm" - ] - }, - "portal_flows_flow_after_completion": { - "description": "", - "properties": { - "hosted_confirmation": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_after_completion_hosted_confirmation" - } - ], - "description": "Configuration when `after_completion.type=hosted_confirmation`.", - "nullable": true - }, - "redirect": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_after_completion_redirect" - } - ], - "description": "Configuration when `after_completion.type=redirect`.", - "nullable": true - }, - "type": { - "description": "The specified type of behavior after the flow is completed.", - "enum": [ - "hosted_confirmation", - "portal_homepage", - "redirect" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PortalFlowsFlowAfterCompletion", - "type": "object", - "x-expandableFields": [ - "hosted_confirmation", - "redirect" - ] - }, - "portal_flows_flow_subscription_cancel": { - "description": "", - "properties": { - "retention": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_retention" - } - ], - "description": "Specify a retention strategy to be used in the cancellation flow.", - "nullable": true - }, - "subscription": { - "description": "The ID of the subscription to be canceled.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "subscription" - ], - "title": "PortalFlowsFlowSubscriptionCancel", - "type": "object", - "x-expandableFields": [ - "retention" - ] - }, - "portal_flows_flow_subscription_update": { - "description": "", - "properties": { - "subscription": { - "description": "The ID of the subscription to be updated.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "subscription" - ], - "title": "PortalFlowsFlowSubscriptionUpdate", - "type": "object", - "x-expandableFields": [] - }, - "portal_flows_flow_subscription_update_confirm": { - "description": "", - "properties": { - "discounts": { - "description": "The coupon or promotion code to apply to this subscription update. Currently, only up to one may be specified.", - "items": { - "$ref": "#/components/schemas/portal_flows_subscription_update_confirm_discount" - }, - "nullable": true, - "type": "array" - }, - "items": { - "description": "The [subscription item](https://stripe.com/docs/api/subscription_items) to be updated through this flow. Currently, only up to one may be specified and subscriptions with multiple items are not updatable.", - "items": { - "$ref": "#/components/schemas/portal_flows_subscription_update_confirm_item" - }, - "type": "array" - }, - "subscription": { - "description": "The ID of the subscription to be updated.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "items", - "subscription" - ], - "title": "PortalFlowsFlowSubscriptionUpdateConfirm", - "type": "object", - "x-expandableFields": [ - "discounts", - "items" - ] - }, - "portal_flows_retention": { - "description": "", - "properties": { - "coupon_offer": { - "anyOf": [ - { - "$ref": "#/components/schemas/portal_flows_coupon_offer" - } - ], - "description": "Configuration when `retention.type=coupon_offer`.", - "nullable": true - }, - "type": { - "description": "Type of retention strategy that will be used.", - "enum": [ - "coupon_offer" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "PortalFlowsRetention", - "type": "object", - "x-expandableFields": [ - "coupon_offer" - ] - }, - "portal_flows_subscription_update_confirm_discount": { - "description": "", - "properties": { - "coupon": { - "description": "The ID of the coupon to apply to this subscription update.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "promotion_code": { - "description": "The ID of a promotion code to apply to this subscription update.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "PortalFlowsSubscriptionUpdateConfirmDiscount", - "type": "object", - "x-expandableFields": [] - }, - "portal_flows_subscription_update_confirm_item": { - "description": "", - "properties": { - "id": { - "description": "The ID of the [subscription item](https://stripe.com/docs/api/subscriptions/object#subscription_object-items-data-id) to be updated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "price": { - "description": "The price the customer should subscribe to through this flow. The price must also be included in the configuration's [`features.subscription_update.products`](https://stripe.com/docs/api/customer_portal/configuration#portal_configuration_object-features-subscription_update-products).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity": { - "description": "[Quantity](https://stripe.com/docs/subscriptions/quantities) for this item that the customer should subscribe to through this flow.", - "type": "integer" - } - }, - "title": "PortalFlowsSubscriptionUpdateConfirmItem", - "type": "object", - "x-expandableFields": [] - }, - "portal_invoice_list": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the feature is enabled.", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PortalInvoiceList", - "type": "object", - "x-expandableFields": [] - }, - "portal_login_page": { - "description": "", - "properties": { - "enabled": { - "description": "If `true`, a shareable `url` will be generated that will take your customers to a hosted login page for the customer portal.\n\nIf `false`, the previously generated `url`, if any, will be deactivated.", - "type": "boolean" - }, - "url": { - "description": "A shareable URL to the hosted portal login page. Your customers will be able to log in with their [email](https://stripe.com/docs/api/customers/object#customer_object-email) and receive a link to their customer portal.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "enabled" - ], - "title": "PortalLoginPage", - "type": "object", - "x-expandableFields": [] - }, - "portal_payment_method_update": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the feature is enabled.", - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "PortalPaymentMethodUpdate", - "type": "object", - "x-expandableFields": [] - }, - "portal_subscription_cancel": { - "description": "", - "properties": { - "cancellation_reason": { - "$ref": "#/components/schemas/portal_subscription_cancellation_reason" - }, - "enabled": { - "description": "Whether the feature is enabled.", - "type": "boolean" - }, - "mode": { - "description": "Whether to cancel subscriptions immediately or at the end of the billing period.", - "enum": [ - "at_period_end", - "immediately" - ], - "type": "string" - }, - "proration_behavior": { - "description": "Whether to create prorations when canceling subscriptions. Possible values are `none` and `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "required": [ - "cancellation_reason", - "enabled", - "mode", - "proration_behavior" - ], - "title": "PortalSubscriptionCancel", - "type": "object", - "x-expandableFields": [ - "cancellation_reason" - ] - }, - "portal_subscription_cancellation_reason": { - "description": "", - "properties": { - "enabled": { - "description": "Whether the feature is enabled.", - "type": "boolean" - }, - "options": { - "description": "Which cancellation reasons will be given as options to the customer.", - "items": { - "enum": [ - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "enabled", - "options" - ], - "title": "PortalSubscriptionCancellationReason", - "type": "object", - "x-expandableFields": [] - }, - "portal_subscription_update": { - "description": "", - "properties": { - "default_allowed_updates": { - "description": "The types of subscription updates that are supported for items listed in the `products` attribute. When empty, subscriptions are not updateable.", - "items": { - "enum": [ - "price", - "promotion_code", - "quantity" - ], - "type": "string" - }, - "type": "array" - }, - "enabled": { - "description": "Whether the feature is enabled.", - "type": "boolean" - }, - "products": { - "description": "The list of up to 10 products that support subscription updates.", - "items": { - "$ref": "#/components/schemas/portal_subscription_update_product" - }, - "nullable": true, - "type": "array" - }, - "proration_behavior": { - "description": "Determines how to handle prorations resulting from subscription updates. Valid values are `none`, `create_prorations`, and `always_invoice`. Defaults to a value of `none` if you don't set it during creation.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "required": [ - "default_allowed_updates", - "enabled", - "proration_behavior" - ], - "title": "PortalSubscriptionUpdate", - "type": "object", - "x-expandableFields": [ - "products" - ] - }, - "portal_subscription_update_product": { - "description": "", - "properties": { - "prices": { - "description": "The list of price IDs which, when subscribed to, a subscription can be updated.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "product": { - "description": "The product ID.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "prices", - "product" - ], - "title": "PortalSubscriptionUpdateProduct", - "type": "object", - "x-expandableFields": [] - }, - "price": { - "description": "Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products.\n[Products](https://stripe.com/docs/api#products) help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.\n\nFor example, you might have a single \"gold\" product that has prices for $10/month, $100/year, and €9 once.\n\nRelated guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription), [create an invoice](https://stripe.com/docs/billing/invoices/create), and more about [products and prices](https://stripe.com/docs/products-prices/overview).", - "properties": { - "active": { - "description": "Whether the price can be used for new purchases.", - "type": "boolean" - }, - "billing_scheme": { - "description": "Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.", - "enum": [ - "per_unit", - "tiered" - ], - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "$ref": "#/components/schemas/currency_option" - }, - "description": "Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "custom_unit_amount": { - "anyOf": [ - { - "$ref": "#/components/schemas/custom_unit_amount" - } - ], - "description": "When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "lookup_key": { - "description": "A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "nickname": { - "description": "A brief description of the price, hidden from customers.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "price" - ], - "type": "string" - }, - "product": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/product" - }, - { - "$ref": "#/components/schemas/deleted_product" - } - ], - "description": "The ID of the product this price is associated with.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/product" - }, - { - "$ref": "#/components/schemas/deleted_product" - } - ] - } - }, - "recurring": { - "anyOf": [ - { - "$ref": "#/components/schemas/recurring" - } - ], - "description": "The recurring components of a price such as `interval` and `usage_type`.", - "nullable": true - }, - "tax_behavior": { - "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "nullable": true, - "type": "string" - }, - "tiers": { - "description": "Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.", - "items": { - "$ref": "#/components/schemas/price_tier" - }, - "type": "array" - }, - "tiers_mode": { - "description": "Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows.", - "enum": [ - "graduated", - "volume" - ], - "nullable": true, - "type": "string" - }, - "transform_quantity": { - "anyOf": [ - { - "$ref": "#/components/schemas/transform_quantity" - } - ], - "description": "Apply a transformation to the reported usage or set quantity before computing the amount billed. Cannot be combined with `tiers`.", - "nullable": true - }, - "type": { - "description": "One of `one_time` or `recurring` depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.", - "enum": [ - "one_time", - "recurring" - ], - "type": "string" - }, - "unit_amount": { - "description": "The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`.", - "nullable": true, - "type": "integer" - }, - "unit_amount_decimal": { - "description": "The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`.", - "format": "decimal", - "nullable": true, - "type": "string" - } - }, - "required": [ - "active", - "billing_scheme", - "created", - "currency", - "id", - "livemode", - "metadata", - "object", - "product", - "type" - ], - "title": "Price", - "type": "object", - "x-expandableFields": [ - "currency_options", - "custom_unit_amount", - "product", - "recurring", - "tiers", - "transform_quantity" - ], - "x-resourceId": "price" - }, - "price_tier": { - "description": "", - "properties": { - "flat_amount": { - "description": "Price for the entire tier.", - "nullable": true, - "type": "integer" - }, - "flat_amount_decimal": { - "description": "Same as `flat_amount`, but contains a decimal value with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "unit_amount": { - "description": "Per unit price for units relevant to the tier.", - "nullable": true, - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.", - "format": "decimal", - "nullable": true, - "type": "string" - }, - "up_to": { - "description": "Up to and including to this quantity will be contained in the tier.", - "nullable": true, - "type": "integer" - } - }, - "title": "PriceTier", - "type": "object", - "x-expandableFields": [] - }, - "product": { - "description": "Products describe the specific goods or services you offer to your customers.\nFor example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product.\nThey can be used in conjunction with [Prices](https://stripe.com/docs/api#prices) to configure pricing in Payment Links, Checkout, and Subscriptions.\n\nRelated guides: [Set up a subscription](https://stripe.com/docs/billing/subscriptions/set-up-subscription),\n[share a Payment Link](https://stripe.com/docs/payment-links),\n[accept payments with Checkout](https://stripe.com/docs/payments/accept-a-payment#create-product-prices-upfront),\nand more about [Products and Prices](https://stripe.com/docs/products-prices/overview)", - "properties": { - "active": { - "description": "Whether the product is currently available for purchase.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "default_price": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/price" - } - ], - "description": "The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/price" - } - ] - } - }, - "description": { - "description": "The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "images": { - "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "marketing_features": { - "description": "A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table).", - "items": { - "$ref": "#/components/schemas/product_marketing_feature" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "The product's name, meant to be displayable to the customer.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "product" - ], - "type": "string" - }, - "package_dimensions": { - "anyOf": [ - { - "$ref": "#/components/schemas/package_dimensions" - } - ], - "description": "The dimensions of this product for shipping purposes.", - "nullable": true - }, - "shippable": { - "description": "Whether this product is shipped (i.e., physical goods).", - "nullable": true, - "type": "boolean" - }, - "statement_descriptor": { - "description": "Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used. Only used for subscription payments.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_code" - } - ], - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_code" - } - ] - } - }, - "unit_label": { - "description": "A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "updated": { - "description": "Time at which the object was last updated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "url": { - "description": "A URL of a publicly-accessible webpage for this product.", - "maxLength": 2048, - "nullable": true, - "type": "string" - } - }, - "required": [ - "active", - "created", - "id", - "images", - "livemode", - "marketing_features", - "metadata", - "name", - "object", - "updated" - ], - "title": "Product", - "type": "object", - "x-expandableFields": [ - "default_price", - "marketing_features", - "package_dimensions", - "tax_code" - ], - "x-resourceId": "product" - }, - "product_feature": { - "description": "A product_feature represents an attachment between a feature and a product.\nWhen a product is purchased that has a feature attached, Stripe will create an entitlement to the feature for the purchasing customer.", - "properties": { - "entitlement_feature": { - "$ref": "#/components/schemas/entitlements.feature" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "product_feature" - ], - "type": "string" - } - }, - "required": [ - "entitlement_feature", - "id", - "livemode", - "object" - ], - "title": "ProductFeature", - "type": "object", - "x-expandableFields": [ - "entitlement_feature" - ], - "x-resourceId": "product_feature" - }, - "product_marketing_feature": { - "description": "", - "properties": { - "name": { - "description": "The marketing feature name. Up to 80 characters long.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "ProductMarketingFeature", - "type": "object", - "x-expandableFields": [] - }, - "promotion_code": { - "description": "A Promotion Code represents a customer-redeemable code for a [coupon](https://stripe.com/docs/api#coupons). It can be used to\ncreate multiple codes for a single coupon.", - "properties": { - "active": { - "description": "Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid.", - "type": "boolean" - }, - "code": { - "description": "The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer.", - "maxLength": 5000, - "type": "string" - }, - "coupon": { - "$ref": "#/components/schemas/coupon" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The customer that this promotion code can be used by.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "expires_at": { - "description": "Date at which the promotion code can no longer be redeemed.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "max_redemptions": { - "description": "Maximum number of times this promotion code can be redeemed.", - "nullable": true, - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "promotion_code" - ], - "type": "string" - }, - "restrictions": { - "$ref": "#/components/schemas/promotion_codes_resource_restrictions" - }, - "times_redeemed": { - "description": "Number of times this promotion code has been used.", - "type": "integer" - } - }, - "required": [ - "active", - "code", - "coupon", - "created", - "id", - "livemode", - "object", - "restrictions", - "times_redeemed" - ], - "title": "PromotionCode", - "type": "object", - "x-expandableFields": [ - "coupon", - "customer", - "restrictions" - ], - "x-resourceId": "promotion_code" - }, - "promotion_code_currency_option": { - "description": "", - "properties": { - "minimum_amount": { - "description": "Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work).", - "type": "integer" - } - }, - "required": [ - "minimum_amount" - ], - "title": "PromotionCodeCurrencyOption", - "type": "object", - "x-expandableFields": [] - }, - "promotion_codes_resource_restrictions": { - "description": "", - "properties": { - "currency_options": { - "additionalProperties": { - "$ref": "#/components/schemas/promotion_code_currency_option" - }, - "description": "Promotion code restrictions defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "first_time_transaction": { - "description": "A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices", - "type": "boolean" - }, - "minimum_amount": { - "description": "Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work).", - "nullable": true, - "type": "integer" - }, - "minimum_amount_currency": { - "description": "Three-letter [ISO code](https://stripe.com/docs/currencies) for minimum_amount", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "first_time_transaction" - ], - "title": "PromotionCodesResourceRestrictions", - "type": "object", - "x-expandableFields": [ - "currency_options" - ] - }, - "quote": { - "description": "A Quote is a way to model prices that you'd like to provide to a customer.\nOnce accepted, it will automatically create an invoice, subscription or subscription schedule.", - "properties": { - "amount_subtotal": { - "description": "Total before any discounts or taxes are applied.", - "type": "integer" - }, - "amount_total": { - "description": "Total after discounts and taxes are applied.", - "type": "integer" - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ], - "description": "ID of the Connect Application that created the quote.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ] - } - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Only applicable if there are no line items with recurring prices on the quote.", - "nullable": true, - "type": "integer" - }, - "application_fee_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. Only applicable if there are line items with recurring prices on the quote.", - "nullable": true, - "type": "number" - }, - "automatic_tax": { - "$ref": "#/components/schemas/quotes_resource_automatic_tax" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or on finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "computed": { - "$ref": "#/components/schemas/quotes_resource_computed" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The customer which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "default_tax_rates": { - "description": "The tax rates applied to this quote.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_rate" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_rate" - } - ] - } - }, - "type": "array" - }, - "description": { - "description": "A description that will be displayed on the quote PDF.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discounts": { - "description": "The discounts applied to this quote.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - } - ] - } - }, - "type": "array" - }, - "expires_at": { - "description": "The date on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "footer": { - "description": "A footer that will be displayed on the quote PDF.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "from_quote": { - "anyOf": [ - { - "$ref": "#/components/schemas/quotes_resource_from_quote" - } - ], - "description": "Details of the quote that was cloned. See the [cloning documentation](https://stripe.com/docs/quotes/clone) for more details.", - "nullable": true - }, - "header": { - "description": "A header that will be displayed on the quote PDF.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - }, - { - "$ref": "#/components/schemas/deleted_invoice" - } - ], - "description": "The invoice that was created from this quote.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - }, - { - "$ref": "#/components/schemas/deleted_invoice" - } - ] - } - }, - "invoice_settings": { - "$ref": "#/components/schemas/invoice_setting_quote_setting" - }, - "line_items": { - "description": "A list of items the customer is being quoted for.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "QuotesResourceListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "number": { - "description": "A unique number that identifies this particular quote. This number is assigned once the quote is [finalized](https://stripe.com/docs/quotes/overview#finalize).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "quote" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account on behalf of which to charge. See the [Connect documentation](https://support.stripe.com/questions/sending-invoices-on-behalf-of-connected-accounts) for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "status": { - "description": "The status of the quote.", - "enum": [ - "accepted", - "canceled", - "draft", - "open" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "status_transitions": { - "$ref": "#/components/schemas/quotes_resource_status_transitions" - }, - "subscription": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription" - } - ], - "description": "The subscription that was created or updated from this quote.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription" - } - ] - } - }, - "subscription_data": { - "$ref": "#/components/schemas/quotes_resource_subscription_data_subscription_data" - }, - "subscription_schedule": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription_schedule" - } - ], - "description": "The subscription schedule that was created or updated from this quote.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription_schedule" - } - ] - } - }, - "test_clock": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ], - "description": "ID of the test clock this quote belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ] - } - }, - "total_details": { - "$ref": "#/components/schemas/quotes_resource_total_details" - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/quotes_resource_transfer_data" - } - ], - "description": "The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the invoices.", - "nullable": true - } - }, - "required": [ - "amount_subtotal", - "amount_total", - "automatic_tax", - "collection_method", - "computed", - "created", - "discounts", - "expires_at", - "id", - "invoice_settings", - "livemode", - "metadata", - "object", - "status", - "status_transitions", - "subscription_data", - "total_details" - ], - "title": "Quote", - "type": "object", - "x-expandableFields": [ - "application", - "automatic_tax", - "computed", - "customer", - "default_tax_rates", - "discounts", - "from_quote", - "invoice", - "invoice_settings", - "line_items", - "on_behalf_of", - "status_transitions", - "subscription", - "subscription_data", - "subscription_schedule", - "test_clock", - "total_details", - "transfer_data" - ], - "x-resourceId": "quote" - }, - "quotes_resource_automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "Automatically calculate taxes", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - }, - "status": { - "description": "The status of the most recent automated tax calculation for this quote.", - "enum": [ - "complete", - "failed", - "requires_location_inputs" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "enabled" - ], - "title": "QuotesResourceAutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "quotes_resource_computed": { - "description": "", - "properties": { - "recurring": { - "anyOf": [ - { - "$ref": "#/components/schemas/quotes_resource_recurring" - } - ], - "description": "The definitive totals and line items the customer will be charged on a recurring basis. Takes into account the line items with recurring prices and discounts with `duration=forever` coupons only. Defaults to `null` if no inputted line items with recurring prices.", - "nullable": true - }, - "upfront": { - "$ref": "#/components/schemas/quotes_resource_upfront" - } - }, - "required": [ - "upfront" - ], - "title": "QuotesResourceComputed", - "type": "object", - "x-expandableFields": [ - "recurring", - "upfront" - ] - }, - "quotes_resource_from_quote": { - "description": "", - "properties": { - "is_revision": { - "description": "Whether this quote is a revision of a different quote.", - "type": "boolean" - }, - "quote": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/quote" - } - ], - "description": "The quote that was cloned.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/quote" - } - ] - } - } - }, - "required": [ - "is_revision", - "quote" - ], - "title": "QuotesResourceFromQuote", - "type": "object", - "x-expandableFields": [ - "quote" - ] - }, - "quotes_resource_recurring": { - "description": "", - "properties": { - "amount_subtotal": { - "description": "Total before any discounts or taxes are applied.", - "type": "integer" - }, - "amount_total": { - "description": "Total after discounts and taxes are applied.", - "type": "integer" - }, - "interval": { - "description": "The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`.", - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months.", - "type": "integer" - }, - "total_details": { - "$ref": "#/components/schemas/quotes_resource_total_details" - } - }, - "required": [ - "amount_subtotal", - "amount_total", - "interval", - "interval_count", - "total_details" - ], - "title": "QuotesResourceRecurring", - "type": "object", - "x-expandableFields": [ - "total_details" - ] - }, - "quotes_resource_status_transitions": { - "description": "", - "properties": { - "accepted_at": { - "description": "The time that the quote was accepted. Measured in seconds since Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "canceled_at": { - "description": "The time that the quote was canceled. Measured in seconds since Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "finalized_at": { - "description": "The time that the quote was finalized. Measured in seconds since Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "QuotesResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "quotes_resource_subscription_data_subscription_data": { - "description": "", - "properties": { - "description": { - "description": "The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "effective_date": { - "description": "When creating a new subscription, the date of which the subscription schedule will start after the quote is accepted. This date is ignored if it is in the past when the quote is accepted. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that will set metadata on the subscription or subscription schedule when the quote is accepted. If a recurring price is included in `line_items`, this field will be passed to the resulting subscription's `metadata` field. If `subscription_data.effective_date` is used, this field will be passed to the resulting subscription schedule's `phases.metadata` field. Unlike object-level metadata, this field is declarative. Updates will clear prior values.", - "nullable": true, - "type": "object" - }, - "trial_period_days": { - "description": "Integer representing the number of trial period days before the customer is charged for the first time.", - "nullable": true, - "type": "integer" - } - }, - "title": "QuotesResourceSubscriptionDataSubscriptionData", - "type": "object", - "x-expandableFields": [] - }, - "quotes_resource_total_details": { - "description": "", - "properties": { - "amount_discount": { - "description": "This is the sum of all the discounts.", - "type": "integer" - }, - "amount_shipping": { - "description": "This is the sum of all the shipping amounts.", - "nullable": true, - "type": "integer" - }, - "amount_tax": { - "description": "This is the sum of all the tax amounts.", - "type": "integer" - }, - "breakdown": { - "$ref": "#/components/schemas/quotes_resource_total_details_resource_breakdown" - } - }, - "required": [ - "amount_discount", - "amount_tax" - ], - "title": "QuotesResourceTotalDetails", - "type": "object", - "x-expandableFields": [ - "breakdown" - ] - }, - "quotes_resource_total_details_resource_breakdown": { - "description": "", - "properties": { - "discounts": { - "description": "The aggregated discounts.", - "items": { - "$ref": "#/components/schemas/line_items_discount_amount" - }, - "type": "array" - }, - "taxes": { - "description": "The aggregated tax amounts by rate.", - "items": { - "$ref": "#/components/schemas/line_items_tax_amount" - }, - "type": "array" - } - }, - "required": [ - "discounts", - "taxes" - ], - "title": "QuotesResourceTotalDetailsResourceBreakdown", - "type": "object", - "x-expandableFields": [ - "discounts", - "taxes" - ] - }, - "quotes_resource_transfer_data": { - "description": "", - "properties": { - "amount": { - "description": "The amount in cents (or local equivalent) that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination.", - "nullable": true, - "type": "integer" - }, - "amount_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount will be transferred to the destination.", - "nullable": true, - "type": "number" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account where funds from the payment will be transferred to upon payment success.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - } - }, - "required": [ - "destination" - ], - "title": "QuotesResourceTransferData", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "quotes_resource_upfront": { - "description": "", - "properties": { - "amount_subtotal": { - "description": "Total before any discounts or taxes are applied.", - "type": "integer" - }, - "amount_total": { - "description": "Total after discounts and taxes are applied.", - "type": "integer" - }, - "line_items": { - "description": "The line items that will appear on the next invoice after this quote is accepted. This does not include pending invoice items that exist on the customer but may still be included in the next invoice.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "QuotesResourceListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "total_details": { - "$ref": "#/components/schemas/quotes_resource_total_details" - } - }, - "required": [ - "amount_subtotal", - "amount_total", - "total_details" - ], - "title": "QuotesResourceUpfront", - "type": "object", - "x-expandableFields": [ - "line_items", - "total_details" - ] - }, - "radar.early_fraud_warning": { - "description": "An early fraud warning indicates that the card issuer has notified us that a\ncharge may be fraudulent.\n\nRelated guide: [Early fraud warnings](https://stripe.com/docs/disputes/measuring#early-fraud-warnings)", - "properties": { - "actionable": { - "description": "An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later.", - "type": "boolean" - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the charge this early fraud warning is for, optionally expanded.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "fraud_type": { - "description": "The type of fraud labelled by the issuer. One of `card_never_received`, `fraudulent_card_application`, `made_with_counterfeit_card`, `made_with_lost_card`, `made_with_stolen_card`, `misc`, `unauthorized_use_of_card`.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "radar.early_fraud_warning" - ], - "type": "string" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "ID of the Payment Intent this early fraud warning is for, optionally expanded.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - } - }, - "required": [ - "actionable", - "charge", - "created", - "fraud_type", - "id", - "livemode", - "object" - ], - "title": "RadarEarlyFraudWarning", - "type": "object", - "x-expandableFields": [ - "charge", - "payment_intent" - ], - "x-resourceId": "radar.early_fraud_warning" - }, - "radar.value_list": { - "description": "Value lists allow you to group values together which can then be referenced in rules.\n\nRelated guide: [Default Stripe lists](https://stripe.com/docs/radar/lists#managing-list-items)", - "properties": { - "alias": { - "description": "The name of the value list for use in rules.", - "maxLength": 5000, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "created_by": { - "description": "The name or email address of the user who created this value list.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "item_type": { - "description": "The type of items in the value list. One of `card_fingerprint`, `us_bank_account_fingerprint`, `sepa_debit_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, `case_sensitive_string`, or `customer_id`.", - "enum": [ - "card_bin", - "card_fingerprint", - "case_sensitive_string", - "country", - "customer_id", - "email", - "ip_address", - "sepa_debit_fingerprint", - "string", - "us_bank_account_fingerprint" - ], - "type": "string" - }, - "list_items": { - "description": "List of items contained within this value list.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/radar.value_list_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RadarListListItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "The name of the value list.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "radar.value_list" - ], - "type": "string" - } - }, - "required": [ - "alias", - "created", - "created_by", - "id", - "item_type", - "list_items", - "livemode", - "metadata", - "name", - "object" - ], - "title": "RadarListList", - "type": "object", - "x-expandableFields": [ - "list_items" - ], - "x-resourceId": "radar.value_list" - }, - "radar.value_list_item": { - "description": "Value list items allow you to add specific values to a given Radar value list, which can then be used in rules.\n\nRelated guide: [Managing list items](https://stripe.com/docs/radar/lists#managing-list-items)", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "created_by": { - "description": "The name or email address of the user who added this item to the value list.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "radar.value_list_item" - ], - "type": "string" - }, - "value": { - "description": "The value of the item.", - "maxLength": 5000, - "type": "string" - }, - "value_list": { - "description": "The identifier of the value list this item belongs to.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "created_by", - "id", - "livemode", - "object", - "value", - "value_list" - ], - "title": "RadarListListItem", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "radar.value_list_item" - }, - "radar_radar_options": { - "description": "Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.", - "properties": { - "session": { - "description": "A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "RadarRadarOptions", - "type": "object", - "x-expandableFields": [] - }, - "radar_review_resource_location": { - "description": "", - "properties": { - "city": { - "description": "The city where the payment originated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter ISO code representing the country where the payment originated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "latitude": { - "description": "The geographic latitude where the payment originated.", - "nullable": true, - "type": "number" - }, - "longitude": { - "description": "The geographic longitude where the payment originated.", - "nullable": true, - "type": "number" - }, - "region": { - "description": "The state/county/province/region where the payment originated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "RadarReviewResourceLocation", - "type": "object", - "x-expandableFields": [] - }, - "radar_review_resource_session": { - "description": "", - "properties": { - "browser": { - "description": "The browser used in this browser session (e.g., `Chrome`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "device": { - "description": "Information about the device used for the browser session (e.g., `Samsung SM-G930T`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "platform": { - "description": "The platform for the browser session (e.g., `Macintosh`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "version": { - "description": "The version for the browser session (e.g., `61.0.3163.100`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "RadarReviewResourceSession", - "type": "object", - "x-expandableFields": [] - }, - "received_payment_method_details_financial_account": { - "description": "", - "properties": { - "id": { - "description": "The FinancialAccount ID.", - "maxLength": 5000, - "type": "string" - }, - "network": { - "description": "The rails the ReceivedCredit was sent over. A FinancialAccount can only send funds over `stripe`.", - "enum": [ - "stripe" - ], - "type": "string" - } - }, - "required": [ - "id", - "network" - ], - "title": "received_payment_method_details_financial_account", - "type": "object", - "x-expandableFields": [] - }, - "recurring": { - "description": "", - "properties": { - "aggregate_usage": { - "description": "Specifies a usage aggregation strategy for prices of `usage_type=metered`. Defaults to `sum`.", - "enum": [ - "last_during_period", - "last_ever", - "max", - "sum" - ], - "nullable": true, - "type": "string" - }, - "interval": { - "description": "The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`.", - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months.", - "type": "integer" - }, - "meter": { - "description": "The meter tracking the usage of a metered price", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "usage_type": { - "description": "Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`.", - "enum": [ - "licensed", - "metered" - ], - "type": "string" - } - }, - "required": [ - "interval", - "interval_count", - "usage_type" - ], - "title": "Recurring", - "type": "object", - "x-expandableFields": [] - }, - "refund": { - "description": "Refund objects allow you to refund a previously created charge that isn't\nrefunded yet. Funds are refunded to the credit or debit card that's\ninitially charged.\n\nRelated guide: [Refunds](https://stripe.com/docs/refunds)", - "properties": { - "amount": { - "description": "Amount, in cents (or local equivalent).", - "type": "integer" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "Balance transaction that describes the impact on your account balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the charge that's refunded.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. You can use this for displaying to users (available on non-card refunds only).", - "maxLength": 5000, - "type": "string" - }, - "destination_details": { - "$ref": "#/components/schemas/refund_destination_details" - }, - "failure_balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "After the refund fails, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "failure_reason": { - "description": "Provides the reason for the refund failure. Possible values are: `lost_or_stolen_card`, `expired_or_canceled_card`, `charge_for_pending_refund_disputed`, `insufficient_funds`, `declined`, `merchant_request`, or `unknown`.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "instructions_email": { - "description": "For payment methods without native refund support (for example, Konbini, PromptPay), provide an email address for the customer to receive refund instructions.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "next_action": { - "$ref": "#/components/schemas/refund_next_action" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "refund" - ], - "type": "string" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "ID of the PaymentIntent that's refunded.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "reason": { - "description": "Reason for the refund, which is either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`).", - "enum": [ - "duplicate", - "expired_uncaptured_charge", - "fraudulent", - "requested_by_customer" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "receipt_number": { - "description": "This is the transaction number that appears on email receipts sent for this refund.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "source_transfer_reversal": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/transfer_reversal" - } - ], - "description": "The transfer reversal that's associated with the refund. Only present if the charge came from another Stripe account.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/transfer_reversal" - } - ] - } - }, - "status": { - "description": "Status of the refund. This can be `pending`, `requires_action`, `succeeded`, `failed`, or `canceled`. Learn more about [failed refunds](https://stripe.com/docs/refunds#failed-refunds).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "transfer_reversal": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/transfer_reversal" - } - ], - "description": "This refers to the transfer reversal object if the accompanying transfer reverses. This is only applicable if the charge was created using the destination parameter.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/transfer_reversal" - } - ] - } - } - }, - "required": [ - "amount", - "created", - "currency", - "id", - "object" - ], - "title": "Refund", - "type": "object", - "x-expandableFields": [ - "balance_transaction", - "charge", - "destination_details", - "failure_balance_transaction", - "next_action", - "payment_intent", - "source_transfer_reversal", - "transfer_reversal" - ], - "x-resourceId": "refund" - }, - "refund_destination_details": { - "description": "", - "properties": { - "affirm": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "afterpay_clearpay": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "alipay": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "amazon_pay": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "au_bank_transfer": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "blik": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "br_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "card": { - "$ref": "#/components/schemas/refund_destination_details_card" - }, - "cashapp": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "customer_cash_balance": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "eps": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "eu_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "gb_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "giropay": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "grabpay": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "jp_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "klarna": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "multibanco": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "mx_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "p24": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "paynow": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "paypal": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "pix": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "revolut": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "sofort": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "swish": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "th_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "type": { - "description": "The type of transaction-specific details of the payment method used in the refund (e.g., `card`). An additional hash is included on `destination_details` with a name matching this value. It contains information specific to the refund transaction.", - "maxLength": 5000, - "type": "string" - }, - "us_bank_transfer": { - "$ref": "#/components/schemas/refund_destination_details_generic" - }, - "wechat_pay": { - "$ref": "#/components/schemas/destination_details_unimplemented" - }, - "zip": { - "$ref": "#/components/schemas/destination_details_unimplemented" - } - }, - "required": [ - "type" - ], - "title": "refund_destination_details", - "type": "object", - "x-expandableFields": [ - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_bank_transfer", - "blik", - "br_bank_transfer", - "card", - "cashapp", - "customer_cash_balance", - "eps", - "eu_bank_transfer", - "gb_bank_transfer", - "giropay", - "grabpay", - "jp_bank_transfer", - "klarna", - "multibanco", - "mx_bank_transfer", - "p24", - "paynow", - "paypal", - "pix", - "revolut", - "sofort", - "swish", - "th_bank_transfer", - "us_bank_transfer", - "wechat_pay", - "zip" - ] - }, - "refund_destination_details_card": { - "description": "", - "properties": { - "reference": { - "description": "Value of the reference number assigned to the refund.", - "maxLength": 5000, - "type": "string" - }, - "reference_status": { - "description": "Status of the reference number on the refund. This can be `pending`, `available` or `unavailable`.", - "maxLength": 5000, - "type": "string" - }, - "reference_type": { - "description": "Type of the reference number assigned to the refund.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "The type of refund. This can be `refund`, `reversal`, or `pending`.", - "enum": [ - "pending", - "refund", - "reversal" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "refund_destination_details_card", - "type": "object", - "x-expandableFields": [] - }, - "refund_destination_details_generic": { - "description": "", - "properties": { - "reference": { - "description": "The reference assigned to the refund.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "reference_status": { - "description": "Status of the reference on the refund. This can be `pending`, `available` or `unavailable`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "refund_destination_details_generic", - "type": "object", - "x-expandableFields": [] - }, - "refund_next_action": { - "description": "", - "properties": { - "display_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/refund_next_action_display_details" - } - ], - "description": "Contains the refund details.", - "nullable": true - }, - "type": { - "description": "Type of the next action to perform.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "RefundNextAction", - "type": "object", - "x-expandableFields": [ - "display_details" - ] - }, - "refund_next_action_display_details": { - "description": "", - "properties": { - "email_sent": { - "$ref": "#/components/schemas/email_sent" - }, - "expires_at": { - "description": "The expiry timestamp.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "email_sent", - "expires_at" - ], - "title": "RefundNextActionDisplayDetails", - "type": "object", - "x-expandableFields": [ - "email_sent" - ] - }, - "reporting.report_run": { - "description": "The Report Run object represents an instance of a report type generated with\nspecific run parameters. Once the object is created, Stripe begins processing the report.\nWhen the report has finished running, it will give you a reference to a file\nwhere you can retrieve your results. For an overview, see\n[API Access to Reports](https://stripe.com/docs/reporting/statements/api).\n\nNote that certain report types can only be run based on your live-mode data (not test-mode\ndata), and will error when queried without a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "error": { - "description": "If something should go wrong during the run, a message about the failure (populated when\n `status=failed`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "`true` if the report is run on live mode data and `false` if it is run on test mode data.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "reporting.report_run" - ], - "type": "string" - }, - "parameters": { - "$ref": "#/components/schemas/financial_reporting_finance_report_run_run_parameters" - }, - "report_type": { - "description": "The ID of the [report type](https://stripe.com/docs/reports/report-types) to run, such as `\"balance.summary.1\"`.", - "maxLength": 5000, - "type": "string" - }, - "result": { - "anyOf": [ - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The file object representing the result of the report run (populated when\n `status=succeeded`).", - "nullable": true - }, - "status": { - "description": "Status of this report run. This will be `pending` when the run is initially created.\n When the run finishes, this will be set to `succeeded` and the `result` field will be populated.\n Rarely, we may encounter an error, at which point this will be set to `failed` and the `error` field will be populated.", - "maxLength": 5000, - "type": "string" - }, - "succeeded_at": { - "description": "Timestamp at which this run successfully finished (populated when\n `status=succeeded`). Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "parameters", - "report_type", - "status" - ], - "title": "reporting_report_run", - "type": "object", - "x-expandableFields": [ - "parameters", - "result" - ], - "x-resourceId": "reporting.report_run" - }, - "reporting.report_type": { - "description": "The Report Type resource corresponds to a particular type of report, such as\nthe \"Activity summary\" or \"Itemized payouts\" reports. These objects are\nidentified by an ID belonging to a set of enumerated values. See\n[API Access to Reports documentation](https://stripe.com/docs/reporting/statements/api)\nfor those Report Type IDs, along with required and optional parameters.\n\nNote that certain report types can only be run based on your live-mode data (not test-mode\ndata), and will error when queried without a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).", - "properties": { - "data_available_end": { - "description": "Most recent time for which this Report Type is available. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "data_available_start": { - "description": "Earliest time for which this Report Type is available. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "default_columns": { - "description": "List of column names that are included by default when this Report Type gets run. (If the Report Type doesn't support the `columns` parameter, this will be null.)", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "id": { - "description": "The [ID of the Report Type](https://stripe.com/docs/reporting/statements/api#available-report-types), such as `balance.summary.1`.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "name": { - "description": "Human-readable name of the Report Type", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "reporting.report_type" - ], - "type": "string" - }, - "updated": { - "description": "When this Report Type was latest updated. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "version": { - "description": "Version of the Report Type. Different versions report with the same ID will have the same purpose, but may take different run parameters or have different result schemas.", - "type": "integer" - } - }, - "required": [ - "data_available_end", - "data_available_start", - "id", - "livemode", - "name", - "object", - "updated", - "version" - ], - "title": "reporting_report_type", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "reporting.report_type" - }, - "reserve_transaction": { - "description": "", - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "reserve_transaction" - ], - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "id", - "object" - ], - "title": "ReserveTransaction", - "type": "object", - "x-expandableFields": [] - }, - "review": { - "description": "Reviews can be used to supplement automated fraud detection with human expertise.\n\nLearn more about [Radar](/radar) and reviewing payments\n[here](https://stripe.com/docs/radar/reviews).", - "properties": { - "billing_zip": { - "description": "The ZIP or postal code of the card used, if applicable.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "The charge associated with this review.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "closed_reason": { - "description": "The reason the review was closed, or null if it has not yet been closed. One of `approved`, `refunded`, `refunded_as_fraud`, `disputed`, or `redacted`.", - "enum": [ - "approved", - "disputed", - "redacted", - "refunded", - "refunded_as_fraud" - ], - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "ip_address": { - "description": "The IP address where the payment originated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "ip_address_location": { - "anyOf": [ - { - "$ref": "#/components/schemas/radar_review_resource_location" - } - ], - "description": "Information related to the location of the payment. Note that this information is an approximation and attempts to locate the nearest population center - it should not be used to determine a specific address.", - "nullable": true - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "review" - ], - "type": "string" - }, - "open": { - "description": "If `true`, the review needs action.", - "type": "boolean" - }, - "opened_reason": { - "description": "The reason the review was opened. One of `rule` or `manual`.", - "enum": [ - "manual", - "rule" - ], - "type": "string" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "The PaymentIntent ID associated with this review, if one exists.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "reason": { - "description": "The reason the review is currently open or closed. One of `rule`, `manual`, `approved`, `refunded`, `refunded_as_fraud`, `disputed`, or `redacted`.", - "maxLength": 5000, - "type": "string" - }, - "session": { - "anyOf": [ - { - "$ref": "#/components/schemas/radar_review_resource_session" - } - ], - "description": "Information related to the browsing session of the user who initiated the payment.", - "nullable": true - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "open", - "opened_reason", - "reason" - ], - "title": "RadarReview", - "type": "object", - "x-expandableFields": [ - "charge", - "ip_address_location", - "payment_intent", - "session" - ], - "x-resourceId": "review" - }, - "rule": { - "description": "", - "properties": { - "action": { - "description": "The action taken on the payment.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "predicate": { - "description": "The predicate to evaluate the payment against.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "action", - "id", - "predicate" - ], - "title": "RadarRule", - "type": "object", - "x-expandableFields": [] - }, - "scheduled_query_run": { - "description": "If you have [scheduled a Sigma query](https://stripe.com/docs/sigma/scheduled-queries), you'll\nreceive a `sigma.scheduled_query_run.created` webhook each time the query\nruns. The webhook contains a `ScheduledQueryRun` object, which you can use to\nretrieve the query results.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "data_load_time": { - "description": "When the query was run, Sigma contained a snapshot of your Stripe data at this time.", - "format": "unix-time", - "type": "integer" - }, - "error": { - "$ref": "#/components/schemas/sigma_scheduled_query_run_error" - }, - "file": { - "anyOf": [ - { - "$ref": "#/components/schemas/file" - } - ], - "description": "The file object representing the results of the query.", - "nullable": true - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "scheduled_query_run" - ], - "type": "string" - }, - "result_available_until": { - "description": "Time at which the result expires and is no longer available for download.", - "format": "unix-time", - "type": "integer" - }, - "sql": { - "description": "SQL for the query.", - "maxLength": 100000, - "type": "string" - }, - "status": { - "description": "The query's execution status, which will be `completed` for successful runs, and `canceled`, `failed`, or `timed_out` otherwise.", - "maxLength": 5000, - "type": "string" - }, - "title": { - "description": "Title of the query.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "data_load_time", - "id", - "livemode", - "object", - "result_available_until", - "sql", - "status", - "title" - ], - "title": "ScheduledQueryRun", - "type": "object", - "x-expandableFields": [ - "error", - "file" - ], - "x-resourceId": "scheduled_query_run" - }, - "schedules_phase_automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "Whether Stripe automatically computes tax on invoices created during this phase.", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "SchedulesPhaseAutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "secret_service_resource_scope": { - "description": "", - "properties": { - "type": { - "description": "The secret scope type.", - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "description": "The user ID, if type is set to \"user\"", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "SecretServiceResourceScope", - "type": "object", - "x-expandableFields": [] - }, - "sepa_debit_generated_from": { - "description": "", - "properties": { - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "The ID of the Charge that generated this PaymentMethod, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "setup_attempt": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_attempt" - } - ], - "description": "The ID of the SetupAttempt that generated this PaymentMethod, if any.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_attempt" - } - ] - } - } - }, - "title": "sepa_debit_generated_from", - "type": "object", - "x-expandableFields": [ - "charge", - "setup_attempt" - ] - }, - "setup_attempt": { - "description": "A SetupAttempt describes one attempted confirmation of a SetupIntent,\nwhether that confirmation is successful or unsuccessful. You can use\nSetupAttempts to inspect details of a specific attempt at setting up a\npayment method using a SetupIntent.", - "properties": { - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - } - ], - "description": "The value of [application](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-application) on the SetupIntent at the time of this confirmation.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - } - ] - } - }, - "attach_to_self": { - "description": "If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.\n\nIt can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "The value of [customer](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-customer) on the SetupIntent at the time of this confirmation.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "flow_directions": { - "description": "Indicates the directions of money movement for which this payment method is intended to be used.\n\nInclude `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.", - "items": { - "enum": [ - "inbound", - "outbound" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "setup_attempt" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The value of [on_behalf_of](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-on_behalf_of) on the SetupIntent at the time of this confirmation.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the payment method used with this SetupAttempt.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "payment_method_details": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details" - }, - "setup_error": { - "anyOf": [ - { - "$ref": "#/components/schemas/api_errors" - } - ], - "description": "The error encountered during this attempt to confirm the SetupIntent, if any.", - "nullable": true - }, - "setup_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_intent" - } - ], - "description": "ID of the SetupIntent that this attempt belongs to.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_intent" - } - ] - } - }, - "status": { - "description": "Status of this SetupAttempt, one of `requires_confirmation`, `requires_action`, `processing`, `succeeded`, `failed`, or `abandoned`.", - "maxLength": 5000, - "type": "string" - }, - "usage": { - "description": "The value of [usage](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-usage) on the SetupIntent at the time of this confirmation, one of `off_session` or `on_session`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "payment_method", - "payment_method_details", - "setup_intent", - "status", - "usage" - ], - "title": "PaymentFlowsSetupIntentSetupAttempt", - "type": "object", - "x-expandableFields": [ - "application", - "customer", - "on_behalf_of", - "payment_method", - "payment_method_details", - "setup_error", - "setup_intent" - ], - "x-resourceId": "setup_attempt" - }, - "setup_attempt_payment_method_details": { - "description": "", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_acss_debit" - }, - "amazon_pay": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_amazon_pay" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_au_becs_debit" - }, - "bacs_debit": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_bacs_debit" - }, - "bancontact": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_bancontact" - }, - "boleto": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_boleto" - }, - "card": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_card" - }, - "card_present": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_card_present" - }, - "cashapp": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_cashapp" - }, - "ideal": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_ideal" - }, - "klarna": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_klarna" - }, - "link": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_link" - }, - "paypal": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_paypal" - }, - "revolut_pay": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_revolut_pay" - }, - "sepa_debit": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_sepa_debit" - }, - "sofort": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_sofort" - }, - "type": { - "description": "The type of the payment method used in the SetupIntent (e.g., `card`). An additional hash is included on `payment_method_details` with a name matching this value. It contains confirmation-specific information for the payment method.", - "maxLength": 5000, - "type": "string" - }, - "us_bank_account": { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_us_bank_account" - } - }, - "required": [ - "type" - ], - "title": "SetupAttemptPaymentMethodDetails", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "card_present", - "cashapp", - "ideal", - "klarna", - "link", - "paypal", - "revolut_pay", - "sepa_debit", - "sofort", - "us_bank_account" - ] - }, - "setup_attempt_payment_method_details_acss_debit": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_acss_debit", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_amazon_pay": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_amazon_pay", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_au_becs_debit": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_au_becs_debit", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_bacs_debit": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_bacs_debit", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_bancontact": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bic": { - "description": "Bank Identifier Code of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_sepa_debit": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "generated_sepa_debit_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "iban_last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_language": { - "description": "Preferred language of the Bancontact authorization page that the customer is redirected to.\nCan be one of `en`, `de`, `fr`, or `nl`", - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by Bancontact directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "setup_attempt_payment_method_details_bancontact", - "type": "object", - "x-expandableFields": [ - "generated_sepa_debit", - "generated_sepa_debit_mandate" - ] - }, - "setup_attempt_payment_method_details_boleto": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_boleto", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_card": { - "description": "", - "properties": { - "brand": { - "description": "Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "checks": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_card_checks" - } - ], - "description": "Check results by Card networks on Card address and CVC at the time of authorization", - "nullable": true - }, - "country": { - "description": "Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "exp_month": { - "description": "Two-digit number representing the card's expiration month.", - "nullable": true, - "type": "integer" - }, - "exp_year": { - "description": "Four-digit number representing the card's expiration year.", - "nullable": true, - "type": "integer" - }, - "fingerprint": { - "description": "Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.\n\n*As of May 1, 2021, card fingerprint in India for Connect changed to allow two fingerprints for the same card---one for India and one for the rest of the world.*", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "funding": { - "description": "Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "The last four digits of the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "network": { - "description": "Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "three_d_secure": { - "anyOf": [ - { - "$ref": "#/components/schemas/three_d_secure_details" - } - ], - "description": "Populated if this authorization used 3D Secure authentication.", - "nullable": true - }, - "wallet": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_attempt_payment_method_details_card_wallet" - } - ], - "description": "If this Card is part of a card wallet, this contains the details of the card wallet.", - "nullable": true - } - }, - "title": "setup_attempt_payment_method_details_card", - "type": "object", - "x-expandableFields": [ - "checks", - "three_d_secure", - "wallet" - ] - }, - "setup_attempt_payment_method_details_card_checks": { - "description": "", - "properties": { - "address_line1_check": { - "description": "If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "address_postal_code_check": { - "description": "If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "cvc_check": { - "description": "If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "setup_attempt_payment_method_details_card_checks", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_card_present": { - "description": "", - "properties": { - "generated_card": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the Card PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "offline": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_details_card_present_offline" - } - ], - "description": "Details about payments collected offline.", - "nullable": true - } - }, - "title": "setup_attempt_payment_method_details_card_present", - "type": "object", - "x-expandableFields": [ - "generated_card", - "offline" - ] - }, - "setup_attempt_payment_method_details_card_wallet": { - "description": "", - "properties": { - "apple_pay": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_apple_pay" - }, - "google_pay": { - "$ref": "#/components/schemas/payment_method_details_card_wallet_google_pay" - }, - "type": { - "description": "The type of the card wallet, one of `apple_pay`, `google_pay`, or `link`. An additional hash is included on the Wallet subhash with a name matching this value. It contains additional information specific to the card wallet type.", - "enum": [ - "apple_pay", - "google_pay", - "link" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "setup_attempt_payment_method_details_card_wallet", - "type": "object", - "x-expandableFields": [ - "apple_pay", - "google_pay" - ] - }, - "setup_attempt_payment_method_details_cashapp": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_cashapp", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_ideal": { - "description": "", - "properties": { - "bank": { - "description": "The customer's bank. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`.", - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "nullable": true, - "type": "string" - }, - "bic": { - "description": "The Bank Identifier Code of the customer's bank.", - "enum": [ - "ABNANL2A", - "ASNBNL21", - "BITSNL2A", - "BUNQNL2A", - "FVLBNL22", - "HANDNL2A", - "INGBNL2A", - "KNABNL2H", - "MOYONL21", - "NNBANL2G", - "NTSBDEB1", - "RABONL2U", - "RBRBNL21", - "REVOIE23", - "REVOLT21", - "SNSBNL2A", - "TRIONL2U" - ], - "nullable": true, - "type": "string" - }, - "generated_sepa_debit": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "generated_sepa_debit_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "iban_last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by iDEAL directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "setup_attempt_payment_method_details_ideal", - "type": "object", - "x-expandableFields": [ - "generated_sepa_debit", - "generated_sepa_debit_mandate" - ] - }, - "setup_attempt_payment_method_details_klarna": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_klarna", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_link": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_link", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_paypal": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_paypal", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_revolut_pay": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_revolut_pay", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_sepa_debit": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_sepa_debit", - "type": "object", - "x-expandableFields": [] - }, - "setup_attempt_payment_method_details_sofort": { - "description": "", - "properties": { - "bank_code": { - "description": "Bank code of bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "bic": { - "description": "Bank Identifier Code of the bank associated with the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "generated_sepa_debit": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "The ID of the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "generated_sepa_debit_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "The mandate for the SEPA Direct Debit PaymentMethod which was generated by this SetupAttempt.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "iban_last4": { - "description": "Last four characters of the IBAN.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "preferred_language": { - "description": "Preferred language of the Sofort authorization page that the customer is redirected to.\nCan be one of `en`, `de`, `fr`, or `nl`", - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Owner's verified full name. Values are verified or provided by Sofort directly\n(if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "setup_attempt_payment_method_details_sofort", - "type": "object", - "x-expandableFields": [ - "generated_sepa_debit", - "generated_sepa_debit_mandate" - ] - }, - "setup_attempt_payment_method_details_us_bank_account": { - "description": "", - "properties": {}, - "title": "setup_attempt_payment_method_details_us_bank_account", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent": { - "description": "A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments.\nFor example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment.\nLater, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow.\n\nCreate a SetupIntent when you're ready to collect your customer's payment credentials.\nDon't maintain long-lived, unconfirmed SetupIntents because they might not be valid.\nThe SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides\nyou through the setup process.\n\nSuccessful SetupIntents result in payment credentials that are optimized for future payments.\nFor example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through\n[Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection\nto streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents).\nIf you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer),\nit automatically attaches the resulting payment method to that Customer after successful setup.\nWe recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on\nPaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods.\n\nBy using SetupIntents, you can reduce friction for your customers, even as regulations change over time.\n\nRelated guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents)", - "properties": { - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - } - ], - "description": "ID of the Connect application that created the SetupIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - } - ] - } - }, - "attach_to_self": { - "description": "If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.\n\nIt can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.", - "type": "boolean" - }, - "automatic_payment_methods": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_flows_automatic_payment_methods_setup_intent" - } - ], - "description": "Settings for dynamic payment methods compatible with this Setup Intent", - "nullable": true - }, - "cancellation_reason": { - "description": "Reason for cancellation of this SetupIntent, one of `abandoned`, `requested_by_customer`, or `duplicate`.", - "enum": [ - "abandoned", - "duplicate", - "requested_by_customer" - ], - "nullable": true, - "type": "string" - }, - "client_secret": { - "description": "The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.\n\nThe client secret can be used to complete payment setup from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "ID of the Customer this SetupIntent belongs to, if one exists.\n\nIf present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "flow_directions": { - "description": "Indicates the directions of money movement for which this payment method is intended to be used.\n\nInclude `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.", - "items": { - "enum": [ - "inbound", - "outbound" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "last_setup_error": { - "anyOf": [ - { - "$ref": "#/components/schemas/api_errors" - } - ], - "description": "The error encountered in the previous SetupIntent confirmation.", - "nullable": true - }, - "latest_attempt": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_attempt" - } - ], - "description": "The most recent SetupAttempt for this SetupIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_attempt" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "ID of the multi use Mandate generated by the SetupIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "next_action": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_next_action" - } - ], - "description": "If present, this property tells you what actions you need to take in order for your customer to continue payment setup.", - "nullable": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "setup_intent" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) for which the setup is intended.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the payment method used with this SetupIntent. If the payment method is `card_present` and isn't a digital wallet, then the [generated_card](https://docs.corp.stripe.com/api/setup_attempts/object#setup_attempt_object-payment_method_details-card_present-generated_card) associated with the `latest_attempt` is attached to the Customer instead.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "payment_method_configuration_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_method_config_biz_payment_method_configuration_details" - } - ], - "description": "Information about the payment method configuration used for this Setup Intent.", - "nullable": true - }, - "payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options" - } - ], - "description": "Payment method-specific configuration for this SetupIntent.", - "nullable": true - }, - "payment_method_types": { - "description": "The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "single_use_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/mandate" - } - ], - "description": "ID of the single_use Mandate generated by the SetupIntent.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/mandate" - } - ] - } - }, - "status": { - "description": "[Status](https://stripe.com/docs/payments/intents#intent-statuses) of this SetupIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `canceled`, or `succeeded`.", - "enum": [ - "canceled", - "processing", - "requires_action", - "requires_confirmation", - "requires_payment_method", - "succeeded" - ], - "type": "string" - }, - "usage": { - "description": "Indicates how the payment method is intended to be used in the future.\n\nUse `on_session` if you intend to only reuse the payment method when the customer is in your checkout flow. Use `off_session` if your customer may or may not be in your checkout flow. If not provided, this value defaults to `off_session`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "payment_method_types", - "status", - "usage" - ], - "title": "SetupIntent", - "type": "object", - "x-expandableFields": [ - "application", - "automatic_payment_methods", - "customer", - "last_setup_error", - "latest_attempt", - "mandate", - "next_action", - "on_behalf_of", - "payment_method", - "payment_method_configuration_details", - "payment_method_options", - "single_use_mandate" - ], - "x-resourceId": "setup_intent" - }, - "setup_intent_next_action": { - "description": "", - "properties": { - "cashapp_handle_redirect_or_display_qr_code": { - "$ref": "#/components/schemas/payment_intent_next_action_cashapp_handle_redirect_or_display_qr_code" - }, - "redirect_to_url": { - "$ref": "#/components/schemas/setup_intent_next_action_redirect_to_url" - }, - "type": { - "description": "Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`.", - "maxLength": 5000, - "type": "string" - }, - "use_stripe_sdk": { - "description": "When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.", - "type": "object" - }, - "verify_with_microdeposits": { - "$ref": "#/components/schemas/setup_intent_next_action_verify_with_microdeposits" - } - }, - "required": [ - "type" - ], - "title": "SetupIntentNextAction", - "type": "object", - "x-expandableFields": [ - "cashapp_handle_redirect_or_display_qr_code", - "redirect_to_url", - "verify_with_microdeposits" - ] - }, - "setup_intent_next_action_redirect_to_url": { - "description": "", - "properties": { - "return_url": { - "description": "If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "url": { - "description": "The URL you must redirect your customer to in order to authenticate.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "SetupIntentNextActionRedirectToUrl", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_next_action_verify_with_microdeposits": { - "description": "", - "properties": { - "arrival_date": { - "description": "The timestamp when the microdeposits are expected to land.", - "format": "unix-time", - "type": "integer" - }, - "hosted_verification_url": { - "description": "The URL for the hosted verification page, which allows customers to verify their bank account.", - "maxLength": 5000, - "type": "string" - }, - "microdeposit_type": { - "description": "The type of the microdeposit sent to the customer. Used to distinguish between different verification methods.", - "enum": [ - "amounts", - "descriptor_code" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "arrival_date", - "hosted_verification_url" - ], - "title": "SetupIntentNextActionVerifyWithMicrodeposits", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options": { - "description": "", - "properties": { - "acss_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_acss_debit" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "amazon_pay": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_amazon_pay" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "card": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_card" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "card_present": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_card_present" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "link": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_link" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "paypal": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_paypal" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_sepa_debit" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_us_bank_account" - }, - { - "$ref": "#/components/schemas/setup_intent_type_specific_payment_method_options_client" - } - ] - } - }, - "title": "SetupIntentPaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "amazon_pay", - "card", - "card_present", - "link", - "paypal", - "sepa_debit", - "us_bank_account" - ] - }, - "setup_intent_payment_method_options_acss_debit": { - "description": "", - "properties": { - "currency": { - "description": "Currency supported by the bank account", - "enum": [ - "cad", - "usd" - ], - "nullable": true, - "type": "string" - }, - "mandate_options": { - "$ref": "#/components/schemas/setup_intent_payment_method_options_mandate_options_acss_debit" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_acss_debit", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "setup_intent_payment_method_options_amazon_pay": { - "description": "", - "properties": {}, - "title": "setup_intent_payment_method_options_amazon_pay", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_card": { - "description": "", - "properties": { - "mandate_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/setup_intent_payment_method_options_card_mandate_options" - } - ], - "description": "Configuration options for setting up an eMandate for cards issued in India.", - "nullable": true - }, - "network": { - "description": "Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the setup intent. Can be only set confirm-time.", - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "nullable": true, - "type": "string" - }, - "request_three_d_secure": { - "description": "We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.", - "enum": [ - "any", - "automatic", - "challenge" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_card", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "setup_intent_payment_method_options_card_mandate_options": { - "description": "", - "properties": { - "amount": { - "description": "Amount to be charged for future payments.", - "type": "integer" - }, - "amount_type": { - "description": "One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.", - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "A description of the mandate or subscription that is meant to be displayed to the customer.", - "maxLength": 200, - "nullable": true, - "type": "string" - }, - "end_date": { - "description": "End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "interval": { - "description": "Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.", - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.", - "nullable": true, - "type": "integer" - }, - "reference": { - "description": "Unique identifier for the mandate or subscription.", - "maxLength": 80, - "type": "string" - }, - "start_date": { - "description": "Start date of the mandate or subscription. Start date should not be lesser than yesterday.", - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "description": "Specifies the type of mandates supported. Possible values are `india`.", - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "currency", - "interval", - "reference", - "start_date" - ], - "title": "setup_intent_payment_method_options_card_mandate_options", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_card_present": { - "description": "", - "properties": {}, - "title": "setup_intent_payment_method_options_card_present", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_link": { - "description": "", - "properties": {}, - "title": "setup_intent_payment_method_options_link", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_mandate_options_acss_debit": { - "description": "", - "properties": { - "custom_mandate_url": { - "description": "A URL for custom mandate text", - "maxLength": 5000, - "type": "string" - }, - "default_for": { - "description": "List of Stripe products where this mandate can be selected automatically.", - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "description": "Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payment_schedule": { - "description": "Payment schedule for the mandate.", - "enum": [ - "combined", - "interval", - "sporadic" - ], - "nullable": true, - "type": "string" - }, - "transaction_type": { - "description": "Transaction type of the mandate.", - "enum": [ - "business", - "personal" - ], - "nullable": true, - "type": "string" - } - }, - "title": "setup_intent_payment_method_options_mandate_options_acss_debit", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_mandate_options_sepa_debit": { - "description": "", - "properties": {}, - "title": "setup_intent_payment_method_options_mandate_options_sepa_debit", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_paypal": { - "description": "", - "properties": { - "billing_agreement_id": { - "description": "The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "setup_intent_payment_method_options_paypal", - "type": "object", - "x-expandableFields": [] - }, - "setup_intent_payment_method_options_sepa_debit": { - "description": "", - "properties": { - "mandate_options": { - "$ref": "#/components/schemas/setup_intent_payment_method_options_mandate_options_sepa_debit" - } - }, - "title": "setup_intent_payment_method_options_sepa_debit", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "setup_intent_payment_method_options_us_bank_account": { - "description": "", - "properties": { - "financial_connections": { - "$ref": "#/components/schemas/linked_account_options_us_bank_account" - }, - "mandate_options": { - "$ref": "#/components/schemas/payment_method_options_us_bank_account_mandate_options" - }, - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_us_bank_account", - "type": "object", - "x-expandableFields": [ - "financial_connections", - "mandate_options" - ] - }, - "setup_intent_type_specific_payment_method_options_client": { - "description": "", - "properties": { - "verification_method": { - "description": "Bank account verification method.", - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "SetupIntentTypeSpecificPaymentMethodOptionsClient", - "type": "object", - "x-expandableFields": [] - }, - "shipping": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "carrier": { - "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Recipient name.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "Recipient phone (including extension).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tracking_number": { - "description": "The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "Shipping", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "shipping_rate": { - "description": "Shipping rates describe the price of shipping presented to your customers and\napplied to a purchase. For more information, see [Charge for shipping](https://stripe.com/docs/payments/during-payment/charge-shipping).", - "properties": { - "active": { - "description": "Whether the shipping rate can be used for new purchases. Defaults to `true`.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "delivery_estimate": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping_rate_delivery_estimate" - } - ], - "description": "The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions.", - "nullable": true - }, - "display_name": { - "description": "The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "fixed_amount": { - "$ref": "#/components/schemas/shipping_rate_fixed_amount" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "shipping_rate" - ], - "type": "string" - }, - "tax_behavior": { - "description": "Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "nullable": true, - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_code" - } - ], - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_code" - } - ] - } - }, - "type": { - "description": "The type of calculation to use on the shipping rate.", - "enum": [ - "fixed_amount" - ], - "type": "string" - } - }, - "required": [ - "active", - "created", - "id", - "livemode", - "metadata", - "object", - "type" - ], - "title": "ShippingRate", - "type": "object", - "x-expandableFields": [ - "delivery_estimate", - "fixed_amount", - "tax_code" - ], - "x-resourceId": "shipping_rate" - }, - "shipping_rate_currency_option": { - "description": "", - "properties": { - "amount": { - "description": "A non-negative integer in cents representing how much to charge.", - "type": "integer" - }, - "tax_behavior": { - "description": "Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "required": [ - "amount", - "tax_behavior" - ], - "title": "ShippingRateCurrencyOption", - "type": "object", - "x-expandableFields": [] - }, - "shipping_rate_delivery_estimate": { - "description": "", - "properties": { - "maximum": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping_rate_delivery_estimate_bound" - } - ], - "description": "The upper bound of the estimated range. If empty, represents no upper bound i.e., infinite.", - "nullable": true - }, - "minimum": { - "anyOf": [ - { - "$ref": "#/components/schemas/shipping_rate_delivery_estimate_bound" - } - ], - "description": "The lower bound of the estimated range. If empty, represents no lower bound.", - "nullable": true - } - }, - "title": "ShippingRateDeliveryEstimate", - "type": "object", - "x-expandableFields": [ - "maximum", - "minimum" - ] - }, - "shipping_rate_delivery_estimate_bound": { - "description": "", - "properties": { - "unit": { - "description": "A unit of time.", - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "description": "Must be greater than 0.", - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "ShippingRateDeliveryEstimateBound", - "type": "object", - "x-expandableFields": [] - }, - "shipping_rate_fixed_amount": { - "description": "", - "properties": { - "amount": { - "description": "A non-negative integer in cents representing how much to charge.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "$ref": "#/components/schemas/shipping_rate_currency_option" - }, - "description": "Shipping rates defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "ShippingRateFixedAmount", - "type": "object", - "x-expandableFields": [ - "currency_options" - ] - }, - "sigma_scheduled_query_run_error": { - "description": "", - "properties": { - "message": { - "description": "Information about the run failure.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "SigmaScheduledQueryRunError", - "type": "object", - "x-expandableFields": [] - }, - "source": { - "description": "`Source` objects allow you to accept a variety of payment methods. They\nrepresent a customer's payment instrument, and can be used with the Stripe API\njust like a `Card` object: once chargeable, they can be charged, or can be\nattached to customers.\n\nStripe doesn't recommend using the deprecated [Sources API](https://stripe.com/docs/api/sources).\nWe recommend that you adopt the [PaymentMethods API](https://stripe.com/docs/api/payment_methods).\nThis newer API provides access to our latest features and payment method types.\n\nRelated guides: [Sources API](https://stripe.com/docs/sources) and [Sources & Customers](https://stripe.com/docs/sources/customers).", - "properties": { - "ach_credit_transfer": { - "$ref": "#/components/schemas/source_type_ach_credit_transfer" - }, - "ach_debit": { - "$ref": "#/components/schemas/source_type_ach_debit" - }, - "acss_debit": { - "$ref": "#/components/schemas/source_type_acss_debit" - }, - "alipay": { - "$ref": "#/components/schemas/source_type_alipay" - }, - "amount": { - "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources.", - "nullable": true, - "type": "integer" - }, - "au_becs_debit": { - "$ref": "#/components/schemas/source_type_au_becs_debit" - }, - "bancontact": { - "$ref": "#/components/schemas/source_type_bancontact" - }, - "card": { - "$ref": "#/components/schemas/source_type_card" - }, - "card_present": { - "$ref": "#/components/schemas/source_type_card_present" - }, - "client_secret": { - "description": "The client secret of the source. Used for client-side retrieval using a publishable key.", - "maxLength": 5000, - "type": "string" - }, - "code_verification": { - "$ref": "#/components/schemas/source_code_verification_flow" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. Required for `single_use` sources.", - "nullable": true, - "type": "string" - }, - "customer": { - "description": "The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer.", - "maxLength": 5000, - "type": "string" - }, - "eps": { - "$ref": "#/components/schemas/source_type_eps" - }, - "flow": { - "description": "The authentication `flow` of the source. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`.", - "maxLength": 5000, - "type": "string" - }, - "giropay": { - "$ref": "#/components/schemas/source_type_giropay" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "ideal": { - "$ref": "#/components/schemas/source_type_ideal" - }, - "klarna": { - "$ref": "#/components/schemas/source_type_klarna" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "multibanco": { - "$ref": "#/components/schemas/source_type_multibanco" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "source" - ], - "type": "string" - }, - "owner": { - "anyOf": [ - { - "$ref": "#/components/schemas/source_owner" - } - ], - "description": "Information about the owner of the payment instrument that may be used or required by particular source types.", - "nullable": true - }, - "p24": { - "$ref": "#/components/schemas/source_type_p24" - }, - "receiver": { - "$ref": "#/components/schemas/source_receiver_flow" - }, - "redirect": { - "$ref": "#/components/schemas/source_redirect_flow" - }, - "sepa_debit": { - "$ref": "#/components/schemas/source_type_sepa_debit" - }, - "sofort": { - "$ref": "#/components/schemas/source_type_sofort" - }, - "source_order": { - "$ref": "#/components/schemas/source_order" - }, - "statement_descriptor": { - "description": "Extra information about a source. This will appear on your customer's statement every time you charge the source.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "The status of the source, one of `canceled`, `chargeable`, `consumed`, `failed`, or `pending`. Only `chargeable` sources can be used to create a charge.", - "maxLength": 5000, - "type": "string" - }, - "three_d_secure": { - "$ref": "#/components/schemas/source_type_three_d_secure" - }, - "type": { - "description": "The `type` of the source. The `type` is a payment method, one of `ach_credit_transfer`, `ach_debit`, `alipay`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `multibanco`, `klarna`, `p24`, `sepa_debit`, `sofort`, `three_d_secure`, or `wechat`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https://stripe.com/docs/sources) used.", - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "alipay", - "au_becs_debit", - "bancontact", - "card", - "card_present", - "eps", - "giropay", - "ideal", - "klarna", - "multibanco", - "p24", - "sepa_debit", - "sofort", - "three_d_secure", - "wechat" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "usage": { - "description": "Either `reusable` or `single_use`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "wechat": { - "$ref": "#/components/schemas/source_type_wechat" - } - }, - "required": [ - "client_secret", - "created", - "flow", - "id", - "livemode", - "object", - "status", - "type" - ], - "title": "Source", - "type": "object", - "x-expandableFields": [ - "code_verification", - "owner", - "receiver", - "redirect", - "source_order" - ], - "x-resourceId": "source" - }, - "source_code_verification_flow": { - "description": "", - "properties": { - "attempts_remaining": { - "description": "The number of attempts remaining to authenticate the source object with a verification code.", - "type": "integer" - }, - "status": { - "description": "The status of the code verification, either `pending` (awaiting verification, `attempts_remaining` should be greater than 0), `succeeded` (successful verification) or `failed` (failed verification, cannot be verified anymore as `attempts_remaining` should be 0).", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "attempts_remaining", - "status" - ], - "title": "SourceCodeVerificationFlow", - "type": "object", - "x-expandableFields": [] - }, - "source_mandate_notification": { - "description": "Source mandate notifications should be created when a notification related to\na source mandate must be sent to the payer. They will trigger a webhook or\ndeliver an email to the customer.", - "properties": { - "acss_debit": { - "$ref": "#/components/schemas/source_mandate_notification_acss_debit_data" - }, - "amount": { - "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the amount associated with the mandate notification. The amount is expressed in the currency of the underlying source. Required if the notification type is `debit_initiated`.", - "nullable": true, - "type": "integer" - }, - "bacs_debit": { - "$ref": "#/components/schemas/source_mandate_notification_bacs_debit_data" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "source_mandate_notification" - ], - "type": "string" - }, - "reason": { - "description": "The reason of the mandate notification. Valid reasons are `mandate_confirmed` or `debit_initiated`.", - "maxLength": 5000, - "type": "string" - }, - "sepa_debit": { - "$ref": "#/components/schemas/source_mandate_notification_sepa_debit_data" - }, - "source": { - "$ref": "#/components/schemas/source" - }, - "status": { - "description": "The status of the mandate notification. Valid statuses are `pending` or `submitted`.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "The type of source this mandate notification is attached to. Should be the source type identifier code for the payment method, such as `three_d_secure`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "reason", - "source", - "status", - "type" - ], - "title": "SourceMandateNotification", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "bacs_debit", - "sepa_debit", - "source" - ], - "x-resourceId": "source_mandate_notification" - }, - "source_mandate_notification_acss_debit_data": { - "description": "", - "properties": { - "statement_descriptor": { - "description": "The statement descriptor associate with the debit.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceMandateNotificationAcssDebitData", - "type": "object", - "x-expandableFields": [] - }, - "source_mandate_notification_bacs_debit_data": { - "description": "", - "properties": { - "last4": { - "description": "Last 4 digits of the account number associated with the debit.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceMandateNotificationBacsDebitData", - "type": "object", - "x-expandableFields": [] - }, - "source_mandate_notification_sepa_debit_data": { - "description": "", - "properties": { - "creditor_identifier": { - "description": "SEPA creditor ID.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "Last 4 digits of the account number associated with the debit.", - "maxLength": 5000, - "type": "string" - }, - "mandate_reference": { - "description": "Mandate reference associated with the debit.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceMandateNotificationSepaDebitData", - "type": "object", - "x-expandableFields": [] - }, - "source_order": { - "description": "", - "properties": { - "amount": { - "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "email": { - "description": "The email address of the customer placing the order.", - "maxLength": 5000, - "type": "string" - }, - "items": { - "description": "List of items constituting the order.", - "items": { - "$ref": "#/components/schemas/source_order_item" - }, - "nullable": true, - "type": "array" - }, - "shipping": { - "$ref": "#/components/schemas/shipping" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "SourceOrder", - "type": "object", - "x-expandableFields": [ - "items", - "shipping" - ] - }, - "source_order_item": { - "description": "", - "properties": { - "amount": { - "description": "The amount (price) for this order item.", - "nullable": true, - "type": "integer" - }, - "currency": { - "description": "This currency of this order item. Required when `amount` is present.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "description": { - "description": "Human-readable description for this order item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "parent": { - "description": "The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity": { - "description": "The quantity of this order item. When type is `sku`, this is the number of instances of the SKU to be ordered.", - "type": "integer" - }, - "type": { - "description": "The type of this order item. Must be `sku`, `tax`, or `shipping`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "SourceOrderItem", - "type": "object", - "x-expandableFields": [] - }, - "source_owner": { - "description": "", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Owner's address.", - "nullable": true - }, - "email": { - "description": "Owner's email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Owner's full name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "phone": { - "description": "Owner's phone number (including extension).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_address": { - "anyOf": [ - { - "$ref": "#/components/schemas/address" - } - ], - "description": "Verified owner's address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "nullable": true - }, - "verified_email": { - "description": "Verified owner's email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Verified owner's full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_phone": { - "description": "Verified owner's phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "SourceOwner", - "type": "object", - "x-expandableFields": [ - "address", - "verified_address" - ] - }, - "source_receiver_flow": { - "description": "", - "properties": { - "address": { - "description": "The address of the receiver source. This is the value that should be communicated to the customer to send their funds to.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "amount_charged": { - "description": "The total amount that was moved to your balance. This is almost always equal to the amount charged. In rare cases when customers deposit excess funds and we are unable to refund those, those funds get moved to your balance and show up in amount_charged as well. The amount charged is expressed in the source's currency.", - "type": "integer" - }, - "amount_received": { - "description": "The total amount received by the receiver source. `amount_received = amount_returned + amount_charged` should be true for consumed sources unless customers deposit excess funds. The amount received is expressed in the source's currency.", - "type": "integer" - }, - "amount_returned": { - "description": "The total amount that was returned to the customer. The amount returned is expressed in the source's currency.", - "type": "integer" - }, - "refund_attributes_method": { - "description": "Type of refund attribute method, one of `email`, `manual`, or `none`.", - "maxLength": 5000, - "type": "string" - }, - "refund_attributes_status": { - "description": "Type of refund attribute status, one of `missing`, `requested`, or `available`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount_charged", - "amount_received", - "amount_returned", - "refund_attributes_method", - "refund_attributes_status" - ], - "title": "SourceReceiverFlow", - "type": "object", - "x-expandableFields": [] - }, - "source_redirect_flow": { - "description": "", - "properties": { - "failure_reason": { - "description": "The failure reason for the redirect, either `user_abort` (the customer aborted or dropped out of the redirect flow), `declined` (the authentication failed or the transaction was declined), or `processing_error` (the redirect failed due to a technical error). Present only if the redirect status is `failed`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "return_url": { - "description": "The URL you provide to redirect the customer to after they authenticated their payment.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "The status of the redirect, either `pending` (ready to be used by your customer to authenticate the transaction), `succeeded` (succesful authentication, cannot be reused) or `not_required` (redirect should not be used) or `failed` (failed authentication, cannot be reused).", - "maxLength": 5000, - "type": "string" - }, - "url": { - "description": "The URL provided to you to redirect a customer to as part of a `redirect` authentication flow.", - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "return_url", - "status", - "url" - ], - "title": "SourceRedirectFlow", - "type": "object", - "x-expandableFields": [] - }, - "source_transaction": { - "description": "Some payment methods have no required amount that a customer must send.\nCustomers can be instructed to send any amount, and it can be made up of\nmultiple transactions. As such, sources can have multiple associated\ntransactions.", - "properties": { - "ach_credit_transfer": { - "$ref": "#/components/schemas/source_transaction_ach_credit_transfer_data" - }, - "amount": { - "description": "A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the amount your customer has pushed to the receiver.", - "type": "integer" - }, - "chf_credit_transfer": { - "$ref": "#/components/schemas/source_transaction_chf_credit_transfer_data" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "gbp_credit_transfer": { - "$ref": "#/components/schemas/source_transaction_gbp_credit_transfer_data" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "source_transaction" - ], - "type": "string" - }, - "paper_check": { - "$ref": "#/components/schemas/source_transaction_paper_check_data" - }, - "sepa_credit_transfer": { - "$ref": "#/components/schemas/source_transaction_sepa_credit_transfer_data" - }, - "source": { - "description": "The ID of the source this transaction is attached to.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "The status of the transaction, one of `succeeded`, `pending`, or `failed`.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "The type of source this transaction is attached to.", - "enum": [ - "ach_credit_transfer", - "ach_debit", - "alipay", - "bancontact", - "card", - "card_present", - "eps", - "giropay", - "ideal", - "klarna", - "multibanco", - "p24", - "sepa_debit", - "sofort", - "three_d_secure", - "wechat" - ], - "type": "string" - } - }, - "required": [ - "amount", - "created", - "currency", - "id", - "livemode", - "object", - "source", - "status", - "type" - ], - "title": "SourceTransaction", - "type": "object", - "x-expandableFields": [ - "ach_credit_transfer", - "chf_credit_transfer", - "gbp_credit_transfer", - "paper_check", - "sepa_credit_transfer" - ], - "x-resourceId": "source_transaction" - }, - "source_transaction_ach_credit_transfer_data": { - "description": "", - "properties": { - "customer_data": { - "description": "Customer data associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "fingerprint": { - "description": "Bank account fingerprint associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "Last 4 digits of the account number associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "description": "Routing number associated with the transfer.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceTransactionAchCreditTransferData", - "type": "object", - "x-expandableFields": [] - }, - "source_transaction_chf_credit_transfer_data": { - "description": "", - "properties": { - "reference": { - "description": "Reference associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "sender_address_country": { - "description": "Sender's country address.", - "maxLength": 5000, - "type": "string" - }, - "sender_address_line1": { - "description": "Sender's line 1 address.", - "maxLength": 5000, - "type": "string" - }, - "sender_iban": { - "description": "Sender's bank account IBAN.", - "maxLength": 5000, - "type": "string" - }, - "sender_name": { - "description": "Sender's name.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceTransactionChfCreditTransferData", - "type": "object", - "x-expandableFields": [] - }, - "source_transaction_gbp_credit_transfer_data": { - "description": "", - "properties": { - "fingerprint": { - "description": "Bank account fingerprint associated with the Stripe owned bank account receiving the transfer.", - "maxLength": 5000, - "type": "string" - }, - "funding_method": { - "description": "The credit transfer rails the sender used to push this transfer. The possible rails are: Faster Payments, BACS, CHAPS, and wire transfers. Currently only Faster Payments is supported.", - "maxLength": 5000, - "type": "string" - }, - "last4": { - "description": "Last 4 digits of sender account number associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "reference": { - "description": "Sender entered arbitrary information about the transfer.", - "maxLength": 5000, - "type": "string" - }, - "sender_account_number": { - "description": "Sender account number associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "sender_name": { - "description": "Sender name associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "sender_sort_code": { - "description": "Sender sort code associated with the transfer.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceTransactionGbpCreditTransferData", - "type": "object", - "x-expandableFields": [] - }, - "source_transaction_paper_check_data": { - "description": "", - "properties": { - "available_at": { - "description": "Time at which the deposited funds will be available for use. Measured in seconds since the Unix epoch.", - "maxLength": 5000, - "type": "string" - }, - "invoices": { - "description": "Comma-separated list of invoice IDs associated with the paper check.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceTransactionPaperCheckData", - "type": "object", - "x-expandableFields": [] - }, - "source_transaction_sepa_credit_transfer_data": { - "description": "", - "properties": { - "reference": { - "description": "Reference associated with the transfer.", - "maxLength": 5000, - "type": "string" - }, - "sender_iban": { - "description": "Sender's bank account IBAN.", - "maxLength": 5000, - "type": "string" - }, - "sender_name": { - "description": "Sender's name.", - "maxLength": 5000, - "type": "string" - } - }, - "title": "SourceTransactionSepaCreditTransferData", - "type": "object", - "x-expandableFields": [] - }, - "source_type_ach_credit_transfer": { - "properties": { - "account_number": { - "nullable": true, - "type": "string" - }, - "bank_name": { - "nullable": true, - "type": "string" - }, - "fingerprint": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_name": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_type": { - "nullable": true, - "type": "string" - }, - "refund_routing_number": { - "nullable": true, - "type": "string" - }, - "routing_number": { - "nullable": true, - "type": "string" - }, - "swift_code": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_ach_debit": { - "properties": { - "bank_name": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "fingerprint": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - }, - "routing_number": { - "nullable": true, - "type": "string" - }, - "type": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_acss_debit": { - "properties": { - "bank_address_city": { - "nullable": true, - "type": "string" - }, - "bank_address_line_1": { - "nullable": true, - "type": "string" - }, - "bank_address_line_2": { - "nullable": true, - "type": "string" - }, - "bank_address_postal_code": { - "nullable": true, - "type": "string" - }, - "bank_name": { - "nullable": true, - "type": "string" - }, - "category": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "fingerprint": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - }, - "routing_number": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_alipay": { - "properties": { - "data_string": { - "nullable": true, - "type": "string" - }, - "native_url": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_au_becs_debit": { - "properties": { - "bsb_number": { - "nullable": true, - "type": "string" - }, - "fingerprint": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_bancontact": { - "properties": { - "bank_code": { - "nullable": true, - "type": "string" - }, - "bank_name": { - "nullable": true, - "type": "string" - }, - "bic": { - "nullable": true, - "type": "string" - }, - "iban_last4": { - "nullable": true, - "type": "string" - }, - "preferred_language": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_card": { - "properties": { - "address_line1_check": { - "nullable": true, - "type": "string" - }, - "address_zip_check": { - "nullable": true, - "type": "string" - }, - "brand": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "cvc_check": { - "nullable": true, - "type": "string" - }, - "dynamic_last4": { - "nullable": true, - "type": "string" - }, - "exp_month": { - "nullable": true, - "type": "integer" - }, - "exp_year": { - "nullable": true, - "type": "integer" - }, - "fingerprint": { - "type": "string" - }, - "funding": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - }, - "name": { - "nullable": true, - "type": "string" - }, - "three_d_secure": { - "type": "string" - }, - "tokenization_method": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_card_present": { - "properties": { - "application_cryptogram": { - "type": "string" - }, - "application_preferred_name": { - "type": "string" - }, - "authorization_code": { - "nullable": true, - "type": "string" - }, - "authorization_response_code": { - "type": "string" - }, - "brand": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "cvm_type": { - "type": "string" - }, - "data_type": { - "nullable": true, - "type": "string" - }, - "dedicated_file_name": { - "type": "string" - }, - "emv_auth_data": { - "type": "string" - }, - "evidence_customer_signature": { - "nullable": true, - "type": "string" - }, - "evidence_transaction_certificate": { - "nullable": true, - "type": "string" - }, - "exp_month": { - "nullable": true, - "type": "integer" - }, - "exp_year": { - "nullable": true, - "type": "integer" - }, - "fingerprint": { - "type": "string" - }, - "funding": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - }, - "pos_device_id": { - "nullable": true, - "type": "string" - }, - "pos_entry_mode": { - "type": "string" - }, - "read_method": { - "nullable": true, - "type": "string" - }, - "reader": { - "nullable": true, - "type": "string" - }, - "terminal_verification_results": { - "type": "string" - }, - "transaction_status_information": { - "type": "string" - } - }, - "type": "object" - }, - "source_type_eps": { - "properties": { - "reference": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_giropay": { - "properties": { - "bank_code": { - "nullable": true, - "type": "string" - }, - "bank_name": { - "nullable": true, - "type": "string" - }, - "bic": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_ideal": { - "properties": { - "bank": { - "nullable": true, - "type": "string" - }, - "bic": { - "nullable": true, - "type": "string" - }, - "iban_last4": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_klarna": { - "properties": { - "background_image_url": { - "type": "string" - }, - "client_token": { - "nullable": true, - "type": "string" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "locale": { - "type": "string" - }, - "logo_url": { - "type": "string" - }, - "page_title": { - "type": "string" - }, - "pay_later_asset_urls_descriptive": { - "type": "string" - }, - "pay_later_asset_urls_standard": { - "type": "string" - }, - "pay_later_name": { - "type": "string" - }, - "pay_later_redirect_url": { - "type": "string" - }, - "pay_now_asset_urls_descriptive": { - "type": "string" - }, - "pay_now_asset_urls_standard": { - "type": "string" - }, - "pay_now_name": { - "type": "string" - }, - "pay_now_redirect_url": { - "type": "string" - }, - "pay_over_time_asset_urls_descriptive": { - "type": "string" - }, - "pay_over_time_asset_urls_standard": { - "type": "string" - }, - "pay_over_time_name": { - "type": "string" - }, - "pay_over_time_redirect_url": { - "type": "string" - }, - "payment_method_categories": { - "type": "string" - }, - "purchase_country": { - "type": "string" - }, - "purchase_type": { - "type": "string" - }, - "redirect_url": { - "type": "string" - }, - "shipping_delay": { - "type": "integer" - }, - "shipping_first_name": { - "type": "string" - }, - "shipping_last_name": { - "type": "string" - } - }, - "type": "object" - }, - "source_type_multibanco": { - "properties": { - "entity": { - "nullable": true, - "type": "string" - }, - "reference": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_address_city": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_address_country": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_address_line1": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_address_line2": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_address_postal_code": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_address_state": { - "nullable": true, - "type": "string" - }, - "refund_account_holder_name": { - "nullable": true, - "type": "string" - }, - "refund_iban": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_p24": { - "properties": { - "reference": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_sepa_debit": { - "properties": { - "bank_code": { - "nullable": true, - "type": "string" - }, - "branch_code": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "fingerprint": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - }, - "mandate_reference": { - "nullable": true, - "type": "string" - }, - "mandate_url": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_sofort": { - "properties": { - "bank_code": { - "nullable": true, - "type": "string" - }, - "bank_name": { - "nullable": true, - "type": "string" - }, - "bic": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "iban_last4": { - "nullable": true, - "type": "string" - }, - "preferred_language": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_three_d_secure": { - "properties": { - "address_line1_check": { - "nullable": true, - "type": "string" - }, - "address_zip_check": { - "nullable": true, - "type": "string" - }, - "authenticated": { - "nullable": true, - "type": "boolean" - }, - "brand": { - "nullable": true, - "type": "string" - }, - "card": { - "nullable": true, - "type": "string" - }, - "country": { - "nullable": true, - "type": "string" - }, - "customer": { - "nullable": true, - "type": "string" - }, - "cvc_check": { - "nullable": true, - "type": "string" - }, - "dynamic_last4": { - "nullable": true, - "type": "string" - }, - "exp_month": { - "nullable": true, - "type": "integer" - }, - "exp_year": { - "nullable": true, - "type": "integer" - }, - "fingerprint": { - "type": "string" - }, - "funding": { - "nullable": true, - "type": "string" - }, - "last4": { - "nullable": true, - "type": "string" - }, - "name": { - "nullable": true, - "type": "string" - }, - "three_d_secure": { - "type": "string" - }, - "tokenization_method": { - "nullable": true, - "type": "string" - } - }, - "type": "object" - }, - "source_type_wechat": { - "properties": { - "prepay_id": { - "type": "string" - }, - "qr_code_url": { - "nullable": true, - "type": "string" - }, - "statement_descriptor": { - "type": "string" - } - }, - "type": "object" - }, - "subscription": { - "description": "Subscriptions allow you to charge a customer on a recurring basis.\n\nRelated guide: [Creating subscriptions](https://stripe.com/docs/billing/subscriptions/creating)", - "properties": { - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ], - "description": "ID of the Connect Application that created the subscription.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ] - } - }, - "application_fee_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account.", - "nullable": true, - "type": "number" - }, - "automatic_tax": { - "$ref": "#/components/schemas/subscription_automatic_tax" - }, - "billing_cycle_anchor": { - "description": "The reference point that aligns future [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle) dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals. The timestamp is in UTC format.", - "format": "unix-time", - "type": "integer" - }, - "billing_cycle_anchor_config": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_resource_billing_cycle_anchor_config" - } - ], - "description": "The fixed values used to calculate the `billing_cycle_anchor`.", - "nullable": true - }, - "billing_thresholds": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_billing_thresholds" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period", - "nullable": true - }, - "cancel_at": { - "description": "A date in the future at which the subscription will automatically get canceled", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "cancel_at_period_end": { - "description": "Whether this subscription will (if `status=active`) or did (if `status=canceled`) cancel at the end of the current billing period.", - "type": "boolean" - }, - "canceled_at": { - "description": "If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with `cancel_at_period_end`, `canceled_at` will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "cancellation_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/cancellation_details" - } - ], - "description": "Details about why this subscription was cancelled", - "nullable": true - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "current_period_end": { - "description": "End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.", - "format": "unix-time", - "type": "integer" - }, - "current_period_start": { - "description": "Start of the current period that the subscription has been invoiced for.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "ID of the customer who owns the subscription.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "days_until_due": { - "description": "Number of days a customer has to pay invoices generated by this subscription. This value will be `null` for subscriptions where `collection_method=charge_automatically`.", - "nullable": true, - "type": "integer" - }, - "default_payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "default_source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "description": "ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ] - }, - "x-stripeBypassValidation": true - }, - "default_tax_rates": { - "description": "The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "nullable": true, - "type": "array" - }, - "description": { - "description": "The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.", - "maxLength": 500, - "nullable": true, - "type": "string" - }, - "discount": { - "anyOf": [ - { - "$ref": "#/components/schemas/discount" - } - ], - "description": "Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "nullable": true - }, - "discounts": { - "description": "The discounts applied to the subscription. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - } - ] - } - }, - "type": "array" - }, - "ended_at": { - "description": "If the subscription has ended, the date the subscription ended.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice_settings": { - "$ref": "#/components/schemas/subscriptions_resource_subscription_invoice_settings" - }, - "items": { - "description": "List of subscription items, each with an attached price.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/subscription_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SubscriptionItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "latest_invoice": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/invoice" - } - ], - "description": "The most recent invoice this subscription has generated.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/invoice" - } - ] - } - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "next_pending_invoice_item_invoice": { - "description": "Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at `pending_invoice_item_interval`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "subscription" - ], - "type": "string" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) the charge was made on behalf of for charges associated with this subscription. See the Connect documentation for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "pause_collection": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_resource_pause_collection" - } - ], - "description": "If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](/billing/subscriptions/pause-payment).", - "nullable": true - }, - "payment_settings": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_resource_payment_settings" - } - ], - "description": "Payment settings passed on to invoices created by the subscription.", - "nullable": true - }, - "pending_invoice_item_interval": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_pending_invoice_item_interval" - } - ], - "description": "Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval.", - "nullable": true - }, - "pending_setup_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_intent" - } - ], - "description": "You can use this [SetupIntent](https://stripe.com/docs/api/setup_intents) to collect user authentication when creating a subscription without immediate payment or updating a subscription's payment method, allowing you to optimize for off-session payments. Learn more in the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication#scenario-2).", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_intent" - } - ] - } - }, - "pending_update": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_resource_pending_update" - } - ], - "description": "If specified, [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates) that will be applied to the subscription once the `latest_invoice` has been paid.", - "nullable": true - }, - "schedule": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription_schedule" - } - ], - "description": "The schedule attached to the subscription", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription_schedule" - } - ] - } - }, - "start_date": { - "description": "Date when the subscription was first created. The date might differ from the `created` date due to backdating.", - "format": "unix-time", - "type": "integer" - }, - "status": { - "description": "Possible values are `incomplete`, `incomplete_expired`, `trialing`, `active`, `past_due`, `canceled`, `unpaid`, or `paused`. \n\nFor `collection_method=charge_automatically` a subscription moves into `incomplete` if the initial payment attempt fails. A subscription in this status can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an `active` status. If the first invoice is not paid within 23 hours, the subscription transitions to `incomplete_expired`. This is a terminal status, the open invoice will be voided and no further invoices will be generated. \n\nA subscription that is currently in a trial period is `trialing` and moves to `active` when the trial period is over. \n\nA subscription can only enter a `paused` status [when a trial ends without a payment method](/billing/subscriptions/trials#create-free-trials-without-payment). A `paused` subscription doesn't generate invoices and can be resumed after your customer adds their payment method. The `paused` status is different from [pausing collection](/billing/subscriptions/pause-payment), which still generates invoices and leaves the subscription's status unchanged. \n\nIf subscription `collection_method=charge_automatically`, it becomes `past_due` when payment is required but cannot be paid (due to failed payment or awaiting additional user actions). Once Stripe has exhausted all payment retry attempts, the subscription will become `canceled` or `unpaid` (depending on your subscriptions settings). \n\nIf subscription `collection_method=send_invoice` it becomes `past_due` when its invoice is not paid by the due date, and `canceled` or `unpaid` if it is still not paid by an additional deadline after that. Note that when a subscription has a status of `unpaid`, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.", - "enum": [ - "active", - "canceled", - "incomplete", - "incomplete_expired", - "past_due", - "paused", - "trialing", - "unpaid" - ], - "type": "string" - }, - "test_clock": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ], - "description": "ID of the test clock this subscription belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ] - } - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_transfer_data" - } - ], - "description": "The account (if any) the subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.", - "nullable": true - }, - "trial_end": { - "description": "If the subscription has a trial, the end of that trial.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "trial_settings": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_trials_resource_trial_settings" - } - ], - "description": "Settings related to subscription trials.", - "nullable": true - }, - "trial_start": { - "description": "If the subscription has a trial, the beginning of that trial.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "automatic_tax", - "billing_cycle_anchor", - "cancel_at_period_end", - "collection_method", - "created", - "currency", - "current_period_end", - "current_period_start", - "customer", - "discounts", - "id", - "invoice_settings", - "items", - "livemode", - "metadata", - "object", - "start_date", - "status" - ], - "title": "Subscription", - "type": "object", - "x-expandableFields": [ - "application", - "automatic_tax", - "billing_cycle_anchor_config", - "billing_thresholds", - "cancellation_details", - "customer", - "default_payment_method", - "default_source", - "default_tax_rates", - "discount", - "discounts", - "invoice_settings", - "items", - "latest_invoice", - "on_behalf_of", - "pause_collection", - "payment_settings", - "pending_invoice_item_interval", - "pending_setup_intent", - "pending_update", - "schedule", - "test_clock", - "transfer_data", - "trial_settings" - ], - "x-resourceId": "subscription" - }, - "subscription_automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "Whether Stripe automatically computes tax on this subscription.", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "SubscriptionAutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "subscription_billing_thresholds": { - "description": "", - "properties": { - "amount_gte": { - "description": "Monetary threshold that triggers the subscription to create an invoice", - "nullable": true, - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "description": "Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`.", - "nullable": true, - "type": "boolean" - } - }, - "title": "SubscriptionBillingThresholds", - "type": "object", - "x-expandableFields": [] - }, - "subscription_details_data": { - "description": "", - "properties": { - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) defined as subscription metadata when an invoice is created. Becomes an immutable snapshot of the subscription metadata at the time of invoice finalization.\n *Note: This attribute is populated only for invoices created on or after June 29, 2023.*", - "nullable": true, - "type": "object" - } - }, - "title": "SubscriptionDetailsData", - "type": "object", - "x-expandableFields": [] - }, - "subscription_item": { - "description": "Subscription items allow you to create customer subscriptions with more than\none plan, making it easy to represent complex billing relationships.", - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_item_billing_thresholds" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period", - "nullable": true - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "type": "integer" - }, - "discounts": { - "description": "The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/discount" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/discount" - } - ] - } - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "subscription_item" - ], - "type": "string" - }, - "price": { - "$ref": "#/components/schemas/price" - }, - "quantity": { - "description": "The [quantity](https://stripe.com/docs/subscriptions/quantities) of the plan to which the customer should be subscribed.", - "type": "integer" - }, - "subscription": { - "description": "The `subscription` this `subscription_item` belongs to.", - "maxLength": 5000, - "type": "string" - }, - "tax_rates": { - "description": "The tax rates which apply to this `subscription_item`. When set, the `default_tax_rates` on the subscription do not apply to this `subscription_item`.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "nullable": true, - "type": "array" - } - }, - "required": [ - "created", - "discounts", - "id", - "metadata", - "object", - "price", - "subscription" - ], - "title": "SubscriptionItem", - "type": "object", - "x-expandableFields": [ - "billing_thresholds", - "discounts", - "price", - "tax_rates" - ], - "x-resourceId": "subscription_item" - }, - "subscription_item_billing_thresholds": { - "description": "", - "properties": { - "usage_gte": { - "description": "Usage threshold that triggers the subscription to create an invoice", - "nullable": true, - "type": "integer" - } - }, - "title": "SubscriptionItemBillingThresholds", - "type": "object", - "x-expandableFields": [] - }, - "subscription_payment_method_options_card": { - "description": "", - "properties": { - "mandate_options": { - "$ref": "#/components/schemas/invoice_mandate_options_card" - }, - "network": { - "description": "Selected network to process this Subscription on. Depends on the available networks of the card attached to the Subscription. Can be only set confirm-time.", - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "nullable": true, - "type": "string" - }, - "request_three_d_secure": { - "description": "We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.", - "enum": [ - "any", - "automatic", - "challenge" - ], - "nullable": true, - "type": "string" - } - }, - "title": "subscription_payment_method_options_card", - "type": "object", - "x-expandableFields": [ - "mandate_options" - ] - }, - "subscription_pending_invoice_item_interval": { - "description": "", - "properties": { - "interval": { - "description": "Specifies invoicing frequency. Either `day`, `week`, `month` or `year`.", - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).", - "type": "integer" - } - }, - "required": [ - "interval", - "interval_count" - ], - "title": "SubscriptionPendingInvoiceItemInterval", - "type": "object", - "x-expandableFields": [] - }, - "subscription_schedule": { - "description": "A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.\n\nRelated guide: [Subscription schedules](https://stripe.com/docs/billing/subscriptions/subscription-schedules)", - "properties": { - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ], - "description": "ID of the Connect Application that created the schedule.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - }, - { - "$ref": "#/components/schemas/deleted_application" - } - ] - } - }, - "canceled_at": { - "description": "Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "completed_at": { - "description": "Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "current_phase": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_schedule_current_phase" - } - ], - "description": "Object representing the start and end dates for the current phase of the subscription schedule, if it is `active`.", - "nullable": true - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ], - "description": "ID of the customer who owns the subscription schedule.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - }, - "default_settings": { - "$ref": "#/components/schemas/subscription_schedules_resource_default_settings" - }, - "end_behavior": { - "description": "Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.", - "enum": [ - "cancel", - "none", - "release", - "renew" - ], - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "subscription_schedule" - ], - "type": "string" - }, - "phases": { - "description": "Configuration for the subscription schedule's phases.", - "items": { - "$ref": "#/components/schemas/subscription_schedule_phase_configuration" - }, - "type": "array" - }, - "released_at": { - "description": "Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "released_subscription": { - "description": "ID of the subscription once managed by the subscription schedule (if it is released).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "The present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our [behavior guide](https://stripe.com/docs/billing/subscriptions/subscription-schedules).", - "enum": [ - "active", - "canceled", - "completed", - "not_started", - "released" - ], - "type": "string" - }, - "subscription": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/subscription" - } - ], - "description": "ID of the subscription managed by the subscription schedule.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/subscription" - } - ] - } - }, - "test_clock": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ], - "description": "ID of the test clock this subscription schedule belongs to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - ] - } - } - }, - "required": [ - "created", - "customer", - "default_settings", - "end_behavior", - "id", - "livemode", - "object", - "phases", - "status" - ], - "title": "SubscriptionSchedule", - "type": "object", - "x-expandableFields": [ - "application", - "current_phase", - "customer", - "default_settings", - "phases", - "subscription", - "test_clock" - ], - "x-resourceId": "subscription_schedule" - }, - "subscription_schedule_add_invoice_item": { - "description": "An Add Invoice Item describes the prices and quantities that will be added as pending invoice items when entering a phase.", - "properties": { - "discounts": { - "description": "The stackable discounts that will be applied to the item.", - "items": { - "$ref": "#/components/schemas/discounts_resource_stackable_discount" - }, - "type": "array" - }, - "price": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/price" - }, - { - "$ref": "#/components/schemas/deleted_price" - } - ], - "description": "ID of the price used to generate the invoice item.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/price" - }, - { - "$ref": "#/components/schemas/deleted_price" - } - ] - } - }, - "quantity": { - "description": "The quantity of the invoice item.", - "nullable": true, - "type": "integer" - }, - "tax_rates": { - "description": "The tax rates which apply to the item. When set, the `default_tax_rates` do not apply to this item.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "nullable": true, - "type": "array" - } - }, - "required": [ - "discounts", - "price" - ], - "title": "SubscriptionScheduleAddInvoiceItem", - "type": "object", - "x-expandableFields": [ - "discounts", - "price", - "tax_rates" - ] - }, - "subscription_schedule_configuration_item": { - "description": "A phase item describes the price and quantity of a phase.", - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_item_billing_thresholds" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the related subscription advanced to a new billing period", - "nullable": true - }, - "discounts": { - "description": "The discounts applied to the subscription item. Subscription item discounts are applied before subscription discounts. Use `expand[]=discounts` to expand each discount.", - "items": { - "$ref": "#/components/schemas/discounts_resource_stackable_discount" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an item. Metadata on this item will update the underlying subscription item's `metadata` when the phase is entered.", - "nullable": true, - "type": "object" - }, - "price": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/price" - }, - { - "$ref": "#/components/schemas/deleted_price" - } - ], - "description": "ID of the price to which the customer should be subscribed.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/price" - }, - { - "$ref": "#/components/schemas/deleted_price" - } - ] - } - }, - "quantity": { - "description": "Quantity of the plan to which the customer should be subscribed.", - "type": "integer" - }, - "tax_rates": { - "description": "The tax rates which apply to this `phase_item`. When set, the `default_tax_rates` on the phase do not apply to this `phase_item`.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "nullable": true, - "type": "array" - } - }, - "required": [ - "discounts", - "price" - ], - "title": "SubscriptionScheduleConfigurationItem", - "type": "object", - "x-expandableFields": [ - "billing_thresholds", - "discounts", - "price", - "tax_rates" - ] - }, - "subscription_schedule_current_phase": { - "description": "", - "properties": { - "end_date": { - "description": "The end of this phase of the subscription schedule.", - "format": "unix-time", - "type": "integer" - }, - "start_date": { - "description": "The start of this phase of the subscription schedule.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end_date", - "start_date" - ], - "title": "SubscriptionScheduleCurrentPhase", - "type": "object", - "x-expandableFields": [] - }, - "subscription_schedule_phase_configuration": { - "description": "A phase describes the plans, coupon, and trialing status of a subscription for a predefined time period.", - "properties": { - "add_invoice_items": { - "description": "A list of prices and quantities that will generate invoice items appended to the next invoice for this phase.", - "items": { - "$ref": "#/components/schemas/subscription_schedule_add_invoice_item" - }, - "type": "array" - }, - "application_fee_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule.", - "nullable": true, - "type": "number" - }, - "automatic_tax": { - "$ref": "#/components/schemas/schedules_phase_automatic_tax" - }, - "billing_cycle_anchor": { - "description": "Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).", - "enum": [ - "automatic", - "phase_start" - ], - "nullable": true, - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_billing_thresholds" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period", - "nullable": true - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "nullable": true, - "type": "string" - }, - "coupon": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/coupon" - }, - { - "$ref": "#/components/schemas/deleted_coupon" - } - ], - "description": "ID of the coupon to use during this phase of the subscription schedule.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/coupon" - }, - { - "$ref": "#/components/schemas/deleted_coupon" - } - ] - } - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "default_payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "default_tax_rates": { - "description": "The default tax rates to apply to the subscription during this phase of the subscription schedule.", - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "nullable": true, - "type": "array" - }, - "description": { - "description": "Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "discounts": { - "description": "The stackable discounts that will be applied to the subscription on this phase. Subscription item discounts are applied before subscription discounts.", - "items": { - "$ref": "#/components/schemas/discounts_resource_stackable_discount" - }, - "type": "array" - }, - "end_date": { - "description": "The end of this phase of the subscription schedule.", - "format": "unix-time", - "type": "integer" - }, - "invoice_settings": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_setting_subscription_schedule_phase_setting" - } - ], - "description": "The invoice settings applicable during this phase.", - "nullable": true - }, - "items": { - "description": "Subscription items to configure the subscription to during this phase of the subscription schedule.", - "items": { - "$ref": "#/components/schemas/subscription_schedule_configuration_item" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to a phase. Metadata on a schedule's phase will update the underlying subscription's `metadata` when the phase is entered. Updating the underlying subscription's `metadata` directly will not affect the current phase's `metadata`.", - "nullable": true, - "type": "object" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "proration_behavior": { - "description": "If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "start_date": { - "description": "The start of this phase of the subscription schedule.", - "format": "unix-time", - "type": "integer" - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_transfer_data" - } - ], - "description": "The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.", - "nullable": true - }, - "trial_end": { - "description": "When the trial ends within the phase.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "add_invoice_items", - "currency", - "discounts", - "end_date", - "items", - "proration_behavior", - "start_date" - ], - "title": "SubscriptionSchedulePhaseConfiguration", - "type": "object", - "x-expandableFields": [ - "add_invoice_items", - "automatic_tax", - "billing_thresholds", - "coupon", - "default_payment_method", - "default_tax_rates", - "discounts", - "invoice_settings", - "items", - "on_behalf_of", - "transfer_data" - ] - }, - "subscription_schedules_resource_default_settings": { - "description": "", - "properties": { - "application_fee_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account during this phase of the schedule.", - "nullable": true, - "type": "number" - }, - "automatic_tax": { - "$ref": "#/components/schemas/subscription_schedules_resource_default_settings_automatic_tax" - }, - "billing_cycle_anchor": { - "description": "Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).", - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_billing_thresholds" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period", - "nullable": true - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "nullable": true, - "type": "string" - }, - "default_payment_method": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_method" - } - ], - "description": "ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_method" - } - ] - } - }, - "description": { - "description": "Subscription description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "invoice_settings": { - "$ref": "#/components/schemas/invoice_setting_subscription_schedule_setting" - }, - "on_behalf_of": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) the charge was made on behalf of for charges associated with the schedule's subscription. See the Connect documentation for details.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "transfer_data": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_transfer_data" - } - ], - "description": "The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.", - "nullable": true - } - }, - "required": [ - "billing_cycle_anchor", - "invoice_settings" - ], - "title": "SubscriptionSchedulesResourceDefaultSettings", - "type": "object", - "x-expandableFields": [ - "automatic_tax", - "billing_thresholds", - "default_payment_method", - "invoice_settings", - "on_behalf_of", - "transfer_data" - ] - }, - "subscription_schedules_resource_default_settings_automatic_tax": { - "description": "", - "properties": { - "enabled": { - "description": "Whether Stripe automatically computes tax on invoices created during this phase.", - "type": "boolean" - }, - "liability": { - "anyOf": [ - { - "$ref": "#/components/schemas/connect_account_reference" - } - ], - "description": "The account that's liable for tax. If set, the business address and tax registrations required to perform the tax calculation are loaded from this account. The tax transaction is returned in the report of the connected account.", - "nullable": true - } - }, - "required": [ - "enabled" - ], - "title": "SubscriptionSchedulesResourceDefaultSettingsAutomaticTax", - "type": "object", - "x-expandableFields": [ - "liability" - ] - }, - "subscription_transfer_data": { - "description": "", - "properties": { - "amount_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the destination account. By default, the entire amount is transferred to the destination.", - "nullable": true, - "type": "number" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account where funds from the payment will be transferred to upon payment success.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - } - }, - "required": [ - "destination" - ], - "title": "SubscriptionTransferData", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "subscriptions_resource_billing_cycle_anchor_config": { - "description": "", - "properties": { - "day_of_month": { - "description": "The day of the month of the billing_cycle_anchor.", - "type": "integer" - }, - "hour": { - "description": "The hour of the day of the billing_cycle_anchor.", - "nullable": true, - "type": "integer" - }, - "minute": { - "description": "The minute of the hour of the billing_cycle_anchor.", - "nullable": true, - "type": "integer" - }, - "month": { - "description": "The month to start full cycle billing periods.", - "nullable": true, - "type": "integer" - }, - "second": { - "description": "The second of the minute of the billing_cycle_anchor.", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "day_of_month" - ], - "title": "SubscriptionsResourceBillingCycleAnchorConfig", - "type": "object", - "x-expandableFields": [] - }, - "subscriptions_resource_pause_collection": { - "description": "The Pause Collection settings determine how we will pause collection for this subscription and for how long the subscription\nshould be paused.", - "properties": { - "behavior": { - "description": "The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.", - "enum": [ - "keep_as_draft", - "mark_uncollectible", - "void" - ], - "type": "string" - }, - "resumes_at": { - "description": "The time after which the subscription will resume collecting payments.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "required": [ - "behavior" - ], - "title": "SubscriptionsResourcePauseCollection", - "type": "object", - "x-expandableFields": [] - }, - "subscriptions_resource_payment_method_options": { - "description": "", - "properties": { - "acss_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_acss_debit" - } - ], - "description": "This sub-hash contains details about the Canadian pre-authorized debit payment method options to pass to invoices created by the subscription.", - "nullable": true - }, - "bancontact": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_bancontact" - } - ], - "description": "This sub-hash contains details about the Bancontact payment method options to pass to invoices created by the subscription.", - "nullable": true - }, - "card": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscription_payment_method_options_card" - } - ], - "description": "This sub-hash contains details about the Card payment method options to pass to invoices created by the subscription.", - "nullable": true - }, - "customer_balance": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_customer_balance" - } - ], - "description": "This sub-hash contains details about the Bank transfer payment method options to pass to invoices created by the subscription.", - "nullable": true - }, - "konbini": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_konbini" - } - ], - "description": "This sub-hash contains details about the Konbini payment method options to pass to invoices created by the subscription.", - "nullable": true - }, - "sepa_debit": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_sepa_debit" - } - ], - "description": "This sub-hash contains details about the SEPA Direct Debit payment method options to pass to invoices created by the subscription.", - "nullable": true - }, - "us_bank_account": { - "anyOf": [ - { - "$ref": "#/components/schemas/invoice_payment_method_options_us_bank_account" - } - ], - "description": "This sub-hash contains details about the ACH direct debit payment method options to pass to invoices created by the subscription.", - "nullable": true - } - }, - "title": "SubscriptionsResourcePaymentMethodOptions", - "type": "object", - "x-expandableFields": [ - "acss_debit", - "bancontact", - "card", - "customer_balance", - "konbini", - "sepa_debit", - "us_bank_account" - ] - }, - "subscriptions_resource_payment_settings": { - "description": "", - "properties": { - "payment_method_options": { - "anyOf": [ - { - "$ref": "#/components/schemas/subscriptions_resource_payment_method_options" - } - ], - "description": "Payment-method-specific configuration to provide to invoices created by the subscription.", - "nullable": true - }, - "payment_method_types": { - "description": "The list of payment method types to provide to every invoice created by the subscription. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your [invoice template settings](https://dashboard.stripe.com/settings/billing/invoice).", - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "nullable": true, - "type": "array" - }, - "save_default_payment_method": { - "description": "Configure whether Stripe updates `subscription.default_payment_method` when payment succeeds. Defaults to `off`.", - "enum": [ - "off", - "on_subscription" - ], - "nullable": true, - "type": "string" - } - }, - "title": "SubscriptionsResourcePaymentSettings", - "type": "object", - "x-expandableFields": [ - "payment_method_options" - ] - }, - "subscriptions_resource_pending_update": { - "description": "Pending Updates store the changes pending from a previous update that will be applied\nto the Subscription upon successful payment.", - "properties": { - "billing_cycle_anchor": { - "description": "If the update is applied, determines the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. The timestamp is in UTC format.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "expires_at": { - "description": "The point after which the changes reflected by this update will be discarded and no longer applied.", - "format": "unix-time", - "type": "integer" - }, - "subscription_items": { - "description": "List of subscription items, each with an attached plan, that will be set if the update is applied.", - "items": { - "$ref": "#/components/schemas/subscription_item" - }, - "nullable": true, - "type": "array" - }, - "trial_end": { - "description": "Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "trial_from_plan": { - "description": "Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "nullable": true, - "type": "boolean" - } - }, - "required": [ - "expires_at" - ], - "title": "SubscriptionsResourcePendingUpdate", - "type": "object", - "x-expandableFields": [ - "subscription_items" - ] - }, - "subscriptions_resource_subscription_invoice_settings": { - "description": "", - "properties": { - "account_tax_ids": { - "description": "The account tax IDs associated with the subscription. Will be set on invoices generated by the subscription.", - "items": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ], - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/tax_id" - }, - { - "$ref": "#/components/schemas/deleted_tax_id" - } - ] - } - }, - "nullable": true, - "type": "array" - }, - "issuer": { - "$ref": "#/components/schemas/connect_account_reference" - } - }, - "required": [ - "issuer" - ], - "title": "SubscriptionsResourceSubscriptionInvoiceSettings", - "type": "object", - "x-expandableFields": [ - "account_tax_ids", - "issuer" - ] - }, - "subscriptions_trials_resource_end_behavior": { - "description": "Defines how a subscription behaves when a free trial ends.", - "properties": { - "missing_payment_method": { - "description": "Indicates how the subscription should change when the trial ends if the user did not provide a payment method.", - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "SubscriptionsTrialsResourceEndBehavior", - "type": "object", - "x-expandableFields": [] - }, - "subscriptions_trials_resource_trial_settings": { - "description": "Configures how this subscription behaves during the trial period.", - "properties": { - "end_behavior": { - "$ref": "#/components/schemas/subscriptions_trials_resource_end_behavior" - } - }, - "required": [ - "end_behavior" - ], - "title": "SubscriptionsTrialsResourceTrialSettings", - "type": "object", - "x-expandableFields": [ - "end_behavior" - ] - }, - "tax.calculation": { - "description": "A Tax Calculation allows you to calculate the tax to collect from your customer.\n\nRelated guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom)", - "properties": { - "amount_total": { - "description": "Total amount after taxes in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "description": "The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_details": { - "$ref": "#/components/schemas/tax_product_resource_customer_details" - }, - "expires_at": { - "description": "Timestamp of date at which the tax calculation will expire.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the calculation.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "line_items": { - "description": "The list of items the customer is purchasing.", - "nullable": true, - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax.calculation_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/tax/calculations/[^/]+/line_items", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxProductResourceTaxCalculationLineItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax.calculation" - ], - "type": "string" - }, - "ship_from_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_ship_from_details" - } - ], - "description": "The details of the ship from location, such as the address.", - "nullable": true - }, - "shipping_cost": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_tax_calculation_shipping_cost" - } - ], - "description": "The shipping cost details for the calculation.", - "nullable": true - }, - "tax_amount_exclusive": { - "description": "The amount of tax to be collected on top of the line item prices.", - "type": "integer" - }, - "tax_amount_inclusive": { - "description": "The amount of tax already included in the line item prices.", - "type": "integer" - }, - "tax_breakdown": { - "description": "Breakdown of individual tax amounts that add up to the total.", - "items": { - "$ref": "#/components/schemas/tax_product_resource_tax_breakdown" - }, - "type": "array" - }, - "tax_date": { - "description": "Timestamp of date at which the tax rules and rates in effect applies for the calculation.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "amount_total", - "currency", - "customer_details", - "livemode", - "object", - "tax_amount_exclusive", - "tax_amount_inclusive", - "tax_breakdown", - "tax_date" - ], - "title": "TaxProductResourceTaxCalculation", - "type": "object", - "x-expandableFields": [ - "customer_details", - "line_items", - "ship_from_details", - "shipping_cost", - "tax_breakdown" - ], - "x-resourceId": "tax.calculation" - }, - "tax.calculation_line_item": { - "description": "", - "properties": { - "amount": { - "description": "The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.", - "type": "integer" - }, - "amount_tax": { - "description": "The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax.calculation_line_item" - ], - "type": "string" - }, - "product": { - "description": "The ID of an existing [Product](https://stripe.com/docs/api/products/object).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity": { - "description": "The number of units of the item being purchased. For reversals, this is the quantity reversed.", - "type": "integer" - }, - "reference": { - "description": "A custom identifier for this line item.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_behavior": { - "description": "Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.", - "enum": [ - "exclusive", - "inclusive" - ], - "type": "string" - }, - "tax_breakdown": { - "description": "Detailed account of taxes relevant to this line item.", - "items": { - "$ref": "#/components/schemas/tax_product_resource_line_item_tax_breakdown" - }, - "nullable": true, - "type": "array" - }, - "tax_code": { - "description": "The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "amount_tax", - "id", - "livemode", - "object", - "quantity", - "tax_behavior", - "tax_code" - ], - "title": "TaxProductResourceTaxCalculationLineItem", - "type": "object", - "x-expandableFields": [ - "tax_breakdown" - ], - "x-resourceId": "tax.calculation_line_item" - }, - "tax.registration": { - "description": "A Tax `Registration` lets us know that your business is registered to collect tax on payments within a region, enabling you to [automatically collect tax](https://stripe.com/docs/tax).\n\nStripe doesn't register on your behalf with the relevant authorities when you create a Tax `Registration` object. For more information on how to register to collect tax, see [our guide](https://stripe.com/docs/tax/registering).\n\nRelated guide: [Using the Registrations API](https://stripe.com/docs/tax/registrations-api)", - "properties": { - "active_from": { - "description": "Time at which the registration becomes active. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "country_options": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "expires_at": { - "description": "If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax.registration" - ], - "type": "string" - }, - "status": { - "description": "The status of the registration. This field is present for convenience and can be deduced from `active_from` and `expires_at`.", - "enum": [ - "active", - "expired", - "scheduled" - ], - "type": "string" - } - }, - "required": [ - "active_from", - "country", - "country_options", - "created", - "id", - "livemode", - "object", - "status" - ], - "title": "TaxProductRegistrationsResourceTaxRegistration", - "type": "object", - "x-expandableFields": [ - "country_options" - ], - "x-resourceId": "tax.registration" - }, - "tax.settings": { - "description": "You can use Tax `Settings` to manage configurations used by Stripe Tax calculations.\n\nRelated guide: [Using the Settings API](https://stripe.com/docs/tax/settings-api)", - "properties": { - "defaults": { - "$ref": "#/components/schemas/tax_product_resource_tax_settings_defaults" - }, - "head_office": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_tax_settings_head_office" - } - ], - "description": "The place where your business is located.", - "nullable": true - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax.settings" - ], - "type": "string" - }, - "status": { - "description": "The `active` status indicates you have all required settings to calculate tax. A status can transition out of `active` when new required settings are introduced.", - "enum": [ - "active", - "pending" - ], - "type": "string" - }, - "status_details": { - "$ref": "#/components/schemas/tax_product_resource_tax_settings_status_details" - } - }, - "required": [ - "defaults", - "livemode", - "object", - "status", - "status_details" - ], - "title": "TaxProductResourceTaxSettings", - "type": "object", - "x-expandableFields": [ - "defaults", - "head_office", - "status_details" - ], - "x-resourceId": "tax.settings" - }, - "tax.transaction": { - "description": "A Tax Transaction records the tax collected from or refunded to your customer.\n\nRelated guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction)", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "description": "The ID of an existing [Customer](https://stripe.com/docs/api/customers/object) used for the resource.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "customer_details": { - "$ref": "#/components/schemas/tax_product_resource_customer_details" - }, - "id": { - "description": "Unique identifier for the transaction.", - "maxLength": 5000, - "type": "string" - }, - "line_items": { - "description": "The tax collected or refunded, by line item.", - "nullable": true, - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax.transaction_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/tax/transactions/[^/]+/line_items", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxProductResourceTaxTransactionLineItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax.transaction" - ], - "type": "string" - }, - "posted_at": { - "description": "The Unix timestamp representing when the tax liability is assumed or reduced.", - "format": "unix-time", - "type": "integer" - }, - "reference": { - "description": "A custom unique identifier, such as 'myOrder_123'.", - "maxLength": 5000, - "type": "string" - }, - "reversal": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_tax_transaction_resource_reversal" - } - ], - "description": "If `type=reversal`, contains information about what was reversed.", - "nullable": true - }, - "ship_from_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_ship_from_details" - } - ], - "description": "The details of the ship from location, such as the address.", - "nullable": true - }, - "shipping_cost": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_tax_transaction_shipping_cost" - } - ], - "description": "The shipping cost details for the transaction.", - "nullable": true - }, - "tax_date": { - "description": "Timestamp of date at which the tax rules and rates in effect applies for the calculation.", - "format": "unix-time", - "type": "integer" - }, - "type": { - "description": "If `reversal`, this transaction reverses an earlier transaction.", - "enum": [ - "reversal", - "transaction" - ], - "type": "string" - } - }, - "required": [ - "created", - "currency", - "customer_details", - "id", - "livemode", - "object", - "posted_at", - "reference", - "tax_date", - "type" - ], - "title": "TaxProductResourceTaxTransaction", - "type": "object", - "x-expandableFields": [ - "customer_details", - "line_items", - "reversal", - "ship_from_details", - "shipping_cost" - ], - "x-resourceId": "tax.transaction" - }, - "tax.transaction_line_item": { - "description": "", - "properties": { - "amount": { - "description": "The line item amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.", - "type": "integer" - }, - "amount_tax": { - "description": "The amount of tax calculated for this line item, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax.transaction_line_item" - ], - "type": "string" - }, - "product": { - "description": "The ID of an existing [Product](https://stripe.com/docs/api/products/object).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "quantity": { - "description": "The number of units of the item being purchased. For reversals, this is the quantity reversed.", - "type": "integer" - }, - "reference": { - "description": "A custom identifier for this line item in the transaction.", - "maxLength": 5000, - "type": "string" - }, - "reversal": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_tax_transaction_line_item_resource_reversal" - } - ], - "description": "If `type=reversal`, contains information about what was reversed.", - "nullable": true - }, - "tax_behavior": { - "description": "Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.", - "enum": [ - "exclusive", - "inclusive" - ], - "type": "string" - }, - "tax_code": { - "description": "The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for this resource.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "If `reversal`, this line item reverses an earlier transaction.", - "enum": [ - "reversal", - "transaction" - ], - "type": "string" - } - }, - "required": [ - "amount", - "amount_tax", - "id", - "livemode", - "object", - "quantity", - "reference", - "tax_behavior", - "tax_code", - "type" - ], - "title": "TaxProductResourceTaxTransactionLineItem", - "type": "object", - "x-expandableFields": [ - "reversal" - ], - "x-resourceId": "tax.transaction_line_item" - }, - "tax_code": { - "description": "[Tax codes](https://stripe.com/docs/tax/tax-categories) classify goods and services for tax purposes.", - "properties": { - "description": { - "description": "A detailed description of which types of products the tax code represents.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "name": { - "description": "A short name for the tax code.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax_code" - ], - "type": "string" - } - }, - "required": [ - "description", - "id", - "name", - "object" - ], - "title": "TaxProductResourceTaxCode", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "tax_code" - }, - "tax_deducted_at_source": { - "description": "", - "properties": { - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax_deducted_at_source" - ], - "type": "string" - }, - "period_end": { - "description": "The end of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period.", - "format": "unix-time", - "type": "integer" - }, - "period_start": { - "description": "The start of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period.", - "format": "unix-time", - "type": "integer" - }, - "tax_deduction_account_number": { - "description": "The TAN that was supplied to Stripe when TDS was assessed", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "id", - "object", - "period_end", - "period_start", - "tax_deduction_account_number" - ], - "title": "TaxDeductedAtSource", - "type": "object", - "x-expandableFields": [] - }, - "tax_i_ds_owner": { - "description": "", - "properties": { - "account": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account being referenced when `type` is `account`.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "application": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/application" - } - ], - "description": "The Connect Application being referenced when `type` is `application`.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/application" - } - ] - } - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "The customer being referenced when `type` is `customer`.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "type": { - "description": "Type of owner referenced.", - "enum": [ - "account", - "application", - "customer", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TaxIDsOwner", - "type": "object", - "x-expandableFields": [ - "account", - "application", - "customer" - ] - }, - "tax_id": { - "description": "You can add one or multiple tax IDs to a [customer](https://stripe.com/docs/api/customers) or account.\nCustomer and account tax IDs get displayed on related invoices and credit notes.\n\nRelated guides: [Customer tax identification numbers](https://stripe.com/docs/billing/taxes/tax-ids), [Account tax IDs](https://stripe.com/docs/invoicing/connect#account-tax-ids)", - "properties": { - "country": { - "description": "Two-letter ISO code representing the country of the tax ID.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "customer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/customer" - } - ], - "description": "ID of the customer.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/customer" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax_id" - ], - "type": "string" - }, - "owner": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_i_ds_owner" - } - ], - "description": "The account or customer the tax ID belongs to.", - "nullable": true - }, - "type": { - "description": "Type of the tax ID, one of `ad_nrt`, `ae_trn`, `ar_cuit`, `au_abn`, `au_arn`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `hk_br`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kr_brn`, `kz_bin`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sv_nit`, `th_vat`, `tr_tin`, `tw_vat`, `ua_vat`, `us_ein`, `uy_ruc`, `ve_rif`, `vn_tin`, or `za_vat`. Note that some legacy tax IDs have type `unknown`", - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "unknown", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "type": "string" - }, - "value": { - "description": "Value of the tax ID.", - "maxLength": 5000, - "type": "string" - }, - "verification": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_id_verification" - } - ], - "description": "Tax ID verification information.", - "nullable": true - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "type", - "value" - ], - "title": "tax_id", - "type": "object", - "x-expandableFields": [ - "customer", - "owner", - "verification" - ], - "x-resourceId": "tax_id" - }, - "tax_id_verification": { - "description": "", - "properties": { - "status": { - "description": "Verification status, one of `pending`, `verified`, `unverified`, or `unavailable`.", - "enum": [ - "pending", - "unavailable", - "unverified", - "verified" - ], - "type": "string" - }, - "verified_address": { - "description": "Verified address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "verified_name": { - "description": "Verified name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "tax_id_verification", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_registrations_resource_country_options": { - "description": "", - "properties": { - "ae": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "at": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "au": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "be": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "bg": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "bh": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "ca": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_canada" - }, - "ch": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "cl": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "co": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "cy": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "cz": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "de": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "dk": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "ee": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "eg": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "es": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "fi": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "fr": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "gb": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "ge": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "gr": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "hr": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "hu": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "id": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "ie": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "is": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "it": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "jp": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "ke": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "kr": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "kz": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "lt": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "lu": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "lv": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "mt": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "mx": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "my": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "ng": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "nl": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "no": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "nz": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "om": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "pl": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "pt": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "ro": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "sa": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "se": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "sg": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - }, - "si": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "sk": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_europe" - }, - "th": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "tr": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "us": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_united_states" - }, - "vn": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_simplified" - }, - "za": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_default" - } - }, - "title": "TaxProductRegistrationsResourceCountryOptions", - "type": "object", - "x-expandableFields": [ - "ae", - "at", - "au", - "be", - "bg", - "bh", - "ca", - "ch", - "cl", - "co", - "cy", - "cz", - "de", - "dk", - "ee", - "eg", - "es", - "fi", - "fr", - "gb", - "ge", - "gr", - "hr", - "hu", - "id", - "ie", - "is", - "it", - "jp", - "ke", - "kr", - "kz", - "lt", - "lu", - "lv", - "mt", - "mx", - "my", - "ng", - "nl", - "no", - "nz", - "om", - "pl", - "pt", - "ro", - "sa", - "se", - "sg", - "si", - "sk", - "th", - "tr", - "us", - "vn", - "za" - ] - }, - "tax_product_registrations_resource_country_options_ca_province_standard": { - "description": "", - "properties": { - "province": { - "description": "Two-letter CA province code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)).", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "province" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsCaProvinceStandard", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_registrations_resource_country_options_canada": { - "description": "", - "properties": { - "province_standard": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_ca_province_standard" - }, - "type": { - "description": "Type of registration in Canada.", - "enum": [ - "province_standard", - "simplified", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsCanada", - "type": "object", - "x-expandableFields": [ - "province_standard" - ] - }, - "tax_product_registrations_resource_country_options_default": { - "description": "", - "properties": { - "type": { - "description": "Type of registration in `country`.", - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsDefault", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_registrations_resource_country_options_eu_standard": { - "description": "", - "properties": { - "place_of_supply_scheme": { - "description": "Place of supply scheme used in an EU standard registration.", - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsEuStandard", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_registrations_resource_country_options_europe": { - "description": "", - "properties": { - "standard": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_eu_standard" - }, - "type": { - "description": "Type of registration in an EU country.", - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsEurope", - "type": "object", - "x-expandableFields": [ - "standard" - ] - }, - "tax_product_registrations_resource_country_options_simplified": { - "description": "", - "properties": { - "type": { - "description": "Type of registration in `country`.", - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsSimplified", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_registrations_resource_country_options_united_states": { - "description": "", - "properties": { - "local_amusement_tax": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_us_local_amusement_tax" - }, - "local_lease_tax": { - "$ref": "#/components/schemas/tax_product_registrations_resource_country_options_us_local_lease_tax" - }, - "state": { - "description": "Two-letter US state code ([ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)).", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "Type of registration in the US.", - "enum": [ - "local_amusement_tax", - "local_lease_tax", - "state_communications_tax", - "state_sales_tax" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "state", - "type" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsUnitedStates", - "type": "object", - "x-expandableFields": [ - "local_amusement_tax", - "local_lease_tax" - ] - }, - "tax_product_registrations_resource_country_options_us_local_amusement_tax": { - "description": "", - "properties": { - "jurisdiction": { - "description": "A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "jurisdiction" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsUsLocalAmusementTax", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_registrations_resource_country_options_us_local_lease_tax": { - "description": "", - "properties": { - "jurisdiction": { - "description": "A [FIPS code](https://www.census.gov/library/reference/code-lists/ansi.html) representing the local jurisdiction.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "jurisdiction" - ], - "title": "TaxProductRegistrationsResourceCountryOptionsUsLocalLeaseTax", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_customer_details": { - "description": "", - "properties": { - "address": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_postal_address" - } - ], - "description": "The customer's postal address (for example, home or business location).", - "nullable": true - }, - "address_source": { - "description": "The type of customer address provided.", - "enum": [ - "billing", - "shipping" - ], - "nullable": true, - "type": "string" - }, - "ip_address": { - "description": "The customer's IP address (IPv4 or IPv6).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_ids": { - "description": "The customer's tax IDs (for example, EU VAT numbers).", - "items": { - "$ref": "#/components/schemas/tax_product_resource_customer_details_resource_tax_id" - }, - "type": "array" - }, - "taxability_override": { - "description": "The taxability override used for taxation.", - "enum": [ - "customer_exempt", - "none", - "reverse_charge" - ], - "type": "string" - } - }, - "required": [ - "tax_ids", - "taxability_override" - ], - "title": "TaxProductResourceCustomerDetails", - "type": "object", - "x-expandableFields": [ - "address", - "tax_ids" - ] - }, - "tax_product_resource_customer_details_resource_tax_id": { - "description": "", - "properties": { - "type": { - "description": "The type of the tax ID, one of `ad_nrt`, `ar_cuit`, `eu_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `cn_tin`, `co_nit`, `cr_tin`, `do_rcn`, `ec_ruc`, `eu_oss_vat`, `pe_ruc`, `ro_tin`, `rs_pib`, `sv_nit`, `uy_ruc`, `ve_rif`, `vn_tin`, `gb_vat`, `nz_gst`, `au_abn`, `au_arn`, `in_gst`, `no_vat`, `no_voec`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, `il_vat`, `ge_vat`, `ua_vat`, `is_vat`, `bg_uic`, `hu_tin`, `si_tin`, `ke_pin`, `tr_tin`, `eg_tin`, `ph_tin`, `bh_vat`, `kz_bin`, `ng_tin`, `om_vat`, `de_stn`, `ch_uid`, or `unknown`", - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "unknown", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "type": "string" - }, - "value": { - "description": "The value of the tax ID.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "title": "TaxProductResourceCustomerDetailsResourceTaxId", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_jurisdiction": { - "description": "", - "properties": { - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "description": "A human-readable name for the jurisdiction imposing the tax.", - "maxLength": 5000, - "type": "string" - }, - "level": { - "description": "Indicates the level of the jurisdiction imposing the tax.", - "enum": [ - "city", - "country", - "county", - "district", - "state" - ], - "type": "string" - }, - "state": { - "description": "[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, \"NY\" for New York, United States.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "country", - "display_name", - "level" - ], - "title": "TaxProductResourceJurisdiction", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_line_item_tax_breakdown": { - "description": "", - "properties": { - "amount": { - "description": "The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "jurisdiction": { - "$ref": "#/components/schemas/tax_product_resource_jurisdiction" - }, - "sourcing": { - "description": "Indicates whether the jurisdiction was determined by the origin (merchant's address) or destination (customer's address).", - "enum": [ - "destination", - "origin" - ], - "type": "string" - }, - "tax_rate_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/tax_product_resource_line_item_tax_rate_details" - } - ], - "description": "Details regarding the rate for this tax. This field will be `null` when the tax is not imposed, for example if the product is exempt from tax.", - "nullable": true - }, - "taxability_reason": { - "description": "The reasoning behind this tax, for example, if the product is tax exempt. The possible values for this field may be extended as new tax rules are supported.", - "enum": [ - "customer_exempt", - "not_collecting", - "not_subject_to_tax", - "not_supported", - "portion_product_exempt", - "portion_reduced_rated", - "portion_standard_rated", - "product_exempt", - "product_exempt_holiday", - "proportionally_rated", - "reduced_rated", - "reverse_charge", - "standard_rated", - "taxable_basis_reduced", - "zero_rated" - ], - "type": "string" - }, - "taxable_amount": { - "description": "The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - } - }, - "required": [ - "amount", - "jurisdiction", - "sourcing", - "taxability_reason", - "taxable_amount" - ], - "title": "TaxProductResourceLineItemTaxBreakdown", - "type": "object", - "x-expandableFields": [ - "jurisdiction", - "tax_rate_details" - ] - }, - "tax_product_resource_line_item_tax_rate_details": { - "description": "", - "properties": { - "display_name": { - "description": "A localized display name for tax type, intended to be human-readable. For example, \"Local Sales and Use Tax\", \"Value-added tax (VAT)\", or \"Umsatzsteuer (USt.)\".", - "maxLength": 5000, - "type": "string" - }, - "percentage_decimal": { - "description": "The tax rate percentage as a string. For example, 8.5% is represented as \"8.5\".", - "maxLength": 5000, - "type": "string" - }, - "tax_type": { - "description": "The tax type, such as `vat` or `sales_tax`.", - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "display_name", - "percentage_decimal", - "tax_type" - ], - "title": "TaxProductResourceLineItemTaxRateDetails", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_postal_address": { - "description": "", - "properties": { - "city": { - "description": "City, district, suburb, town, or village.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "line1": { - "description": "Address line 1 (e.g., street, PO Box, or company name).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "line2": { - "description": "Address line 2 (e.g., apartment, suite, unit, or building).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "postal_code": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "state": { - "description": "State/province as an [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2) subdivision code, without country prefix. Example: \"NY\" or \"TX\".", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "TaxProductResourcePostalAddress", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_ship_from_details": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/tax_product_resource_postal_address" - } - }, - "required": [ - "address" - ], - "title": "TaxProductResourceShipFromDetails", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "tax_product_resource_tax_breakdown": { - "description": "", - "properties": { - "amount": { - "description": "The amount of tax, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "inclusive": { - "description": "Specifies whether the tax amount is included in the line item amount.", - "type": "boolean" - }, - "tax_rate_details": { - "$ref": "#/components/schemas/tax_product_resource_tax_rate_details" - }, - "taxability_reason": { - "description": "The reasoning behind this tax, for example, if the product is tax exempt. We might extend the possible values for this field to support new tax rules.", - "enum": [ - "customer_exempt", - "not_collecting", - "not_subject_to_tax", - "not_supported", - "portion_product_exempt", - "portion_reduced_rated", - "portion_standard_rated", - "product_exempt", - "product_exempt_holiday", - "proportionally_rated", - "reduced_rated", - "reverse_charge", - "standard_rated", - "taxable_basis_reduced", - "zero_rated" - ], - "type": "string" - }, - "taxable_amount": { - "description": "The amount on which tax is calculated, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - } - }, - "required": [ - "amount", - "inclusive", - "tax_rate_details", - "taxability_reason", - "taxable_amount" - ], - "title": "TaxProductResourceTaxBreakdown", - "type": "object", - "x-expandableFields": [ - "tax_rate_details" - ] - }, - "tax_product_resource_tax_calculation_shipping_cost": { - "description": "", - "properties": { - "amount": { - "description": "The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.", - "type": "integer" - }, - "amount_tax": { - "description": "The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "shipping_rate": { - "description": "The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object).", - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "description": "Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.", - "enum": [ - "exclusive", - "inclusive" - ], - "type": "string" - }, - "tax_breakdown": { - "description": "Detailed account of taxes relevant to shipping cost.", - "items": { - "$ref": "#/components/schemas/tax_product_resource_line_item_tax_breakdown" - }, - "type": "array" - }, - "tax_code": { - "description": "The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "amount_tax", - "tax_behavior", - "tax_code" - ], - "title": "TaxProductResourceTaxCalculationShippingCost", - "type": "object", - "x-expandableFields": [ - "tax_breakdown" - ] - }, - "tax_product_resource_tax_rate_details": { - "description": "", - "properties": { - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "percentage_decimal": { - "description": "The tax rate percentage as a string. For example, 8.5% is represented as `\"8.5\"`.", - "maxLength": 5000, - "type": "string" - }, - "state": { - "description": "State, county, province, or region.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_type": { - "description": "The tax type, such as `vat` or `sales_tax`.", - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "percentage_decimal" - ], - "title": "TaxProductResourceTaxRateDetails", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_tax_settings_defaults": { - "description": "", - "properties": { - "tax_behavior": { - "description": "Default [tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#tax-behavior) used to specify whether the price is considered inclusive of taxes or exclusive of taxes. If the item's price has a tax behavior set, it will take precedence over the default tax behavior.", - "enum": [ - "exclusive", - "inclusive", - "inferred_by_currency" - ], - "nullable": true, - "type": "string" - }, - "tax_code": { - "description": "Default [tax code](https://stripe.com/docs/tax/tax-categories) used to classify your products and prices.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TaxProductResourceTaxSettingsDefaults", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_tax_settings_head_office": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - } - }, - "required": [ - "address" - ], - "title": "TaxProductResourceTaxSettingsHeadOffice", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "tax_product_resource_tax_settings_status_details": { - "description": "", - "properties": { - "active": { - "$ref": "#/components/schemas/tax_product_resource_tax_settings_status_details_resource_active" - }, - "pending": { - "$ref": "#/components/schemas/tax_product_resource_tax_settings_status_details_resource_pending" - } - }, - "title": "TaxProductResourceTaxSettingsStatusDetails", - "type": "object", - "x-expandableFields": [ - "active", - "pending" - ] - }, - "tax_product_resource_tax_settings_status_details_resource_active": { - "description": "", - "properties": {}, - "title": "TaxProductResourceTaxSettingsStatusDetailsResourceActive", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_tax_settings_status_details_resource_pending": { - "description": "", - "properties": { - "missing_fields": { - "description": "The list of missing fields that are required to perform calculations. It includes the entry `head_office` when the status is `pending`. It is recommended to set the optional values even if they aren't listed as required for calculating taxes. Calculations can fail if missing fields aren't explicitly provided on every call.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "nullable": true, - "type": "array" - } - }, - "title": "TaxProductResourceTaxSettingsStatusDetailsResourcePending", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_tax_transaction_line_item_resource_reversal": { - "description": "", - "properties": { - "original_line_item": { - "description": "The `id` of the line item to reverse in the original transaction.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "original_line_item" - ], - "title": "TaxProductResourceTaxTransactionLineItemResourceReversal", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_tax_transaction_resource_reversal": { - "description": "", - "properties": { - "original_transaction": { - "description": "The `id` of the reversed `Transaction` object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TaxProductResourceTaxTransactionResourceReversal", - "type": "object", - "x-expandableFields": [] - }, - "tax_product_resource_tax_transaction_shipping_cost": { - "description": "", - "properties": { - "amount": { - "description": "The shipping amount in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If `tax_behavior=inclusive`, then this amount includes taxes. Otherwise, taxes were calculated on top of this amount.", - "type": "integer" - }, - "amount_tax": { - "description": "The amount of tax calculated for shipping, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "shipping_rate": { - "description": "The ID of an existing [ShippingRate](https://stripe.com/docs/api/shipping_rates/object).", - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "description": "Specifies whether the `amount` includes taxes. If `tax_behavior=inclusive`, then the amount includes taxes.", - "enum": [ - "exclusive", - "inclusive" - ], - "type": "string" - }, - "tax_code": { - "description": "The [tax code](https://stripe.com/docs/tax/tax-categories) ID used for shipping.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "amount_tax", - "tax_behavior", - "tax_code" - ], - "title": "TaxProductResourceTaxTransactionShippingCost", - "type": "object", - "x-expandableFields": [] - }, - "tax_rate": { - "description": "Tax rates can be applied to [invoices](https://stripe.com/docs/billing/invoices/tax-rates), [subscriptions](https://stripe.com/docs/billing/subscriptions/taxes) and [Checkout Sessions](https://stripe.com/docs/payments/checkout/set-up-a-subscription#tax-rates) to collect tax.\n\nRelated guide: [Tax rates](https://stripe.com/docs/billing/taxes/tax-rates)", - "properties": { - "active": { - "description": "Defaults to `true`. When set to `false`, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.", - "type": "boolean" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "description": { - "description": "An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "display_name": { - "description": "The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.", - "maxLength": 5000, - "type": "string" - }, - "effective_percentage": { - "description": "Actual/effective tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true,\nthis percentage reflects the rate actually used to calculate tax based on the product's taxability\nand whether the user is registered to collect taxes in the corresponding jurisdiction.", - "nullable": true, - "type": "number" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "inclusive": { - "description": "This specifies if the tax rate is inclusive or exclusive.", - "type": "boolean" - }, - "jurisdiction": { - "description": "The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "jurisdiction_level": { - "description": "The level of the jurisdiction that imposes this tax rate. Will be `null` for manually defined tax rates.", - "enum": [ - "city", - "country", - "county", - "district", - "multiple", - "state" - ], - "nullable": true, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "tax_rate" - ], - "type": "string" - }, - "percentage": { - "description": "Tax rate percentage out of 100. For tax calculations with automatic_tax[enabled]=true, this percentage includes the statutory tax rate of non-taxable jurisdictions.", - "type": "number" - }, - "state": { - "description": "[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, \"NY\" for New York, United States.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "tax_type": { - "description": "The high-level tax type, such as `vat` or `sales_tax`.", - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "active", - "created", - "display_name", - "id", - "inclusive", - "livemode", - "object", - "percentage" - ], - "title": "TaxRate", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "tax_rate" - }, - "terminal.configuration": { - "description": "A Configurations object represents how features should be configured for terminal readers.", - "properties": { - "bbpos_wisepos_e": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_device_type_specific_config" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "is_account_default": { - "description": "Whether this Configuration is the default for your account", - "nullable": true, - "type": "boolean" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "name": { - "description": "String indicating the name of the Configuration object, set by the user", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.configuration" - ], - "type": "string" - }, - "offline": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_offline_config" - }, - "reboot_window": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_reboot_window" - }, - "stripe_s700": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_device_type_specific_config" - }, - "tipping": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_tipping" - }, - "verifone_p400": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_device_type_specific_config" - } - }, - "required": [ - "id", - "livemode", - "object" - ], - "title": "TerminalConfigurationConfiguration", - "type": "object", - "x-expandableFields": [ - "bbpos_wisepos_e", - "offline", - "reboot_window", - "stripe_s700", - "tipping", - "verifone_p400" - ], - "x-resourceId": "terminal.configuration" - }, - "terminal.connection_token": { - "description": "A Connection Token is used by the Stripe Terminal SDK to connect to a reader.\n\nRelated guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)", - "properties": { - "location": { - "description": "The id of the location that this connection token is scoped to. Note that location scoping only applies to internet-connected readers. For more details, see [the docs on scoping connection tokens](https://docs.stripe.com/terminal/fleet/locations-and-zones?dashboard-or-api=api#connection-tokens).", - "maxLength": 5000, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.connection_token" - ], - "type": "string" - }, - "secret": { - "description": "Your application should pass this token to the Stripe Terminal SDK.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "object", - "secret" - ], - "title": "TerminalConnectionToken", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "terminal.connection_token" - }, - "terminal.location": { - "description": "A Location represents a grouping of readers.\n\nRelated guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "configuration_overrides": { - "description": "The ID of a configuration that will be used to customize all readers in this location.", - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "description": "The display name of the location.", - "maxLength": 5000, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.location" - ], - "type": "string" - } - }, - "required": [ - "address", - "display_name", - "id", - "livemode", - "metadata", - "object" - ], - "title": "TerminalLocationLocation", - "type": "object", - "x-expandableFields": [ - "address" - ], - "x-resourceId": "terminal.location" - }, - "terminal.reader": { - "description": "A Reader represents a physical device for accepting payment details.\n\nRelated guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)", - "properties": { - "action": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal_reader_reader_resource_reader_action" - } - ], - "description": "The most recent action performed by the reader.", - "nullable": true - }, - "device_sw_version": { - "description": "The current software version of the reader.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "device_type": { - "description": "Type of reader, one of `bbpos_wisepad3`, `stripe_m2`, `stripe_s700`, `bbpos_chipper2x`, `bbpos_wisepos_e`, `verifone_P400`, `simulated_wisepos_e`, or `mobile_phone_reader`.", - "enum": [ - "bbpos_chipper2x", - "bbpos_wisepad3", - "bbpos_wisepos_e", - "mobile_phone_reader", - "simulated_wisepos_e", - "stripe_m2", - "stripe_s700", - "verifone_P400" - ], - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "ip_address": { - "description": "The local IP address of the reader.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "label": { - "description": "Custom label given to the reader for easier identification.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "location": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/terminal.location" - } - ], - "description": "The location identifier of the reader.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/terminal.location" - } - ] - } - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "terminal.reader" - ], - "type": "string" - }, - "serial_number": { - "description": "Serial number of the reader.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "The networking status of the reader.", - "enum": [ - "offline", - "online" - ], - "nullable": true, - "type": "string" - } - }, - "required": [ - "device_type", - "id", - "label", - "livemode", - "metadata", - "object", - "serial_number" - ], - "title": "TerminalReaderReader", - "type": "object", - "x-expandableFields": [ - "action", - "location" - ], - "x-resourceId": "terminal.reader" - }, - "terminal_configuration_configuration_resource_currency_specific_config": { - "description": "", - "properties": { - "fixed_amounts": { - "description": "Fixed amounts displayed when collecting a tip", - "items": { - "type": "integer" - }, - "nullable": true, - "type": "array" - }, - "percentages": { - "description": "Percentages displayed when collecting a tip", - "items": { - "type": "integer" - }, - "nullable": true, - "type": "array" - }, - "smart_tip_threshold": { - "description": "Below this amount, fixed amounts will be displayed; above it, percentages will be displayed", - "type": "integer" - } - }, - "title": "TerminalConfigurationConfigurationResourceCurrencySpecificConfig", - "type": "object", - "x-expandableFields": [] - }, - "terminal_configuration_configuration_resource_device_type_specific_config": { - "description": "", - "properties": { - "splashscreen": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/file" - } - ], - "description": "A File ID representing an image you would like displayed on the reader.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/file" - } - ] - } - } - }, - "title": "TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig", - "type": "object", - "x-expandableFields": [ - "splashscreen" - ] - }, - "terminal_configuration_configuration_resource_offline_config": { - "description": "", - "properties": { - "enabled": { - "description": "Determines whether to allow transactions to be collected while reader is offline. Defaults to false.", - "nullable": true, - "type": "boolean" - } - }, - "title": "TerminalConfigurationConfigurationResourceOfflineConfig", - "type": "object", - "x-expandableFields": [] - }, - "terminal_configuration_configuration_resource_reboot_window": { - "description": "", - "properties": { - "end_hour": { - "description": "Integer between 0 to 23 that represents the end hour of the reboot time window. The value must be different than the start_hour.", - "type": "integer" - }, - "start_hour": { - "description": "Integer between 0 to 23 that represents the start hour of the reboot time window.", - "type": "integer" - } - }, - "required": [ - "end_hour", - "start_hour" - ], - "title": "TerminalConfigurationConfigurationResourceRebootWindow", - "type": "object", - "x-expandableFields": [] - }, - "terminal_configuration_configuration_resource_tipping": { - "description": "", - "properties": { - "aud": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "cad": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "chf": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "czk": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "dkk": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "eur": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "gbp": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "hkd": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "myr": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "nok": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "nzd": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "sek": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "sgd": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - }, - "usd": { - "$ref": "#/components/schemas/terminal_configuration_configuration_resource_currency_specific_config" - } - }, - "title": "TerminalConfigurationConfigurationResourceTipping", - "type": "object", - "x-expandableFields": [ - "aud", - "cad", - "chf", - "czk", - "dkk", - "eur", - "gbp", - "hkd", - "myr", - "nok", - "nzd", - "sek", - "sgd", - "usd" - ] - }, - "terminal_reader_reader_resource_cart": { - "description": "Represents a cart to be displayed on the reader", - "properties": { - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "line_items": { - "description": "List of line items in the cart.", - "items": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_line_item" - }, - "type": "array" - }, - "tax": { - "description": "Tax amount for the entire cart. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "nullable": true, - "type": "integer" - }, - "total": { - "description": "Total amount for the entire cart, including tax. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - } - }, - "required": [ - "currency", - "line_items", - "total" - ], - "title": "TerminalReaderReaderResourceCart", - "type": "object", - "x-expandableFields": [ - "line_items" - ] - }, - "terminal_reader_reader_resource_line_item": { - "description": "Represents a line item to be displayed on the reader", - "properties": { - "amount": { - "description": "The amount of the line item. A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "description": { - "description": "Description of the line item.", - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "description": "The quantity of the line item.", - "type": "integer" - } - }, - "required": [ - "amount", - "description", - "quantity" - ], - "title": "TerminalReaderReaderResourceLineItem", - "type": "object", - "x-expandableFields": [] - }, - "terminal_reader_reader_resource_process_config": { - "description": "Represents a per-transaction override of a reader configuration", - "properties": { - "enable_customer_cancellation": { - "description": "Enable customer initiated cancellation when processing this payment.", - "type": "boolean" - }, - "skip_tipping": { - "description": "Override showing a tipping selection screen on this transaction.", - "type": "boolean" - }, - "tipping": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_tipping_config" - } - }, - "title": "TerminalReaderReaderResourceProcessConfig", - "type": "object", - "x-expandableFields": [ - "tipping" - ] - }, - "terminal_reader_reader_resource_process_payment_intent_action": { - "description": "Represents a reader action to process a payment intent", - "properties": { - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "Most recent PaymentIntent processed by the reader.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "process_config": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_process_config" - } - }, - "required": [ - "payment_intent" - ], - "title": "TerminalReaderReaderResourceProcessPaymentIntentAction", - "type": "object", - "x-expandableFields": [ - "payment_intent", - "process_config" - ] - }, - "terminal_reader_reader_resource_process_setup_config": { - "description": "Represents a per-setup override of a reader configuration", - "properties": { - "enable_customer_cancellation": { - "description": "Enable customer initiated cancellation when processing this SetupIntent.", - "type": "boolean" - } - }, - "title": "TerminalReaderReaderResourceProcessSetupConfig", - "type": "object", - "x-expandableFields": [] - }, - "terminal_reader_reader_resource_process_setup_intent_action": { - "description": "Represents a reader action to process a setup intent", - "properties": { - "generated_card": { - "description": "ID of a card PaymentMethod generated from the card_present PaymentMethod that may be attached to a Customer for future transactions. Only present if it was possible to generate a card PaymentMethod.", - "maxLength": 5000, - "type": "string" - }, - "process_config": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_process_setup_config" - }, - "setup_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/setup_intent" - } - ], - "description": "Most recent SetupIntent processed by the reader.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/setup_intent" - } - ] - } - } - }, - "required": [ - "setup_intent" - ], - "title": "TerminalReaderReaderResourceProcessSetupIntentAction", - "type": "object", - "x-expandableFields": [ - "process_config", - "setup_intent" - ] - }, - "terminal_reader_reader_resource_reader_action": { - "description": "Represents an action performed by the reader", - "properties": { - "failure_code": { - "description": "Failure code, only set if status is `failed`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "failure_message": { - "description": "Detailed failure message, only set if status is `failed`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "process_payment_intent": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_process_payment_intent_action" - }, - "process_setup_intent": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_process_setup_intent_action" - }, - "refund_payment": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_refund_payment_action" - }, - "set_reader_display": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_set_reader_display_action" - }, - "status": { - "description": "Status of the action performed by the reader.", - "enum": [ - "failed", - "in_progress", - "succeeded" - ], - "type": "string" - }, - "type": { - "description": "Type of action performed by the reader.", - "enum": [ - "process_payment_intent", - "process_setup_intent", - "refund_payment", - "set_reader_display" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "status", - "type" - ], - "title": "TerminalReaderReaderResourceReaderAction", - "type": "object", - "x-expandableFields": [ - "process_payment_intent", - "process_setup_intent", - "refund_payment", - "set_reader_display" - ] - }, - "terminal_reader_reader_resource_refund_payment_action": { - "description": "Represents a reader action to refund a payment", - "properties": { - "amount": { - "description": "The amount being refunded.", - "type": "integer" - }, - "charge": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "Charge that is being refunded.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "payment_intent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/payment_intent" - } - ], - "description": "Payment intent that is being refunded.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/payment_intent" - } - ] - } - }, - "reason": { - "description": "The reason for the refund.", - "enum": [ - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "type": "string" - }, - "refund": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/refund" - } - ], - "description": "Unique identifier for the refund object.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/refund" - } - ] - } - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "refund_payment_config": { - "$ref": "#/components/schemas/terminal_reader_reader_resource_refund_payment_config" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "title": "TerminalReaderReaderResourceRefundPaymentAction", - "type": "object", - "x-expandableFields": [ - "charge", - "payment_intent", - "refund", - "refund_payment_config" - ] - }, - "terminal_reader_reader_resource_refund_payment_config": { - "description": "Represents a per-transaction override of a reader configuration", - "properties": { - "enable_customer_cancellation": { - "description": "Enable customer initiated cancellation when refunding this payment.", - "type": "boolean" - } - }, - "title": "TerminalReaderReaderResourceRefundPaymentConfig", - "type": "object", - "x-expandableFields": [] - }, - "terminal_reader_reader_resource_set_reader_display_action": { - "description": "Represents a reader action to set the reader display", - "properties": { - "cart": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal_reader_reader_resource_cart" - } - ], - "description": "Cart object to be displayed by the reader.", - "nullable": true - }, - "type": { - "description": "Type of information to be displayed by the reader.", - "enum": [ - "cart" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TerminalReaderReaderResourceSetReaderDisplayAction", - "type": "object", - "x-expandableFields": [ - "cart" - ] - }, - "terminal_reader_reader_resource_tipping_config": { - "description": "Represents a per-transaction tipping configuration", - "properties": { - "amount_eligible": { - "description": "Amount used to calculate tip suggestions on tipping selection screen for this transaction. Must be a positive integer in the smallest currency unit (e.g., 100 cents to represent $1.00 or 100 to represent ¥100, a zero-decimal currency).", - "type": "integer" - } - }, - "title": "TerminalReaderReaderResourceTippingConfig", - "type": "object", - "x-expandableFields": [] - }, - "test_helpers.test_clock": { - "description": "A test clock enables deterministic control over objects in testmode. With a test clock, you can create\nobjects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances,\nyou can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time.", - "properties": { - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "deletes_after": { - "description": "Time at which this clock is scheduled to auto delete.", - "format": "unix-time", - "type": "integer" - }, - "frozen_time": { - "description": "Time at which all objects belonging to this clock are frozen.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "name": { - "description": "The custom name supplied at creation.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "test_helpers.test_clock" - ], - "type": "string" - }, - "status": { - "description": "The status of the Test Clock.", - "enum": [ - "advancing", - "internal_failure", - "ready" - ], - "type": "string" - } - }, - "required": [ - "created", - "deletes_after", - "frozen_time", - "id", - "livemode", - "object", - "status" - ], - "title": "TestClock", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "test_helpers.test_clock" - }, - "three_d_secure_details": { - "description": "", - "properties": { - "authentication_flow": { - "description": "For authenticated transactions: how the customer was authenticated by\nthe issuing bank.", - "enum": [ - "challenge", - "frictionless" - ], - "nullable": true, - "type": "string" - }, - "electronic_commerce_indicator": { - "description": "The Electronic Commerce Indicator (ECI). A protocol-level field\nindicating what degree of authentication was performed.", - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "result": { - "description": "Indicates the outcome of 3D Secure authentication.", - "enum": [ - "attempt_acknowledged", - "authenticated", - "exempted", - "failed", - "not_supported", - "processing_error" - ], - "nullable": true, - "type": "string" - }, - "result_reason": { - "description": "Additional information about why 3D Secure succeeded or failed based\non the `result`.", - "enum": [ - "abandoned", - "bypassed", - "canceled", - "card_not_enrolled", - "network_not_supported", - "protocol_error", - "rejected" - ], - "nullable": true, - "type": "string" - }, - "transaction_id": { - "description": "The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID\n(dsTransId) for this payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "version": { - "description": "The version of 3D Secure that was used.", - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "three_d_secure_details", - "type": "object", - "x-expandableFields": [] - }, - "three_d_secure_details_charge": { - "description": "", - "properties": { - "authentication_flow": { - "description": "For authenticated transactions: how the customer was authenticated by\nthe issuing bank.", - "enum": [ - "challenge", - "frictionless" - ], - "nullable": true, - "type": "string" - }, - "electronic_commerce_indicator": { - "description": "The Electronic Commerce Indicator (ECI). A protocol-level field\nindicating what degree of authentication was performed.", - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "exemption_indicator": { - "description": "The exemption requested via 3DS and accepted by the issuer at authentication time.", - "enum": [ - "low_risk", - "none" - ], - "nullable": true, - "type": "string" - }, - "exemption_indicator_applied": { - "description": "Whether Stripe requested the value of `exemption_indicator` in the transaction. This will depend on\nthe outcome of Stripe's internal risk assessment.", - "type": "boolean" - }, - "result": { - "description": "Indicates the outcome of 3D Secure authentication.", - "enum": [ - "attempt_acknowledged", - "authenticated", - "exempted", - "failed", - "not_supported", - "processing_error" - ], - "nullable": true, - "type": "string" - }, - "result_reason": { - "description": "Additional information about why 3D Secure succeeded or failed based\non the `result`.", - "enum": [ - "abandoned", - "bypassed", - "canceled", - "card_not_enrolled", - "network_not_supported", - "protocol_error", - "rejected" - ], - "nullable": true, - "type": "string" - }, - "transaction_id": { - "description": "The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID\n(dsTransId) for this payment.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "version": { - "description": "The version of 3D Secure that was used.", - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "three_d_secure_details_charge", - "type": "object", - "x-expandableFields": [] - }, - "three_d_secure_usage": { - "description": "", - "properties": { - "supported": { - "description": "Whether 3D Secure is supported on this card.", - "type": "boolean" - } - }, - "required": [ - "supported" - ], - "title": "three_d_secure_usage", - "type": "object", - "x-expandableFields": [] - }, - "token": { - "description": "Tokenization is the process Stripe uses to collect sensitive card or bank\naccount details, or personally identifiable information (PII), directly from\nyour customers in a secure manner. A token representing this information is\nreturned to your server to use. Use our\n[recommended payments integrations](https://stripe.com/docs/payments) to perform this process\non the client-side. This guarantees that no sensitive card data touches your server,\nand allows your integration to operate in a PCI-compliant way.\n\nIf you can't use client-side tokenization, you can also create tokens using\nthe API with either your publishable or secret API key. If\nyour integration uses this method, you're responsible for any PCI compliance\nthat it might require, and you must keep your secret API key safe. Unlike with\nclient-side tokenization, your customer's information isn't sent directly to\nStripe, so we can't determine how it's handled or stored.\n\nYou can't store or use tokens more than once. To store card or bank account\ninformation for later use, create [Customer](https://stripe.com/docs/api#customers)\nobjects or [External accounts](/api#external_accounts).\n[Radar](https://stripe.com/docs/radar), our integrated solution for automatic fraud protection,\nperforms best with integrations that use client-side tokenization.", - "properties": { - "bank_account": { - "$ref": "#/components/schemas/bank_account" - }, - "card": { - "$ref": "#/components/schemas/card" - }, - "client_ip": { - "description": "IP address of the client that generates the token.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "token" - ], - "type": "string" - }, - "type": { - "description": "Type of the token: `account`, `bank_account`, `card`, or `pii`.", - "maxLength": 5000, - "type": "string" - }, - "used": { - "description": "Determines if you have already used this token (you can only use tokens once).", - "type": "boolean" - } - }, - "required": [ - "created", - "id", - "livemode", - "object", - "type", - "used" - ], - "title": "Token", - "type": "object", - "x-expandableFields": [ - "bank_account", - "card" - ], - "x-resourceId": "token" - }, - "token_card_networks": { - "description": "", - "properties": { - "preferred": { - "description": "The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "token_card_networks", - "type": "object", - "x-expandableFields": [] - }, - "topup": { - "description": "To top up your Stripe balance, you create a top-up object. You can retrieve\nindividual top-ups, as well as list all top-ups. Top-ups are identified by a\nunique, random ID.\n\nRelated guide: [Topping up your platform account](https://stripe.com/docs/connect/top-ups)", - "properties": { - "amount": { - "description": "Amount transferred.", - "type": "integer" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "expected_availability_date": { - "description": "Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up.", - "nullable": true, - "type": "integer" - }, - "failure_code": { - "description": "Error code explaining reason for top-up failure if available (see [the errors section](https://stripe.com/docs/api#errors) for a list of codes).", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "failure_message": { - "description": "Message to user further explaining reason for top-up failure if available.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "topup" - ], - "type": "string" - }, - "source": { - "anyOf": [ - { - "$ref": "#/components/schemas/source" - } - ], - "description": "The source field is deprecated. It might not always be present in the API response.", - "nullable": true - }, - "statement_descriptor": { - "description": "Extra information about a top-up. This will appear on your source's bank statement. It must contain at least one letter.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "status": { - "description": "The status of the top-up is either `canceled`, `failed`, `pending`, `reversed`, or `succeeded`.", - "enum": [ - "canceled", - "failed", - "pending", - "reversed", - "succeeded" - ], - "type": "string" - }, - "transfer_group": { - "description": "A string that identifies this top-up as part of a group.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "created", - "currency", - "id", - "livemode", - "metadata", - "object", - "status" - ], - "title": "Topup", - "type": "object", - "x-expandableFields": [ - "balance_transaction", - "source" - ], - "x-resourceId": "topup" - }, - "transfer": { - "description": "A `Transfer` object is created when you move funds between Stripe accounts as\npart of Connect.\n\nBefore April 6, 2017, transfers also represented movement of funds from a\nStripe account to a card or bank account. This behavior has since been split\nout into a [Payout](https://stripe.com/docs/api#payout_object) object, with corresponding payout endpoints. For more\ninformation, read about the\n[transfer/payout split](https://stripe.com/docs/transfer-payout-split).\n\nRelated guide: [Creating separate charges and transfers](https://stripe.com/docs/connect/separate-charges-and-transfers)", - "properties": { - "amount": { - "description": "Amount in cents (or local equivalent) to be transferred.", - "type": "integer" - }, - "amount_reversed": { - "description": "Amount in cents (or local equivalent) reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).", - "type": "integer" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "Balance transaction that describes the impact of this transfer on your account balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "created": { - "description": "Time that this record of the transfer was first created.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "ID of the Stripe account the transfer was sent to.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - }, - "destination_payment": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "transfer" - ], - "type": "string" - }, - "reversals": { - "description": "A list of reversals that have been applied to the transfer.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/transfer_reversal" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TransferReversalList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "reversed": { - "description": "Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.", - "type": "boolean" - }, - "source_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/charge" - } - ], - "description": "ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/charge" - } - ] - } - }, - "source_type": { - "description": "The source balance this transfer came from. One of `card`, `fpx`, or `bank_account`.", - "maxLength": 5000, - "type": "string" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "amount", - "amount_reversed", - "created", - "currency", - "id", - "livemode", - "metadata", - "object", - "reversals", - "reversed" - ], - "title": "Transfer", - "type": "object", - "x-expandableFields": [ - "balance_transaction", - "destination", - "destination_payment", - "reversals", - "source_transaction" - ], - "x-resourceId": "transfer" - }, - "transfer_data": { - "description": "", - "properties": { - "amount": { - "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "destination": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/account" - } - ], - "description": "The account (if any) that the payment is attributed to for tax\nreporting, and where funds from the payment are transferred to after\npayment success.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/account" - } - ] - } - } - }, - "required": [ - "destination" - ], - "title": "transfer_data", - "type": "object", - "x-expandableFields": [ - "destination" - ] - }, - "transfer_reversal": { - "description": "[Stripe Connect](https://stripe.com/docs/connect) platforms can reverse transfers made to a\nconnected account, either entirely or partially, and can also specify whether\nto refund any related application fees. Transfer reversals add to the\nplatform's balance and subtract from the destination account's balance.\n\nReversing a transfer that was made for a [destination\ncharge](/docs/connect/destination-charges) is allowed only up to the amount of\nthe charge. It is possible to reverse a\n[transfer_group](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options)\ntransfer only if the destination account has enough balance to cover the\nreversal.\n\nRelated guide: [Reverse transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#reverse-transfers)", - "properties": { - "amount": { - "description": "Amount, in cents (or local equivalent).", - "type": "integer" - }, - "balance_transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/balance_transaction" - } - ], - "description": "Balance transaction that describes the impact on your account balance.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/balance_transaction" - } - ] - } - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "destination_payment_refund": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/refund" - } - ], - "description": "Linked payment refund for the transfer reversal.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/refund" - } - ] - } - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "transfer_reversal" - ], - "type": "string" - }, - "source_refund": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/refund" - } - ], - "description": "ID of the refund responsible for the transfer reversal.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/refund" - } - ] - } - }, - "transfer": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/transfer" - } - ], - "description": "ID of the transfer that was reversed.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/transfer" - } - ] - } - } - }, - "required": [ - "amount", - "created", - "currency", - "id", - "object", - "transfer" - ], - "title": "TransferReversal", - "type": "object", - "x-expandableFields": [ - "balance_transaction", - "destination_payment_refund", - "source_refund", - "transfer" - ], - "x-resourceId": "transfer_reversal" - }, - "transfer_schedule": { - "description": "", - "properties": { - "delay_days": { - "description": "The number of days charges for the account will be held before being paid out.", - "type": "integer" - }, - "interval": { - "description": "How frequently funds will be paid out. One of `manual` (payouts only created via API call), `daily`, `weekly`, or `monthly`.", - "maxLength": 5000, - "type": "string" - }, - "monthly_anchor": { - "description": "The day of the month funds will be paid out. Only shown if `interval` is monthly. Payouts scheduled between the 29th and 31st of the month are sent on the last day of shorter months.", - "type": "integer" - }, - "weekly_anchor": { - "description": "The day of the week funds will be paid out, of the style 'monday', 'tuesday', etc. Only shown if `interval` is weekly.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "delay_days", - "interval" - ], - "title": "TransferSchedule", - "type": "object", - "x-expandableFields": [] - }, - "transform_quantity": { - "description": "", - "properties": { - "divide_by": { - "description": "Divide usage by this number.", - "type": "integer" - }, - "round": { - "description": "After division, either round the result `up` or `down`.", - "enum": [ - "down", - "up" - ], - "type": "string" - } - }, - "required": [ - "divide_by", - "round" - ], - "title": "TransformQuantity", - "type": "object", - "x-expandableFields": [] - }, - "transform_usage": { - "description": "", - "properties": { - "divide_by": { - "description": "Divide usage by this number.", - "type": "integer" - }, - "round": { - "description": "After division, either round the result `up` or `down`.", - "enum": [ - "down", - "up" - ], - "type": "string" - } - }, - "required": [ - "divide_by", - "round" - ], - "title": "TransformUsage", - "type": "object", - "x-expandableFields": [] - }, - "treasury.credit_reversal": { - "description": "You can reverse some [ReceivedCredits](https://stripe.com/docs/api#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "financial_account": { - "description": "The FinancialAccount to reverse funds from.", - "maxLength": 5000, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "network": { - "description": "The rails used to reverse the funds.", - "enum": [ - "ach", - "stripe" - ], - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.credit_reversal" - ], - "type": "string" - }, - "received_credit": { - "description": "The ReceivedCredit being reversed.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "Status of the CreditReversal", - "enum": [ - "canceled", - "posted", - "processing" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/treasury_received_credits_resource_status_transitions" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "created", - "currency", - "financial_account", - "id", - "livemode", - "metadata", - "network", - "object", - "received_credit", - "status", - "status_transitions" - ], - "title": "TreasuryReceivedCreditsResourceCreditReversal", - "type": "object", - "x-expandableFields": [ - "status_transitions", - "transaction" - ], - "x-resourceId": "treasury.credit_reversal" - }, - "treasury.debit_reversal": { - "description": "You can reverse some [ReceivedDebits](https://stripe.com/docs/api#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "financial_account": { - "description": "The FinancialAccount to reverse funds from.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "linked_flows": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_received_debits_resource_debit_reversal_linked_flows" - } - ], - "description": "Other flows linked to a DebitReversal.", - "nullable": true - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "network": { - "description": "The rails used to reverse the funds.", - "enum": [ - "ach", - "card" - ], - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.debit_reversal" - ], - "type": "string" - }, - "received_debit": { - "description": "The ReceivedDebit being reversed.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "Status of the DebitReversal", - "enum": [ - "failed", - "processing", - "succeeded" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/treasury_received_debits_resource_status_transitions" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "created", - "currency", - "id", - "livemode", - "metadata", - "network", - "object", - "received_debit", - "status", - "status_transitions" - ], - "title": "TreasuryReceivedDebitsResourceDebitReversal", - "type": "object", - "x-expandableFields": [ - "linked_flows", - "status_transitions", - "transaction" - ], - "x-resourceId": "treasury.debit_reversal" - }, - "treasury.financial_account": { - "description": "Stripe Treasury provides users with a container for money called a FinancialAccount that is separate from their Payments balance.\nFinancialAccounts serve as the source and destination of Treasury’s money movement APIs.", - "properties": { - "active_features": { - "description": "The array of paths to active Features in the Features hash.", - "items": { - "enum": [ - "card_issuing", - "deposit_insurance", - "financial_addresses.aba", - "inbound_transfers.ach", - "intra_stripe_flows", - "outbound_payments.ach", - "outbound_payments.us_domestic_wire", - "outbound_transfers.ach", - "outbound_transfers.us_domestic_wire", - "remote_deposit_capture" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "balance": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_balance" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "features": { - "$ref": "#/components/schemas/treasury.financial_account_features" - }, - "financial_addresses": { - "description": "The set of credentials that resolve to a FinancialAccount.", - "items": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_financial_address" - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "nullable": true, - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.financial_account" - ], - "type": "string" - }, - "pending_features": { - "description": "The array of paths to pending Features in the Features hash.", - "items": { - "enum": [ - "card_issuing", - "deposit_insurance", - "financial_addresses.aba", - "inbound_transfers.ach", - "intra_stripe_flows", - "outbound_payments.ach", - "outbound_payments.us_domestic_wire", - "outbound_transfers.ach", - "outbound_transfers.us_domestic_wire", - "remote_deposit_capture" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "platform_restrictions": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_platform_restrictions" - } - ], - "description": "The set of functionalities that the platform can restrict on the FinancialAccount.", - "nullable": true - }, - "restricted_features": { - "description": "The array of paths to restricted Features in the Features hash.", - "items": { - "enum": [ - "card_issuing", - "deposit_insurance", - "financial_addresses.aba", - "inbound_transfers.ach", - "intra_stripe_flows", - "outbound_payments.ach", - "outbound_payments.us_domestic_wire", - "outbound_transfers.ach", - "outbound_transfers.us_domestic_wire", - "remote_deposit_capture" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "status": { - "description": "The enum specifying what state the account is in.", - "enum": [ - "closed", - "open" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "status_details": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_status_details" - }, - "supported_currencies": { - "description": "The currencies the FinancialAccount can hold a balance in. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "balance", - "country", - "created", - "financial_addresses", - "id", - "livemode", - "object", - "status", - "status_details", - "supported_currencies" - ], - "title": "TreasuryFinancialAccountsResourceFinancialAccount", - "type": "object", - "x-expandableFields": [ - "balance", - "features", - "financial_addresses", - "platform_restrictions", - "status_details" - ], - "x-resourceId": "treasury.financial_account" - }, - "treasury.financial_account_features": { - "description": "Encodes whether a FinancialAccount has access to a particular Feature, with a `status` enum and associated `status_details`.\nStripe or the platform can control Features via the requested field.", - "properties": { - "card_issuing": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggle_settings" - }, - "deposit_insurance": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggle_settings" - }, - "financial_addresses": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_financial_addresses_features" - }, - "inbound_transfers": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_inbound_transfers" - }, - "intra_stripe_flows": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggle_settings" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.financial_account_features" - ], - "type": "string" - }, - "outbound_payments": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_outbound_payments" - }, - "outbound_transfers": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_outbound_transfers" - } - }, - "required": [ - "object" - ], - "title": "TreasuryFinancialAccountsResourceFinancialAccountFeatures", - "type": "object", - "x-expandableFields": [ - "card_issuing", - "deposit_insurance", - "financial_addresses", - "inbound_transfers", - "intra_stripe_flows", - "outbound_payments", - "outbound_transfers" - ], - "x-resourceId": "treasury.financial_account_features" - }, - "treasury.inbound_transfer": { - "description": "Use [InboundTransfers](https://stripe.com/docs/treasury/moving-money/financial-accounts/into/inbound-transfers) to add funds to your [FinancialAccount](https://stripe.com/docs/api#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "cancelable": { - "description": "Returns `true` if the InboundTransfer is able to be canceled.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "failure_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_inbound_transfers_resource_failure_details" - } - ], - "description": "Details about this InboundTransfer's failure. Only set when status is `failed`.", - "nullable": true - }, - "financial_account": { - "description": "The FinancialAccount that received the funds.", - "maxLength": 5000, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "linked_flows": { - "$ref": "#/components/schemas/treasury_inbound_transfers_resource_inbound_transfer_resource_linked_flows" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.inbound_transfer" - ], - "type": "string" - }, - "origin_payment_method": { - "description": "The origin payment method to be debited for an InboundTransfer.", - "maxLength": 5000, - "type": "string" - }, - "origin_payment_method_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/inbound_transfers" - } - ], - "description": "Details about the PaymentMethod for an InboundTransfer.", - "nullable": true - }, - "returned": { - "description": "Returns `true` if the funds for an InboundTransfer were returned after the InboundTransfer went to the `succeeded` state.", - "nullable": true, - "type": "boolean" - }, - "statement_descriptor": { - "description": "Statement descriptor shown when funds are debited from the source. Not all payment networks support `statement_descriptor`.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "Status of the InboundTransfer: `processing`, `succeeded`, `failed`, and `canceled`. An InboundTransfer is `processing` if it is created and pending. The status changes to `succeeded` once the funds have been \"confirmed\" and a `transaction` is created and posted. The status changes to `failed` if the transfer fails.", - "enum": [ - "canceled", - "failed", - "processing", - "succeeded" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/treasury_inbound_transfers_resource_inbound_transfer_resource_status_transitions" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "cancelable", - "created", - "currency", - "financial_account", - "id", - "linked_flows", - "livemode", - "metadata", - "object", - "origin_payment_method", - "statement_descriptor", - "status", - "status_transitions" - ], - "title": "TreasuryInboundTransfersResourceInboundTransfer", - "type": "object", - "x-expandableFields": [ - "failure_details", - "linked_flows", - "origin_payment_method_details", - "status_transitions", - "transaction" - ], - "x-resourceId": "treasury.inbound_transfer" - }, - "treasury.outbound_payment": { - "description": "Use OutboundPayments to send funds to another party's external bank account or [FinancialAccount](https://stripe.com/docs/api#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https://stripe.com/docs/api#outbound_transfers).\n\nSimulate OutboundPayment state changes with the `/v1/test_helpers/treasury/outbound_payments` endpoints. These methods can only be called on test mode objects.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "cancelable": { - "description": "Returns `true` if the object can be canceled, and `false` otherwise.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "ID of the [customer](https://stripe.com/docs/api/customers) to whom an OutboundPayment is sent.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "destination_payment_method": { - "description": "The PaymentMethod via which an OutboundPayment is sent. This field can be empty if the OutboundPayment was created using `destination_payment_method_data`.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "destination_payment_method_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/outbound_payments_payment_method_details" - } - ], - "description": "Details about the PaymentMethod for an OutboundPayment.", - "nullable": true - }, - "end_user_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_outbound_payments_resource_outbound_payment_resource_end_user_details" - } - ], - "description": "Details about the end user.", - "nullable": true - }, - "expected_arrival_date": { - "description": "The date when funds are expected to arrive in the destination account.", - "format": "unix-time", - "type": "integer" - }, - "financial_account": { - "description": "The FinancialAccount that funds were pulled from.", - "maxLength": 5000, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.outbound_payment" - ], - "type": "string" - }, - "returned_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_outbound_payments_resource_returned_status" - } - ], - "description": "Details about a returned OutboundPayment. Only set when the status is `returned`.", - "nullable": true - }, - "statement_descriptor": { - "description": "The description that appears on the receiving end for an OutboundPayment (for example, bank statement for external bank transfer).", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "Current status of the OutboundPayment: `processing`, `failed`, `posted`, `returned`, `canceled`. An OutboundPayment is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundPayment has been \"confirmed\" and funds have left the account, or to `failed` or `canceled`. If an OutboundPayment fails to arrive at its destination, its status will change to `returned`.", - "enum": [ - "canceled", - "failed", - "posted", - "processing", - "returned" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/treasury_outbound_payments_resource_outbound_payment_resource_status_transitions" - }, - "tracking_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_outbound_payments_resource_outbound_payment_resource_tracking_details" - } - ], - "description": "Details about network-specific tracking information if available.", - "nullable": true - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "cancelable", - "created", - "currency", - "expected_arrival_date", - "financial_account", - "id", - "livemode", - "metadata", - "object", - "statement_descriptor", - "status", - "status_transitions", - "transaction" - ], - "title": "TreasuryOutboundPaymentsResourceOutboundPayment", - "type": "object", - "x-expandableFields": [ - "destination_payment_method_details", - "end_user_details", - "returned_details", - "status_transitions", - "tracking_details", - "transaction" - ], - "x-resourceId": "treasury.outbound_payment" - }, - "treasury.outbound_transfer": { - "description": "Use OutboundTransfers to transfer funds from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https://stripe.com/docs/api#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account.\n\nSimulate OutboundTransfer state changes with the `/v1/test_helpers/treasury/outbound_transfers` endpoints. These methods can only be called on test mode objects.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "cancelable": { - "description": "Returns `true` if the object can be canceled, and `false` otherwise.", - "type": "boolean" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "destination_payment_method": { - "description": "The PaymentMethod used as the payment instrument for an OutboundTransfer.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "destination_payment_method_details": { - "$ref": "#/components/schemas/outbound_transfers_payment_method_details" - }, - "expected_arrival_date": { - "description": "The date when funds are expected to arrive in the destination account.", - "format": "unix-time", - "type": "integer" - }, - "financial_account": { - "description": "The FinancialAccount that funds were pulled from.", - "maxLength": 5000, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.outbound_transfer" - ], - "type": "string" - }, - "returned_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_outbound_transfers_resource_returned_details" - } - ], - "description": "Details about a returned OutboundTransfer. Only set when the status is `returned`.", - "nullable": true - }, - "statement_descriptor": { - "description": "Information about the OutboundTransfer to be sent to the recipient account.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "Current status of the OutboundTransfer: `processing`, `failed`, `canceled`, `posted`, `returned`. An OutboundTransfer is `processing` if it has been created and is pending. The status changes to `posted` once the OutboundTransfer has been \"confirmed\" and funds have left the account, or to `failed` or `canceled`. If an OutboundTransfer fails to arrive at its destination, its status will change to `returned`.", - "enum": [ - "canceled", - "failed", - "posted", - "processing", - "returned" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/treasury_outbound_transfers_resource_status_transitions" - }, - "tracking_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_outbound_transfers_resource_outbound_transfer_resource_tracking_details" - } - ], - "description": "Details about network-specific tracking information if available.", - "nullable": true - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "cancelable", - "created", - "currency", - "destination_payment_method_details", - "expected_arrival_date", - "financial_account", - "id", - "livemode", - "metadata", - "object", - "statement_descriptor", - "status", - "status_transitions", - "transaction" - ], - "title": "TreasuryOutboundTransfersResourceOutboundTransfer", - "type": "object", - "x-expandableFields": [ - "destination_payment_method_details", - "returned_details", - "status_transitions", - "tracking_details", - "transaction" - ], - "x-resourceId": "treasury.outbound_transfer" - }, - "treasury.received_credit": { - "description": "ReceivedCredits represent funds sent to a [FinancialAccount](https://stripe.com/docs/api#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "failure_code": { - "description": "Reason for the failure. A ReceivedCredit might fail because the receiving FinancialAccount is closed or frozen.", - "enum": [ - "account_closed", - "account_frozen", - "other" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "financial_account": { - "description": "The FinancialAccount that received the funds.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "initiating_payment_method_details": { - "$ref": "#/components/schemas/treasury_shared_resource_initiating_payment_method_details_initiating_payment_method_details" - }, - "linked_flows": { - "$ref": "#/components/schemas/treasury_received_credits_resource_linked_flows" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "network": { - "description": "The rails used to send the funds.", - "enum": [ - "ach", - "card", - "stripe", - "us_domestic_wire" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.received_credit" - ], - "type": "string" - }, - "reversal_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_received_credits_resource_reversal_details" - } - ], - "description": "Details describing when a ReceivedCredit may be reversed.", - "nullable": true - }, - "status": { - "description": "Status of the ReceivedCredit. ReceivedCredits are created either `succeeded` (approved) or `failed` (declined). If a ReceivedCredit is declined, the failure reason can be found in the `failure_code` field.", - "enum": [ - "failed", - "succeeded" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "created", - "currency", - "description", - "id", - "initiating_payment_method_details", - "linked_flows", - "livemode", - "network", - "object", - "status" - ], - "title": "TreasuryReceivedCreditsResourceReceivedCredit", - "type": "object", - "x-expandableFields": [ - "initiating_payment_method_details", - "linked_flows", - "reversal_details", - "transaction" - ], - "x-resourceId": "treasury.received_credit" - }, - "treasury.received_debit": { - "description": "ReceivedDebits represent funds pulled from a [FinancialAccount](https://stripe.com/docs/api#financial_accounts). These are not initiated from the FinancialAccount.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "failure_code": { - "description": "Reason for the failure. A ReceivedDebit might fail because the FinancialAccount doesn't have sufficient funds, is closed, or is frozen.", - "enum": [ - "account_closed", - "account_frozen", - "insufficient_funds", - "other" - ], - "nullable": true, - "type": "string" - }, - "financial_account": { - "description": "The FinancialAccount that funds were pulled from.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "hosted_regulatory_receipt_url": { - "description": "A [hosted transaction receipt](https://stripe.com/docs/treasury/moving-money/regulatory-receipts) URL that is provided when money movement is considered regulated under Stripe's money transmission licenses.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "initiating_payment_method_details": { - "$ref": "#/components/schemas/treasury_shared_resource_initiating_payment_method_details_initiating_payment_method_details" - }, - "linked_flows": { - "$ref": "#/components/schemas/treasury_received_debits_resource_linked_flows" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "network": { - "description": "The network used for the ReceivedDebit.", - "enum": [ - "ach", - "card", - "stripe" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.received_debit" - ], - "type": "string" - }, - "reversal_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_received_debits_resource_reversal_details" - } - ], - "description": "Details describing when a ReceivedDebit might be reversed.", - "nullable": true - }, - "status": { - "description": "Status of the ReceivedDebit. ReceivedDebits are created with a status of either `succeeded` (approved) or `failed` (declined). The failure reason can be found under the `failure_code`.", - "enum": [ - "failed", - "succeeded" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "nullable": true, - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "amount", - "created", - "currency", - "description", - "id", - "linked_flows", - "livemode", - "network", - "object", - "status" - ], - "title": "TreasuryReceivedDebitsResourceReceivedDebit", - "type": "object", - "x-expandableFields": [ - "initiating_payment_method_details", - "linked_flows", - "reversal_details", - "transaction" - ], - "x-resourceId": "treasury.received_debit" - }, - "treasury.transaction": { - "description": "Transactions represent changes to a [FinancialAccount's](https://stripe.com/docs/api#financial_accounts) balance.", - "properties": { - "amount": { - "description": "Amount (in cents) transferred.", - "type": "integer" - }, - "balance_impact": { - "$ref": "#/components/schemas/treasury_transactions_resource_balance_impact" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "entries": { - "description": "A list of TransactionEntries that are part of this Transaction. This cannot be expanded in any list endpoints.", - "nullable": true, - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.transaction_entry" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/treasury/transaction_entries", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryTransactionsResourceTransactionEntryList", - "type": "object", - "x-expandableFields": [ - "data" - ] - }, - "financial_account": { - "description": "The FinancialAccount associated with this object.", - "maxLength": 5000, - "type": "string" - }, - "flow": { - "description": "ID of the flow that created the Transaction.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "flow_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_transactions_resource_flow_details" - } - ], - "description": "Details of the flow that created the Transaction.", - "nullable": true - }, - "flow_type": { - "description": "Type of the flow that created the Transaction.", - "enum": [ - "credit_reversal", - "debit_reversal", - "inbound_transfer", - "issuing_authorization", - "other", - "outbound_payment", - "outbound_transfer", - "received_credit", - "received_debit" - ], - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.transaction" - ], - "type": "string" - }, - "status": { - "description": "Status of the Transaction.", - "enum": [ - "open", - "posted", - "void" - ], - "type": "string" - }, - "status_transitions": { - "$ref": "#/components/schemas/treasury_transactions_resource_abstract_transaction_resource_status_transitions" - } - }, - "required": [ - "amount", - "balance_impact", - "created", - "currency", - "description", - "financial_account", - "flow_type", - "id", - "livemode", - "object", - "status", - "status_transitions" - ], - "title": "TreasuryTransactionsResourceTransaction", - "type": "object", - "x-expandableFields": [ - "balance_impact", - "entries", - "flow_details", - "status_transitions" - ], - "x-resourceId": "treasury.transaction" - }, - "treasury.transaction_entry": { - "description": "TransactionEntries represent individual units of money movements within a single [Transaction](https://stripe.com/docs/api#transactions).", - "properties": { - "balance_impact": { - "$ref": "#/components/schemas/treasury_transactions_resource_balance_impact" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "effective_at": { - "description": "When the TransactionEntry will impact the FinancialAccount's balance.", - "format": "unix-time", - "type": "integer" - }, - "financial_account": { - "description": "The FinancialAccount associated with this object.", - "maxLength": 5000, - "type": "string" - }, - "flow": { - "description": "Token of the flow associated with the TransactionEntry.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "flow_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_transactions_resource_flow_details" - } - ], - "description": "Details of the flow associated with the TransactionEntry.", - "nullable": true - }, - "flow_type": { - "description": "Type of the flow associated with the TransactionEntry.", - "enum": [ - "credit_reversal", - "debit_reversal", - "inbound_transfer", - "issuing_authorization", - "other", - "outbound_payment", - "outbound_transfer", - "received_credit", - "received_debit" - ], - "type": "string" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "treasury.transaction_entry" - ], - "type": "string" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - }, - "type": { - "description": "The specific money movement that generated the TransactionEntry.", - "enum": [ - "credit_reversal", - "credit_reversal_posting", - "debit_reversal", - "inbound_transfer", - "inbound_transfer_return", - "issuing_authorization_hold", - "issuing_authorization_release", - "other", - "outbound_payment", - "outbound_payment_cancellation", - "outbound_payment_failure", - "outbound_payment_posting", - "outbound_payment_return", - "outbound_transfer", - "outbound_transfer_cancellation", - "outbound_transfer_failure", - "outbound_transfer_posting", - "outbound_transfer_return", - "received_credit", - "received_debit" - ], - "type": "string" - } - }, - "required": [ - "balance_impact", - "created", - "currency", - "effective_at", - "financial_account", - "flow_type", - "id", - "livemode", - "object", - "transaction", - "type" - ], - "title": "TreasuryTransactionsResourceTransactionEntry", - "type": "object", - "x-expandableFields": [ - "balance_impact", - "flow_details", - "transaction" - ], - "x-resourceId": "treasury.transaction_entry" - }, - "treasury_financial_accounts_resource_aba_record": { - "description": "ABA Records contain U.S. bank account details per the ABA format.", - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "description": "The account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "account_number_last4": { - "description": "The last four characters of the account number.", - "maxLength": 5000, - "type": "string" - }, - "bank_name": { - "description": "Name of the bank.", - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "description": "Routing number for the account.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_holder_name", - "account_number_last4", - "bank_name", - "routing_number" - ], - "title": "TreasuryFinancialAccountsResourceABARecord", - "type": "object", - "x-expandableFields": [] - }, - "treasury_financial_accounts_resource_aba_toggle_settings": { - "description": "Toggle settings for enabling/disabling the ABA address feature", - "properties": { - "requested": { - "description": "Whether the FinancialAccount should have the Feature.", - "type": "boolean" - }, - "status": { - "description": "Whether the Feature is operational.", - "enum": [ - "active", - "pending", - "restricted" - ], - "type": "string" - }, - "status_details": { - "description": "Additional details; includes at least one entry when the status is not `active`.", - "items": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggles_setting_status_details" - }, - "type": "array" - } - }, - "required": [ - "requested", - "status", - "status_details" - ], - "title": "TreasuryFinancialAccountsResourceAbaToggleSettings", - "type": "object", - "x-expandableFields": [ - "status_details" - ] - }, - "treasury_financial_accounts_resource_ach_toggle_settings": { - "description": "Toggle settings for enabling/disabling an ACH specific feature", - "properties": { - "requested": { - "description": "Whether the FinancialAccount should have the Feature.", - "type": "boolean" - }, - "status": { - "description": "Whether the Feature is operational.", - "enum": [ - "active", - "pending", - "restricted" - ], - "type": "string" - }, - "status_details": { - "description": "Additional details; includes at least one entry when the status is not `active`.", - "items": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggles_setting_status_details" - }, - "type": "array" - } - }, - "required": [ - "requested", - "status", - "status_details" - ], - "title": "TreasuryFinancialAccountsResourceAchToggleSettings", - "type": "object", - "x-expandableFields": [ - "status_details" - ] - }, - "treasury_financial_accounts_resource_balance": { - "description": "Balance information for the FinancialAccount", - "properties": { - "cash": { - "additionalProperties": { - "type": "integer" - }, - "description": "Funds the user can spend right now.", - "type": "object" - }, - "inbound_pending": { - "additionalProperties": { - "type": "integer" - }, - "description": "Funds not spendable yet, but will become available at a later time.", - "type": "object" - }, - "outbound_pending": { - "additionalProperties": { - "type": "integer" - }, - "description": "Funds in the account, but not spendable because they are being held for pending outbound flows.", - "type": "object" - } - }, - "required": [ - "cash", - "inbound_pending", - "outbound_pending" - ], - "title": "TreasuryFinancialAccountsResourceBalance", - "type": "object", - "x-expandableFields": [] - }, - "treasury_financial_accounts_resource_closed_status_details": { - "description": "", - "properties": { - "reasons": { - "description": "The array that contains reasons for a FinancialAccount closure.", - "items": { - "enum": [ - "account_rejected", - "closed_by_platform", - "other" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "reasons" - ], - "title": "TreasuryFinancialAccountsResourceClosedStatusDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_financial_accounts_resource_financial_address": { - "description": "FinancialAddresses contain identifying information that resolves to a FinancialAccount.", - "properties": { - "aba": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_aba_record" - }, - "supported_networks": { - "description": "The list of networks that the address supports", - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "description": "The type of financial address", - "enum": [ - "aba" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "TreasuryFinancialAccountsResourceFinancialAddress", - "type": "object", - "x-expandableFields": [ - "aba" - ] - }, - "treasury_financial_accounts_resource_financial_addresses_features": { - "description": "Settings related to Financial Addresses features on a Financial Account", - "properties": { - "aba": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_aba_toggle_settings" - } - }, - "title": "TreasuryFinancialAccountsResourceFinancialAddressesFeatures", - "type": "object", - "x-expandableFields": [ - "aba" - ] - }, - "treasury_financial_accounts_resource_inbound_transfers": { - "description": "InboundTransfers contains inbound transfers features for a FinancialAccount.", - "properties": { - "ach": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_ach_toggle_settings" - } - }, - "title": "TreasuryFinancialAccountsResourceInboundTransfers", - "type": "object", - "x-expandableFields": [ - "ach" - ] - }, - "treasury_financial_accounts_resource_outbound_payments": { - "description": "Settings related to Outbound Payments features on a Financial Account", - "properties": { - "ach": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_ach_toggle_settings" - }, - "us_domestic_wire": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggle_settings" - } - }, - "title": "TreasuryFinancialAccountsResourceOutboundPayments", - "type": "object", - "x-expandableFields": [ - "ach", - "us_domestic_wire" - ] - }, - "treasury_financial_accounts_resource_outbound_transfers": { - "description": "OutboundTransfers contains outbound transfers features for a FinancialAccount.", - "properties": { - "ach": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_ach_toggle_settings" - }, - "us_domestic_wire": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggle_settings" - } - }, - "title": "TreasuryFinancialAccountsResourceOutboundTransfers", - "type": "object", - "x-expandableFields": [ - "ach", - "us_domestic_wire" - ] - }, - "treasury_financial_accounts_resource_platform_restrictions": { - "description": "Restrictions that a Connect Platform has placed on this FinancialAccount.", - "properties": { - "inbound_flows": { - "description": "Restricts all inbound money movement.", - "enum": [ - "restricted", - "unrestricted" - ], - "nullable": true, - "type": "string" - }, - "outbound_flows": { - "description": "Restricts all outbound money movement.", - "enum": [ - "restricted", - "unrestricted" - ], - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryFinancialAccountsResourcePlatformRestrictions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_financial_accounts_resource_status_details": { - "description": "", - "properties": { - "closed": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_closed_status_details" - } - ], - "description": "Details related to the closure of this FinancialAccount", - "nullable": true - } - }, - "title": "TreasuryFinancialAccountsResourceStatusDetails", - "type": "object", - "x-expandableFields": [ - "closed" - ] - }, - "treasury_financial_accounts_resource_toggle_settings": { - "description": "Toggle settings for enabling/disabling a feature", - "properties": { - "requested": { - "description": "Whether the FinancialAccount should have the Feature.", - "type": "boolean" - }, - "status": { - "description": "Whether the Feature is operational.", - "enum": [ - "active", - "pending", - "restricted" - ], - "type": "string" - }, - "status_details": { - "description": "Additional details; includes at least one entry when the status is not `active`.", - "items": { - "$ref": "#/components/schemas/treasury_financial_accounts_resource_toggles_setting_status_details" - }, - "type": "array" - } - }, - "required": [ - "requested", - "status", - "status_details" - ], - "title": "TreasuryFinancialAccountsResourceToggleSettings", - "type": "object", - "x-expandableFields": [ - "status_details" - ] - }, - "treasury_financial_accounts_resource_toggles_setting_status_details": { - "description": "Additional details on the FinancialAccount Features information.", - "properties": { - "code": { - "description": "Represents the reason why the status is `pending` or `restricted`.", - "enum": [ - "activating", - "capability_not_requested", - "financial_account_closed", - "rejected_other", - "rejected_unsupported_business", - "requirements_past_due", - "requirements_pending_verification", - "restricted_by_platform", - "restricted_other" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "resolution": { - "description": "Represents what the user should do, if anything, to activate the Feature.", - "enum": [ - "contact_stripe", - "provide_information", - "remove_restriction" - ], - "nullable": true, - "type": "string", - "x-stripeBypassValidation": true - }, - "restriction": { - "description": "The `platform_restrictions` that are restricting this Feature.", - "enum": [ - "inbound_flows", - "outbound_flows" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "code" - ], - "title": "TreasuryFinancialAccountsResourceTogglesSettingStatusDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_inbound_transfers_resource_failure_details": { - "description": "", - "properties": { - "code": { - "description": "Reason for the failure.", - "enum": [ - "account_closed", - "account_frozen", - "bank_account_restricted", - "bank_ownership_changed", - "debit_not_authorized", - "incorrect_account_holder_address", - "incorrect_account_holder_name", - "incorrect_account_holder_tax_id", - "insufficient_funds", - "invalid_account_number", - "invalid_currency", - "no_account", - "other" - ], - "type": "string" - } - }, - "required": [ - "code" - ], - "title": "TreasuryInboundTransfersResourceFailureDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_inbound_transfers_resource_inbound_transfer_resource_linked_flows": { - "description": "", - "properties": { - "received_debit": { - "description": "If funds for this flow were returned after the flow went to the `succeeded` state, this field contains a reference to the ReceivedDebit return.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryInboundTransfersResourceInboundTransferResourceLinkedFlows", - "type": "object", - "x-expandableFields": [] - }, - "treasury_inbound_transfers_resource_inbound_transfer_resource_status_transitions": { - "description": "", - "properties": { - "canceled_at": { - "description": "Timestamp describing when an InboundTransfer changed status to `canceled`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "failed_at": { - "description": "Timestamp describing when an InboundTransfer changed status to `failed`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "succeeded_at": { - "description": "Timestamp describing when an InboundTransfer changed status to `succeeded`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "TreasuryInboundTransfersResourceInboundTransferResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_payments_resource_ach_tracking_details": { - "description": "", - "properties": { - "trace_id": { - "description": "ACH trace ID of the OutboundPayment for payments sent over the `ach` network.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "trace_id" - ], - "title": "TreasuryOutboundPaymentsResourceACHTrackingDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_payments_resource_outbound_payment_resource_end_user_details": { - "description": "", - "properties": { - "ip_address": { - "description": "IP address of the user initiating the OutboundPayment. Set if `present` is set to `true`. IP address collection is required for risk and compliance reasons. This will be used to help determine if the OutboundPayment is authorized or should be blocked.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "present": { - "description": "`true` if the OutboundPayment creation request is being made on behalf of an end user by a platform. Otherwise, `false`.", - "type": "boolean" - } - }, - "required": [ - "present" - ], - "title": "TreasuryOutboundPaymentsResourceOutboundPaymentResourceEndUserDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_payments_resource_outbound_payment_resource_status_transitions": { - "description": "", - "properties": { - "canceled_at": { - "description": "Timestamp describing when an OutboundPayment changed status to `canceled`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "failed_at": { - "description": "Timestamp describing when an OutboundPayment changed status to `failed`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "posted_at": { - "description": "Timestamp describing when an OutboundPayment changed status to `posted`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "returned_at": { - "description": "Timestamp describing when an OutboundPayment changed status to `returned`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "TreasuryOutboundPaymentsResourceOutboundPaymentResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_payments_resource_outbound_payment_resource_tracking_details": { - "description": "", - "properties": { - "ach": { - "$ref": "#/components/schemas/treasury_outbound_payments_resource_ach_tracking_details" - }, - "type": { - "description": "The US bank account network used to send funds.", - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "us_domestic_wire": { - "$ref": "#/components/schemas/treasury_outbound_payments_resource_us_domestic_wire_tracking_details" - } - }, - "required": [ - "type" - ], - "title": "TreasuryOutboundPaymentsResourceOutboundPaymentResourceTrackingDetails", - "type": "object", - "x-expandableFields": [ - "ach", - "us_domestic_wire" - ] - }, - "treasury_outbound_payments_resource_returned_status": { - "description": "", - "properties": { - "code": { - "description": "Reason for the return.", - "enum": [ - "account_closed", - "account_frozen", - "bank_account_restricted", - "bank_ownership_changed", - "declined", - "incorrect_account_holder_name", - "invalid_account_number", - "invalid_currency", - "no_account", - "other" - ], - "type": "string" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "code", - "transaction" - ], - "title": "TreasuryOutboundPaymentsResourceReturnedStatus", - "type": "object", - "x-expandableFields": [ - "transaction" - ] - }, - "treasury_outbound_payments_resource_us_domestic_wire_tracking_details": { - "description": "", - "properties": { - "imad": { - "description": "IMAD of the OutboundPayment for payments sent over the `us_domestic_wire` network.", - "maxLength": 5000, - "type": "string" - }, - "omad": { - "description": "OMAD of the OutboundPayment for payments sent over the `us_domestic_wire` network.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "imad" - ], - "title": "TreasuryOutboundPaymentsResourceUSDomesticWireTrackingDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_transfers_resource_ach_tracking_details": { - "description": "", - "properties": { - "trace_id": { - "description": "ACH trace ID of the OutboundTransfer for transfers sent over the `ach` network.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "trace_id" - ], - "title": "TreasuryOutboundTransfersResourceACHTrackingDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_transfers_resource_outbound_transfer_resource_tracking_details": { - "description": "", - "properties": { - "ach": { - "$ref": "#/components/schemas/treasury_outbound_transfers_resource_ach_tracking_details" - }, - "type": { - "description": "The US bank account network used to send funds.", - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "us_domestic_wire": { - "$ref": "#/components/schemas/treasury_outbound_transfers_resource_us_domestic_wire_tracking_details" - } - }, - "required": [ - "type" - ], - "title": "TreasuryOutboundTransfersResourceOutboundTransferResourceTrackingDetails", - "type": "object", - "x-expandableFields": [ - "ach", - "us_domestic_wire" - ] - }, - "treasury_outbound_transfers_resource_returned_details": { - "description": "", - "properties": { - "code": { - "description": "Reason for the return.", - "enum": [ - "account_closed", - "account_frozen", - "bank_account_restricted", - "bank_ownership_changed", - "declined", - "incorrect_account_holder_name", - "invalid_account_number", - "invalid_currency", - "no_account", - "other" - ], - "type": "string" - }, - "transaction": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "$ref": "#/components/schemas/treasury.transaction" - } - ], - "description": "The Transaction associated with this object.", - "x-expansionResources": { - "oneOf": [ - { - "$ref": "#/components/schemas/treasury.transaction" - } - ] - } - } - }, - "required": [ - "code", - "transaction" - ], - "title": "TreasuryOutboundTransfersResourceReturnedDetails", - "type": "object", - "x-expandableFields": [ - "transaction" - ] - }, - "treasury_outbound_transfers_resource_status_transitions": { - "description": "", - "properties": { - "canceled_at": { - "description": "Timestamp describing when an OutboundTransfer changed status to `canceled`", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "failed_at": { - "description": "Timestamp describing when an OutboundTransfer changed status to `failed`", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "posted_at": { - "description": "Timestamp describing when an OutboundTransfer changed status to `posted`", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "returned_at": { - "description": "Timestamp describing when an OutboundTransfer changed status to `returned`", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "TreasuryOutboundTransfersResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_outbound_transfers_resource_us_domestic_wire_tracking_details": { - "description": "", - "properties": { - "imad": { - "description": "IMAD of the OutboundTransfer for transfers sent over the `us_domestic_wire` network.", - "maxLength": 5000, - "type": "string" - }, - "omad": { - "description": "OMAD of the OutboundTransfer for transfers sent over the `us_domestic_wire` network.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "imad" - ], - "title": "TreasuryOutboundTransfersResourceUSDomesticWireTrackingDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_received_credits_resource_linked_flows": { - "description": "", - "properties": { - "credit_reversal": { - "description": "The CreditReversal created as a result of this ReceivedCredit being reversed.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuing_authorization": { - "description": "Set if the ReceivedCredit was created due to an [Issuing Authorization](https://stripe.com/docs/api#issuing_authorizations) object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuing_transaction": { - "description": "Set if the ReceivedCredit is also viewable as an [Issuing transaction](https://stripe.com/docs/api#issuing_transactions) object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "source_flow": { - "description": "ID of the source flow. Set if `network` is `stripe` and the source flow is visible to the user. Examples of source flows include OutboundPayments, payouts, or CreditReversals.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "source_flow_details": { - "anyOf": [ - { - "$ref": "#/components/schemas/treasury_received_credits_resource_source_flows_details" - } - ], - "description": "The expandable object of the source flow.", - "nullable": true - }, - "source_flow_type": { - "description": "The type of flow that originated the ReceivedCredit (for example, `outbound_payment`).", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryReceivedCreditsResourceLinkedFlows", - "type": "object", - "x-expandableFields": [ - "source_flow_details" - ] - }, - "treasury_received_credits_resource_reversal_details": { - "description": "", - "properties": { - "deadline": { - "description": "Time before which a ReceivedCredit can be reversed.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "restricted_reason": { - "description": "Set if a ReceivedCredit cannot be reversed.", - "enum": [ - "already_reversed", - "deadline_passed", - "network_restricted", - "other", - "source_flow_restricted" - ], - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryReceivedCreditsResourceReversalDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_received_credits_resource_source_flows_details": { - "description": "", - "properties": { - "credit_reversal": { - "$ref": "#/components/schemas/treasury.credit_reversal" - }, - "outbound_payment": { - "$ref": "#/components/schemas/treasury.outbound_payment" - }, - "payout": { - "$ref": "#/components/schemas/payout" - }, - "type": { - "description": "The type of the source flow that originated the ReceivedCredit.", - "enum": [ - "credit_reversal", - "other", - "outbound_payment", - "payout" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "TreasuryReceivedCreditsResourceSourceFlowsDetails", - "type": "object", - "x-expandableFields": [ - "credit_reversal", - "outbound_payment", - "payout" - ] - }, - "treasury_received_credits_resource_status_transitions": { - "description": "", - "properties": { - "posted_at": { - "description": "Timestamp describing when the CreditReversal changed status to `posted`", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "TreasuryReceivedCreditsResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_received_debits_resource_debit_reversal_linked_flows": { - "description": "", - "properties": { - "issuing_dispute": { - "description": "Set if there is an Issuing dispute associated with the DebitReversal.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryReceivedDebitsResourceDebitReversalLinkedFlows", - "type": "object", - "x-expandableFields": [] - }, - "treasury_received_debits_resource_linked_flows": { - "description": "", - "properties": { - "debit_reversal": { - "description": "The DebitReversal created as a result of this ReceivedDebit being reversed.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "inbound_transfer": { - "description": "Set if the ReceivedDebit is associated with an InboundTransfer's return of funds.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuing_authorization": { - "description": "Set if the ReceivedDebit was created due to an [Issuing Authorization](https://stripe.com/docs/api#issuing_authorizations) object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "issuing_transaction": { - "description": "Set if the ReceivedDebit is also viewable as an [Issuing Dispute](https://stripe.com/docs/api#issuing_disputes) object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "payout": { - "description": "Set if the ReceivedDebit was created due to a [Payout](https://stripe.com/docs/api#payouts) object.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryReceivedDebitsResourceLinkedFlows", - "type": "object", - "x-expandableFields": [] - }, - "treasury_received_debits_resource_reversal_details": { - "description": "", - "properties": { - "deadline": { - "description": "Time before which a ReceivedDebit can be reversed.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "restricted_reason": { - "description": "Set if a ReceivedDebit can't be reversed.", - "enum": [ - "already_reversed", - "deadline_passed", - "network_restricted", - "other", - "source_flow_restricted" - ], - "nullable": true, - "type": "string" - } - }, - "title": "TreasuryReceivedDebitsResourceReversalDetails", - "type": "object", - "x-expandableFields": [] - }, - "treasury_received_debits_resource_status_transitions": { - "description": "", - "properties": { - "completed_at": { - "description": "Timestamp describing when the DebitReversal changed status to `completed`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "TreasuryReceivedDebitsResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_shared_resource_billing_details": { - "description": "", - "properties": { - "address": { - "$ref": "#/components/schemas/address" - }, - "email": { - "description": "Email address.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "name": { - "description": "Full name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "required": [ - "address" - ], - "title": "TreasurySharedResourceBillingDetails", - "type": "object", - "x-expandableFields": [ - "address" - ] - }, - "treasury_shared_resource_initiating_payment_method_details_initiating_payment_method_details": { - "description": "", - "properties": { - "balance": { - "description": "Set when `type` is `balance`.", - "enum": [ - "payments" - ], - "type": "string" - }, - "billing_details": { - "$ref": "#/components/schemas/treasury_shared_resource_billing_details" - }, - "financial_account": { - "$ref": "#/components/schemas/received_payment_method_details_financial_account" - }, - "issuing_card": { - "description": "Set when `type` is `issuing_card`. This is an [Issuing Card](https://stripe.com/docs/api#issuing_cards) ID.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "Polymorphic type matching the originating money movement's source. This can be an external account, a Stripe balance, or a FinancialAccount.", - "enum": [ - "balance", - "financial_account", - "issuing_card", - "stripe", - "us_bank_account" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "$ref": "#/components/schemas/treasury_shared_resource_initiating_payment_method_details_us_bank_account" - } - }, - "required": [ - "billing_details", - "type" - ], - "title": "TreasurySharedResourceInitiatingPaymentMethodDetailsInitiatingPaymentMethodDetails", - "type": "object", - "x-expandableFields": [ - "billing_details", - "financial_account", - "us_bank_account" - ] - }, - "treasury_shared_resource_initiating_payment_method_details_us_bank_account": { - "description": "", - "properties": { - "bank_name": { - "description": "Bank name.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "last4": { - "description": "The last four digits of the bank account number.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "routing_number": { - "description": "The routing number for the bank account.", - "maxLength": 5000, - "nullable": true, - "type": "string" - } - }, - "title": "TreasurySharedResourceInitiatingPaymentMethodDetailsUSBankAccount", - "type": "object", - "x-expandableFields": [] - }, - "treasury_transactions_resource_abstract_transaction_resource_status_transitions": { - "description": "", - "properties": { - "posted_at": { - "description": "Timestamp describing when the Transaction changed status to `posted`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - }, - "void_at": { - "description": "Timestamp describing when the Transaction changed status to `void`.", - "format": "unix-time", - "nullable": true, - "type": "integer" - } - }, - "title": "TreasuryTransactionsResourceAbstractTransactionResourceStatusTransitions", - "type": "object", - "x-expandableFields": [] - }, - "treasury_transactions_resource_balance_impact": { - "description": "Change to a FinancialAccount's balance", - "properties": { - "cash": { - "description": "The change made to funds the user can spend right now.", - "type": "integer" - }, - "inbound_pending": { - "description": "The change made to funds that are not spendable yet, but will become available at a later time.", - "type": "integer" - }, - "outbound_pending": { - "description": "The change made to funds in the account, but not spendable because they are being held for pending outbound flows.", - "type": "integer" - } - }, - "required": [ - "cash", - "inbound_pending", - "outbound_pending" - ], - "title": "TreasuryTransactionsResourceBalanceImpact", - "type": "object", - "x-expandableFields": [] - }, - "treasury_transactions_resource_flow_details": { - "description": "", - "properties": { - "credit_reversal": { - "$ref": "#/components/schemas/treasury.credit_reversal" - }, - "debit_reversal": { - "$ref": "#/components/schemas/treasury.debit_reversal" - }, - "inbound_transfer": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - }, - "issuing_authorization": { - "$ref": "#/components/schemas/issuing.authorization" - }, - "outbound_payment": { - "$ref": "#/components/schemas/treasury.outbound_payment" - }, - "outbound_transfer": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - }, - "received_credit": { - "$ref": "#/components/schemas/treasury.received_credit" - }, - "received_debit": { - "$ref": "#/components/schemas/treasury.received_debit" - }, - "type": { - "description": "Type of the flow that created the Transaction. Set to the same value as `flow_type`.", - "enum": [ - "credit_reversal", - "debit_reversal", - "inbound_transfer", - "issuing_authorization", - "other", - "outbound_payment", - "outbound_transfer", - "received_credit", - "received_debit" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "TreasuryTransactionsResourceFlowDetails", - "type": "object", - "x-expandableFields": [ - "credit_reversal", - "debit_reversal", - "inbound_transfer", - "issuing_authorization", - "outbound_payment", - "outbound_transfer", - "received_credit", - "received_debit" - ] - }, - "us_bank_account_networks": { - "description": "", - "properties": { - "preferred": { - "description": "The preferred network.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "supported": { - "description": "All supported networks.", - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "supported" - ], - "title": "us_bank_account_networks", - "type": "object", - "x-expandableFields": [] - }, - "usage_record": { - "description": "Usage records allow you to report customer usage and metrics to Stripe for\nmetered billing of subscription prices.\n\nRelated guide: [Metered billing](https://stripe.com/docs/billing/subscriptions/metered-billing)\n\nThis is our legacy usage-based billing API. See the [updated usage-based billing docs](https://docs.stripe.com/billing/subscriptions/usage-based).", - "properties": { - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "usage_record" - ], - "type": "string" - }, - "quantity": { - "description": "The usage quantity for the specified date.", - "type": "integer" - }, - "subscription_item": { - "description": "The ID of the subscription item this usage record contains data for.", - "maxLength": 5000, - "type": "string" - }, - "timestamp": { - "description": "The timestamp when this usage occurred.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "id", - "livemode", - "object", - "quantity", - "subscription_item", - "timestamp" - ], - "title": "UsageRecord", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "usage_record" - }, - "usage_record_summary": { - "description": "", - "properties": { - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "description": "The invoice in which this usage period has been billed for.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "usage_record_summary" - ], - "type": "string" - }, - "period": { - "$ref": "#/components/schemas/period" - }, - "subscription_item": { - "description": "The ID of the subscription item this summary is describing.", - "maxLength": 5000, - "type": "string" - }, - "total_usage": { - "description": "The total usage within this usage period.", - "type": "integer" - } - }, - "required": [ - "id", - "livemode", - "object", - "period", - "subscription_item", - "total_usage" - ], - "title": "UsageRecordSummary", - "type": "object", - "x-expandableFields": [ - "period" - ], - "x-resourceId": "usage_record_summary" - }, - "verification_session_redaction": { - "description": "", - "properties": { - "status": { - "description": "Indicates whether this object and its related objects have been redacted or not.", - "enum": [ - "processing", - "redacted" - ], - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "verification_session_redaction", - "type": "object", - "x-expandableFields": [] - }, - "webhook_endpoint": { - "description": "You can configure [webhook endpoints](https://docs.stripe.com/webhooks/) via the API to be\nnotified about events that happen in your Stripe account or connected\naccounts.\n\nMost users configure webhooks from [the dashboard](https://dashboard.stripe.com/webhooks), which provides a user interface for registering and testing your webhook endpoints.\n\nRelated guide: [Setting up webhooks](https://docs.stripe.com/webhooks/configure)", - "properties": { - "api_version": { - "description": "The API version events are rendered as for this webhook endpoint.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "application": { - "description": "The ID of the associated Connect application.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "created": { - "description": "Time at which the object was created. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "description": { - "description": "An optional description of what the webhook is used for.", - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "enabled_events": { - "description": "The list of events to enable for this endpoint. `['*']` indicates that all events are enabled, except those that require explicit selection.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "Unique identifier for the object.", - "maxLength": 5000, - "type": "string" - }, - "livemode": { - "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", - "type": "boolean" - }, - "metadata": { - "additionalProperties": { - "maxLength": 500, - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "webhook_endpoint" - ], - "type": "string" - }, - "secret": { - "description": "The endpoint's secret, used to generate [webhook signatures](https://docs.stripe.com/webhooks/signatures). Only returned at creation.", - "maxLength": 5000, - "type": "string" - }, - "status": { - "description": "The status of the webhook. It can be `enabled` or `disabled`.", - "maxLength": 5000, - "type": "string" - }, - "url": { - "description": "The URL of the webhook endpoint.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "created", - "enabled_events", - "id", - "livemode", - "metadata", - "object", - "status", - "url" - ], - "title": "NotificationWebhookEndpoint", - "type": "object", - "x-expandableFields": [], - "x-resourceId": "webhook_endpoint" - } - }, - "securitySchemes": { - "basicAuth": { - "description": "Basic HTTP authentication. Allowed headers-- Authorization: Basic | Authorization: Basic ", - "scheme": "basic", - "type": "http" - }, - "bearerAuth": { - "bearerFormat": "auth-scheme", - "description": "Bearer HTTP authentication. Allowed headers-- Authorization: Bearer ", - "scheme": "bearer", - "type": "http" - } - } - }, - "info": { - "contact": { - "email": "dev-platform@stripe.com", - "name": "Stripe Dev Platform Team", - "url": "https://stripe.com" - }, - "description": "The Stripe REST API. Please see https://stripe.com/docs/api for more details.", - "termsOfService": "https://stripe.com/us/terms/", - "title": "Stripe API", - "version": "2024-06-20", - "x-stripeSpecFilename": "spec3" - }, - "openapi": "3.0.0", - "paths": { - "/v1/account": { - "get": { - "description": "

Retrieves the details of an account.

", - "operationId": "GetAccount", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/account_links": { - "post": { - "description": "

Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.

", - "operationId": "PostAccountLinks", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "collection_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account": { - "description": "The identifier of the account to create an account link for.", - "maxLength": 5000, - "type": "string" - }, - "collect": { - "description": "The collect parameter is deprecated. Use `collection_options` instead.", - "enum": [ - "currently_due", - "eventually_due" - ], - "type": "string" - }, - "collection_options": { - "description": "Specifies the requirements that Stripe collects from connected accounts in the Connect Onboarding flow.", - "properties": { - "fields": { - "enum": [ - "currently_due", - "eventually_due" - ], - "type": "string" - }, - "future_requirements": { - "enum": [ - "include", - "omit" - ], - "type": "string" - } - }, - "required": [ - "fields" - ], - "title": "collection_options_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "refresh_url": { - "description": "The URL the user will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid. The URL you specify should attempt to generate a new account link with the same parameters used to create the original account link, then redirect the user to the new account link's URL so they can continue with Connect Onboarding. If a new account link cannot be generated or the redirect fails you should display a useful error to the user.", - "type": "string" - }, - "return_url": { - "description": "The URL that the user will be redirected to upon leaving or completing the linked flow.", - "type": "string" - }, - "type": { - "description": "The type of account link the user is requesting. Possible values are `account_onboarding` or `account_update`.", - "enum": [ - "account_onboarding", - "account_update" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "account", - "type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/account_sessions": { - "post": { - "description": "

Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access.

", - "operationId": "PostAccountSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "components": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account": { - "description": "The identifier of the account to create an Account Session for.", - "type": "string" - }, - "components": { - "description": "Each key of the dictionary represents an embedded component, and each embedded component maps to its configuration (e.g. whether it has been enabled or not).", - "properties": { - "account_management": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "external_account_collection": { - "type": "boolean" - } - }, - "title": "account_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "account_config_param", - "type": "object" - }, - "account_onboarding": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "external_account_collection": { - "type": "boolean" - } - }, - "title": "account_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "account_config_param", - "type": "object" - }, - "balances": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "edit_payout_schedule": { - "type": "boolean" - }, - "external_account_collection": { - "type": "boolean" - }, - "instant_payouts": { - "type": "boolean" - }, - "standard_payouts": { - "type": "boolean" - } - }, - "title": "payouts_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payouts_config_param", - "type": "object" - }, - "documents": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": {}, - "title": "base_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "base_config_param", - "type": "object" - }, - "notification_banner": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "external_account_collection": { - "type": "boolean" - } - }, - "title": "account_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "account_config_param", - "type": "object" - }, - "payment_details": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "capture_payments": { - "type": "boolean" - }, - "destination_on_behalf_of_charge_management": { - "type": "boolean" - }, - "dispute_management": { - "type": "boolean" - }, - "refund_management": { - "type": "boolean" - } - }, - "title": "payments_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payments_config_param", - "type": "object" - }, - "payments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "capture_payments": { - "type": "boolean" - }, - "destination_on_behalf_of_charge_management": { - "type": "boolean" - }, - "dispute_management": { - "type": "boolean" - }, - "refund_management": { - "type": "boolean" - } - }, - "title": "payments_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payments_config_param", - "type": "object" - }, - "payouts": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "edit_payout_schedule": { - "type": "boolean" - }, - "external_account_collection": { - "type": "boolean" - }, - "instant_payouts": { - "type": "boolean" - }, - "standard_payouts": { - "type": "boolean" - } - }, - "title": "payouts_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payouts_config_param", - "type": "object" - }, - "payouts_list": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": {}, - "title": "base_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "base_config_param", - "type": "object" - }, - "tax_registrations": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": {}, - "title": "base_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "base_config_param", - "type": "object" - }, - "tax_settings": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": {}, - "title": "base_features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "base_config_param", - "type": "object" - } - }, - "title": "account_session_create_components_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "account", - "components" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts": { - "get": { - "description": "

Returns a list of accounts connected to your platform via Connect. If you’re not a platform, the list is empty.

", - "operationId": "GetAccounts", - "parameters": [ - { - "description": "Only return connected accounts that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/accounts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "AccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

With Connect, you can create Stripe accounts for your users.\nTo do this, you’ll first need to register your platform.

\n\n

If you’ve already collected information for your connected accounts, you can prefill that information when\ncreating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding.\nYou can prefill any information on the account.

", - "operationId": "PostAccounts", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "capabilities": { - "explode": true, - "style": "deepObject" - }, - "company": { - "explode": true, - "style": "deepObject" - }, - "controller": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "individual": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "settings": { - "explode": true, - "style": "deepObject" - }, - "tos_acceptance": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_token": { - "description": "An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account.", - "maxLength": 5000, - "type": "string" - }, - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "documents": { - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "external_account_payout_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "business_profile": { - "description": "Business information about the account.", - "properties": { - "annual_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "fiscal_year_end": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "fiscal_year_end" - ], - "title": "annual_revenue_specs", - "type": "object" - }, - "estimated_worker_count": { - "type": "integer" - }, - "mcc": { - "maxLength": 4, - "type": "string" - }, - "monthly_estimated_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "monthly_estimated_revenue_specs", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 40000, - "type": "string" - }, - "support_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "support_email": { - "type": "string" - }, - "support_phone": { - "maxLength": 5000, - "type": "string" - }, - "support_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "url": { - "type": "string" - } - }, - "title": "business_profile_specs", - "type": "object" - }, - "business_type": { - "description": "The business type. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "enum": [ - "company", - "government_entity", - "individual", - "non_profit" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "capabilities": { - "description": "Each key of the dictionary represents a capability, and each capability\nmaps to its settings (for example, whether it has been requested or not). Each\ncapability is inactive until you have provided its specific\nrequirements and Stripe has verified them. An account might have some\nof its requested capabilities be active and some be inactive.\n\nRequired when [account.controller.stripe_dashboard.type](/api/accounts/create#create_account-controller-dashboard-type)\nis `none`, which includes Custom accounts.", - "properties": { - "acss_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "affirm_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "afterpay_clearpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "amazon_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "au_becs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bacs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bancontact_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "blik_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "boleto_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_issuing": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cartes_bancaires_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cashapp_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "eps_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "fpx_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "gb_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "giropay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "grabpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "ideal_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "india_international_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jcb_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jp_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "klarna_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "konbini_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "legacy_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "link_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mobilepay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "multibanco_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mx_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "oxxo_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "p24_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "paynow_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "promptpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "revolut_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sofort_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "swish_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_k": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_misc": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "transfers": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "treasury": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "twint_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_account_ach_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "zip_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - } - }, - "title": "capabilities_param", - "type": "object" - }, - "company": { - "description": "Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "directors_provided": { - "type": "boolean" - }, - "executives_provided": { - "type": "boolean" - }, - "export_license_id": { - "maxLength": 5000, - "type": "string" - }, - "export_purpose_code": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "name_kana": { - "maxLength": 100, - "type": "string" - }, - "name_kanji": { - "maxLength": 100, - "type": "string" - }, - "owners_provided": { - "type": "boolean" - }, - "ownership_declaration": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_ownership_declaration", - "type": "object" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "registration_number": { - "maxLength": 5000, - "type": "string" - }, - "structure": { - "enum": [ - "", - "free_zone_establishment", - "free_zone_llc", - "government_instrumentality", - "governmental_unit", - "incorporated_non_profit", - "incorporated_partnership", - "limited_liability_partnership", - "llc", - "multi_member_llc", - "private_company", - "private_corporation", - "private_partnership", - "public_company", - "public_corporation", - "public_partnership", - "registered_charity", - "single_member_llc", - "sole_establishment", - "sole_proprietorship", - "tax_exempt_government_instrumentality", - "unincorporated_association", - "unincorporated_non_profit", - "unincorporated_partnership" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "tax_id": { - "maxLength": 5000, - "type": "string" - }, - "tax_id_registrar": { - "maxLength": 5000, - "type": "string" - }, - "vat_id": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "verification_document_specs", - "type": "object" - } - }, - "title": "verification_specs", - "type": "object" - } - }, - "title": "company_specs", - "type": "object" - }, - "controller": { - "description": "A hash of configuration describing the account controller's attributes.", - "properties": { - "fees": { - "properties": { - "payer": { - "enum": [ - "account", - "application" - ], - "type": "string" - } - }, - "title": "controller_fees_specs", - "type": "object" - }, - "losses": { - "properties": { - "payments": { - "enum": [ - "application", - "stripe" - ], - "type": "string" - } - }, - "title": "controller_losses_specs", - "type": "object" - }, - "requirement_collection": { - "enum": [ - "application", - "stripe" - ], - "type": "string" - }, - "stripe_dashboard": { - "properties": { - "type": { - "enum": [ - "express", - "full", - "none" - ], - "type": "string" - } - }, - "title": "controller_dashboard_specs", - "type": "object" - } - }, - "title": "controller_specs", - "type": "object" - }, - "country": { - "description": "The country in which the account holder resides, or in which the business is legally established. This should be an ISO 3166-1 alpha-2 country code. For example, if you are in the United States and the business for which you're creating an account is legally represented in Canada, you would use `CA` as the country for the account being created. Available countries include [Stripe's global markets](https://stripe.com/global) as well as countries where [cross-border payouts](https://stripe.com/docs/connect/cross-border-payouts) are supported.", - "maxLength": 5000, - "type": "string" - }, - "default_currency": { - "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts).", - "type": "string" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_license": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_memorandum_of_association": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_ministerial_decree": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_registration_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_tax_id_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "proof_of_registration": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "documents_specs", - "type": "object" - }, - "email": { - "description": "The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "A card or bank account to attach to the account for receiving [payouts](/connect/bank-debit-card-payouts) (you won’t be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](/js), or a dictionary, as documented in the `external_account` parameter for [bank account](/api#account_create_bank_account) creation.

By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](/api#account_create_bank_account) or [card creation](/api#account_create_card) APIs. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "individual": { - "description": "Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "type": "string" - }, - "first_name": { - "maxLength": 100, - "type": "string" - }, - "first_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 300, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "gender": { - "type": "string" - }, - "id_number": { - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "maxLength": 100, - "type": "string" - }, - "last_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "type": "string" - }, - "political_exposure": { - "enum": [ - "existing", - "none" - ], - "type": "string" - }, - "registered_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "individual_relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "title": "individual_specs", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "settings": { - "description": "Options for customizing how the account functions within Stripe.", - "properties": { - "bacs_debit_payments": { - "properties": { - "display_name": { - "type": "string" - } - }, - "title": "bacs_debit_payments_specs", - "type": "object" - }, - "branding": { - "properties": { - "icon": { - "maxLength": 5000, - "type": "string" - }, - "logo": { - "maxLength": 5000, - "type": "string" - }, - "primary_color": { - "maxLength": 5000, - "type": "string" - }, - "secondary_color": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "branding_settings_specs", - "type": "object" - }, - "card_issuing": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "card_issuing_settings_specs", - "type": "object" - }, - "card_payments": { - "properties": { - "decline_on": { - "properties": { - "avs_failure": { - "type": "boolean" - }, - "cvc_failure": { - "type": "boolean" - } - }, - "title": "decline_charge_on_specs", - "type": "object" - }, - "statement_descriptor_prefix": { - "maxLength": 10, - "type": "string" - }, - "statement_descriptor_prefix_kana": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_prefix_kanji": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "card_payments_settings_specs", - "type": "object" - }, - "payments": { - "properties": { - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kana": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kanji": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payments_settings_specs", - "type": "object" - }, - "payouts": { - "properties": { - "debit_negative_balances": { - "type": "boolean" - }, - "schedule": { - "properties": { - "delay_days": { - "anyOf": [ - { - "enum": [ - "minimum" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "interval": { - "enum": [ - "daily", - "manual", - "monthly", - "weekly" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "monthly_anchor": { - "type": "integer" - }, - "weekly_anchor": { - "enum": [ - "friday", - "monday", - "saturday", - "sunday", - "thursday", - "tuesday", - "wednesday" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "transfer_schedule_specs", - "type": "object" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payout_settings_specs", - "type": "object" - }, - "treasury": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "treasury_settings_specs", - "type": "object" - } - }, - "title": "settings_specs", - "type": "object" - }, - "tos_acceptance": { - "description": "Details on the account's acceptance of the [Stripe Services Agreement](/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty.", - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "service_agreement": { - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "tos_acceptance_specs", - "type": "object" - }, - "type": { - "description": "The type of Stripe account to create. May be one of `custom`, `express` or `standard`.", - "enum": [ - "custom", - "express", - "standard" - ], - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}": { - "delete": { - "description": "

With Connect, you can delete accounts you manage.

\n\n

Test-mode accounts can be deleted at any time.

\n\n

Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all balances are zero.

\n\n

If you want to delete your own account, use the account information tab in your account settings instead.

", - "operationId": "DeleteAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the details of an account.

", - "operationId": "GetAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a connected account by setting the values of the parameters passed. Any parameters not provided are\nleft unchanged.

\n\n

For accounts where controller.requirement_collection\nis application, which includes Custom accounts, you can update any information on the account.

\n\n

For accounts where controller.requirement_collection\nis stripe, which includes Standard and Express accounts, you can update all information until you create\nan Account Link or Account Session to start Connect onboarding,\nafter which some properties can no longer be updated.

\n\n

To update your own account, use the Dashboard. Refer to our\nConnect documentation to learn more about updating accounts.

", - "operationId": "PostAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "capabilities": { - "explode": true, - "style": "deepObject" - }, - "company": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "individual": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "settings": { - "explode": true, - "style": "deepObject" - }, - "tos_acceptance": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_token": { - "description": "An [account token](https://stripe.com/docs/api#create_account_token), used to securely provide details to the account.", - "maxLength": 5000, - "type": "string" - }, - "business_profile": { - "description": "Business information about the account.", - "properties": { - "annual_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "fiscal_year_end": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "fiscal_year_end" - ], - "title": "annual_revenue_specs", - "type": "object" - }, - "estimated_worker_count": { - "type": "integer" - }, - "mcc": { - "maxLength": 4, - "type": "string" - }, - "monthly_estimated_revenue": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "monthly_estimated_revenue_specs", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 40000, - "type": "string" - }, - "support_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "support_email": { - "type": "string" - }, - "support_phone": { - "maxLength": 5000, - "type": "string" - }, - "support_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "url": { - "type": "string" - } - }, - "title": "business_profile_specs", - "type": "object" - }, - "business_type": { - "description": "The business type. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "enum": [ - "company", - "government_entity", - "individual", - "non_profit" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "capabilities": { - "description": "Each key of the dictionary represents a capability, and each capability\nmaps to its settings (for example, whether it has been requested or not). Each\ncapability is inactive until you have provided its specific\nrequirements and Stripe has verified them. An account might have some\nof its requested capabilities be active and some be inactive.\n\nRequired when [account.controller.stripe_dashboard.type](/api/accounts/create#create_account-controller-dashboard-type)\nis `none`, which includes Custom accounts.", - "properties": { - "acss_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "affirm_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "afterpay_clearpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "amazon_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "au_becs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bacs_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bancontact_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "blik_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "boleto_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_issuing": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "card_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cartes_bancaires_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "cashapp_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "eps_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "fpx_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "gb_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "giropay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "grabpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "ideal_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "india_international_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jcb_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "jp_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "klarna_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "konbini_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "legacy_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "link_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mobilepay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "multibanco_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "mx_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "oxxo_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "p24_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "paynow_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "promptpay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "revolut_pay_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sepa_debit_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "sofort_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "swish_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_k": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "tax_reporting_us_1099_misc": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "transfers": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "treasury": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "twint_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_account_ach_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "us_bank_transfer_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - }, - "zip_payments": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "title": "capability_param", - "type": "object" - } - }, - "title": "capabilities_param", - "type": "object" - }, - "company": { - "description": "Information about the company or business. This field is available for any `business_type`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "directors_provided": { - "type": "boolean" - }, - "executives_provided": { - "type": "boolean" - }, - "export_license_id": { - "maxLength": 5000, - "type": "string" - }, - "export_purpose_code": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "name_kana": { - "maxLength": 100, - "type": "string" - }, - "name_kanji": { - "maxLength": 100, - "type": "string" - }, - "owners_provided": { - "type": "boolean" - }, - "ownership_declaration": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_ownership_declaration", - "type": "object" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "registration_number": { - "maxLength": 5000, - "type": "string" - }, - "structure": { - "enum": [ - "", - "free_zone_establishment", - "free_zone_llc", - "government_instrumentality", - "governmental_unit", - "incorporated_non_profit", - "incorporated_partnership", - "limited_liability_partnership", - "llc", - "multi_member_llc", - "private_company", - "private_corporation", - "private_partnership", - "public_company", - "public_corporation", - "public_partnership", - "registered_charity", - "single_member_llc", - "sole_establishment", - "sole_proprietorship", - "tax_exempt_government_instrumentality", - "unincorporated_association", - "unincorporated_non_profit", - "unincorporated_partnership" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "tax_id": { - "maxLength": 5000, - "type": "string" - }, - "tax_id_registrar": { - "maxLength": 5000, - "type": "string" - }, - "vat_id": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "verification_document_specs", - "type": "object" - } - }, - "title": "verification_specs", - "type": "object" - } - }, - "title": "company_specs", - "type": "object" - }, - "default_currency": { - "description": "Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://docs.stripe.com/payouts).", - "type": "string" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_license": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_memorandum_of_association": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_ministerial_decree": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_registration_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "company_tax_id_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "proof_of_registration": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "documents_specs", - "type": "object" - }, - "email": { - "description": "The email address of the account holder. This is only to make the account easier to identify to you. If [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts, Stripe doesn't email the account without your consent.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "A card or bank account to attach to the account for receiving [payouts](/connect/bank-debit-card-payouts) (you won’t be able to use it for top-ups). You can provide either a token, like the ones returned by [Stripe.js](/js), or a dictionary, as documented in the `external_account` parameter for [bank account](/api#account_create_bank_account) creation.

By default, providing an external account sets it as the new default external account for its currency, and deletes the old default if one exists. To add additional external accounts without replacing the existing default for the currency, use the [bank account](/api#account_create_bank_account) or [card creation](/api#account_create_card) APIs. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "individual": { - "description": "Information about the person represented by the account. This field is null unless `business_type` is set to `individual`. Once you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "type": "string" - }, - "first_name": { - "maxLength": 100, - "type": "string" - }, - "first_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 300, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "gender": { - "type": "string" - }, - "id_number": { - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "maxLength": 100, - "type": "string" - }, - "last_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "type": "string" - }, - "political_exposure": { - "enum": [ - "existing", - "none" - ], - "type": "string" - }, - "registered_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "individual_relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "title": "individual_specs", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "settings": { - "description": "Options for customizing how the account functions within Stripe.", - "properties": { - "bacs_debit_payments": { - "properties": { - "display_name": { - "type": "string" - } - }, - "title": "bacs_debit_payments_specs", - "type": "object" - }, - "branding": { - "properties": { - "icon": { - "maxLength": 5000, - "type": "string" - }, - "logo": { - "maxLength": 5000, - "type": "string" - }, - "primary_color": { - "maxLength": 5000, - "type": "string" - }, - "secondary_color": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "branding_settings_specs", - "type": "object" - }, - "card_issuing": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "card_issuing_settings_specs", - "type": "object" - }, - "card_payments": { - "properties": { - "decline_on": { - "properties": { - "avs_failure": { - "type": "boolean" - }, - "cvc_failure": { - "type": "boolean" - } - }, - "title": "decline_charge_on_specs", - "type": "object" - }, - "statement_descriptor_prefix": { - "maxLength": 10, - "type": "string" - }, - "statement_descriptor_prefix_kana": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_prefix_kanji": { - "anyOf": [ - { - "maxLength": 10, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "card_payments_settings_specs", - "type": "object" - }, - "invoices": { - "properties": { - "default_account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "invoices_settings_specs", - "type": "object" - }, - "payments": { - "properties": { - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kana": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_kanji": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payments_settings_specs", - "type": "object" - }, - "payouts": { - "properties": { - "debit_negative_balances": { - "type": "boolean" - }, - "schedule": { - "properties": { - "delay_days": { - "anyOf": [ - { - "enum": [ - "minimum" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "interval": { - "enum": [ - "daily", - "manual", - "monthly", - "weekly" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "monthly_anchor": { - "type": "integer" - }, - "weekly_anchor": { - "enum": [ - "friday", - "monday", - "saturday", - "sunday", - "thursday", - "tuesday", - "wednesday" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "transfer_schedule_specs", - "type": "object" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - } - }, - "title": "payout_settings_specs", - "type": "object" - }, - "treasury": { - "properties": { - "tos_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "treasury_settings_specs", - "type": "object" - } - }, - "title": "settings_specs_update", - "type": "object" - }, - "tos_acceptance": { - "description": "Details on the account's acceptance of the [Stripe Services Agreement](/connect/updating-accounts#tos-acceptance). This property can only be updated for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `application`, which includes Custom accounts. This property defaults to a `full` service agreement when empty.", - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "service_agreement": { - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "tos_acceptance_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/bank_accounts": { - "post": { - "description": "

Create an external account for a given account.

", - "operationId": "PostAccountsAccountBankAccounts", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "documents": { - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "external_account_payout_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "default_for_currency": { - "description": "When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/bank_accounts/{id}": { - "delete": { - "description": "

Delete a specified external account for a given account.

", - "operationId": "DeleteAccountsAccountBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieve a specified external account for a given account.

", - "operationId": "GetAccountsAccountBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.

\n\n

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

\n\n

You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.

", - "operationId": "PostAccountsAccountBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "", - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "description": "The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.", - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "default_for_currency": { - "description": "When set to true, this becomes the default external account for its currency.", - "type": "boolean" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/capabilities": { - "get": { - "description": "

Returns a list of capabilities associated with the account. The capabilities are returned sorted by creation date, with the most recent capability appearing first.

", - "operationId": "GetAccountsAccountCapabilities", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/capability" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ListAccountCapability", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/capabilities/{capability}": { - "get": { - "description": "

Retrieves information about the specified Account Capability.

", - "operationId": "GetAccountsAccountCapabilitiesCapability", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "capability", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/capability" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing Account Capability. Request or remove a capability by updating its requested parameter.

", - "operationId": "PostAccountsAccountCapabilitiesCapability", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "capability", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "requested": { - "description": "To request a new capability for an account, pass true. There can be a delay before the requested capability becomes active. If the capability has any activation requirements, the response includes them in the `requirements` arrays.\n\nIf a capability isn't permanent, you can remove it from the account by passing false. Some capabilities are permanent after they've been requested. Attempting to remove a permanent capability returns an error.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/capability" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/external_accounts": { - "get": { - "description": "

List external accounts for an account.

", - "operationId": "GetAccountsAccountExternalAccounts", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filter external accounts according to a particular object type.", - "in": "query", - "name": "object", - "required": false, - "schema": { - "enum": [ - "bank_account", - "card" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - } - ], - "title": "Polymorphic", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ExternalAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Create an external account for a given account.

", - "operationId": "PostAccountsAccountExternalAccounts", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "documents": { - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "external_account_payout_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "default_for_currency": { - "description": "When set to true, or if this is the first external account added in this currency, this account becomes the default external account for its currency.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "external_account": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/external_accounts/{id}": { - "delete": { - "description": "

Delete a specified external account for a given account.

", - "operationId": "DeleteAccountsAccountExternalAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieve a specified external account for a given account.

", - "operationId": "GetAccountsAccountExternalAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the metadata, account holder name, account holder type of a bank account belonging to\na connected account and optionally sets it as the default for its currency. Other bank account\ndetails are not editable by design.

\n\n

You can only update bank accounts when account.controller.requirement_collection is application, which includes Custom accounts.

\n\n

You can re-enable a disabled bank account by performing an update call without providing any\narguments or changes.

", - "operationId": "PostAccountsAccountExternalAccountsId", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "", - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "description": "The bank account type. This can only be `checking` or `savings` in most countries. In Japan, this can only be `futsu` or `toza`.", - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "default_for_currency": { - "description": "When set to true, this becomes the default external account for its currency.", - "type": "boolean" - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "bank_account_ownership_verification": { - "properties": { - "files": { - "items": { - "maxLength": 500, - "type": "string" - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "external_account_documents_param", - "type": "object" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/external_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/login_links": { - "post": { - "description": "

Creates a single-use login link for a connected account to access the Express Dashboard.

\n\n

You can only create login links for accounts that use the Express Dashboard and are connected to your platform.

", - "operationId": "PostAccountsAccountLoginLinks", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/login_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/people": { - "get": { - "description": "

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

", - "operationId": "GetAccountsAccountPeople", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filters on the list of people returned based on the person's relationship to the account's company.", - "explode": true, - "in": "query", - "name": "relationship", - "required": false, - "schema": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "representative": { - "type": "boolean" - } - }, - "title": "all_people_relationship_specs", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/person" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PersonList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new person.

", - "operationId": "PostAccountsAccountPeople", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/people/{person}": { - "delete": { - "description": "

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

", - "operationId": "DeleteAccountsAccountPeoplePerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves an existing person.

", - "operationId": "GetAccountsAccountPeoplePerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing person.

", - "operationId": "PostAccountsAccountPeoplePerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/persons": { - "get": { - "description": "

Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.

", - "operationId": "GetAccountsAccountPersons", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filters on the list of people returned based on the person's relationship to the account's company.", - "explode": true, - "in": "query", - "name": "relationship", - "required": false, - "schema": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "representative": { - "type": "boolean" - } - }, - "title": "all_people_relationship_specs", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/person" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PersonList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new person.

", - "operationId": "PostAccountsAccountPersons", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/persons/{person}": { - "delete": { - "description": "

Deletes an existing person’s relationship to the account’s legal entity. Any person with a relationship for an account can be deleted through the API, except if the person is the account_opener. If your integration is using the executive parameter, you cannot delete the only verified executive on file.

", - "operationId": "DeleteAccountsAccountPersonsPerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves an existing person.

", - "operationId": "GetAccountsAccountPersonsPerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing person.

", - "operationId": "PostAccountsAccountPersonsPerson", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "person", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "additional_tos_acceptances": { - "explode": true, - "style": "deepObject" - }, - "address": { - "explode": true, - "style": "deepObject" - }, - "address_kana": { - "explode": true, - "style": "deepObject" - }, - "address_kanji": { - "explode": true, - "style": "deepObject" - }, - "dob": { - "explode": true, - "style": "deepObject" - }, - "documents": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "full_name_aliases": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "registered_address": { - "explode": true, - "style": "deepObject" - }, - "relationship": { - "explode": true, - "style": "deepObject" - }, - "verification": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "additional_tos_acceptances": { - "description": "Details on the legal guardian's acceptance of the required Stripe agreements.", - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "description": "The person's address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "description": "The Kana variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "description": "The Kanji variation of the person's address (Japan only).", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The person's date of birth." - }, - "documents": { - "description": "Documents that may be submitted to satisfy various informational requests.", - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "description": "The person's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "first_name": { - "description": "The person's first name.", - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "description": "The Kana variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "description": "The Kanji variation of the person's first name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of alternate names or aliases that the person is known by." - }, - "gender": { - "description": "The person's gender (International regulations require either \"male\" or \"female\").", - "type": "string" - }, - "id_number": { - "description": "The person's ID number, as appropriate for their country. For example, a social security number in the U.S., social insurance number in Canada, etc. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "description": "The person's secondary ID number, as appropriate for their country, will be used for enhanced verification checks. In Thailand, this would be the laser code found on the back of an ID card. Instead of the number itself, you can also provide a [PII token provided by Stripe.js](https://docs.stripe.com/js/tokens/create_token?type=pii).", - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "description": "The person's last name.", - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "description": "The Kana variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "description": "The Kanji variation of the person's last name (Japan only).", - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "description": "The person's maiden name.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "nationality": { - "description": "The country where the person is a national. Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)), or \"XX\" if unavailable.", - "maxLength": 5000, - "type": "string" - }, - "person_token": { - "description": "A [person token](https://docs.stripe.com/connect/account-tokens), used to securely provide details to the person.", - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The person's phone number.", - "type": "string" - }, - "political_exposure": { - "description": "Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.", - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "description": "The person's registered address.", - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "description": "The relationship that this person has with the account's legal entity.", - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "description": "The last four digits of the person's Social Security number (U.S. only).", - "type": "string" - }, - "verification": { - "description": "The person's verification status.", - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/person" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/accounts/{account}/reject": { - "post": { - "description": "

With Connect, you can reject accounts that you have flagged as suspicious.

\n\n

Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.

", - "operationId": "PostAccountsAccountReject", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "reason": { - "description": "The reason for rejecting the account. Can be `fraud`, `terms_of_service`, or `other`.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "reason" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/apple_pay/domains": { - "get": { - "description": "

List apple pay domains.

", - "operationId": "GetApplePayDomains", - "parameters": [ - { - "in": "query", - "name": "domain_name", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/apple_pay_domain" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/apple_pay/domains", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ApplePayDomainList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Create an apple pay domain.

", - "operationId": "PostApplePayDomains", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "domain_name": { - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "domain_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/apple_pay_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/apple_pay/domains/{domain}": { - "delete": { - "description": "

Delete an apple pay domain.

", - "operationId": "DeleteApplePayDomainsDomain", - "parameters": [ - { - "in": "path", - "name": "domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_apple_pay_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieve an apple pay domain.

", - "operationId": "GetApplePayDomainsDomain", - "parameters": [ - { - "in": "path", - "name": "domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/apple_pay_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/application_fees": { - "get": { - "description": "

Returns a list of application fees you’ve previously collected. The application fees are returned in sorted order, with the most recent fees appearing first.

", - "operationId": "GetApplicationFees", - "parameters": [ - { - "description": "Only return application fees for the charge specified by this charge ID.", - "in": "query", - "name": "charge", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return applications fees that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/application_fee" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/application_fees", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PlatformEarningList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/application_fees/{fee}/refunds/{id}": { - "get": { - "description": "

By default, you can see the 10 most recent refunds stored directly on the application fee object, but you can also retrieve details about a specific refund stored on the application fee.

", - "operationId": "GetApplicationFeesFeeRefundsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "fee", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/fee_refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified application fee refund by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

\n\n

This request only accepts metadata as an argument.

", - "operationId": "PostApplicationFeesFeeRefundsId", - "parameters": [ - { - "in": "path", - "name": "fee", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/fee_refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/application_fees/{id}": { - "get": { - "description": "

Retrieves the details of an application fee that your account has collected. The same information is returned when refunding the application fee.

", - "operationId": "GetApplicationFeesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/application_fee" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/application_fees/{id}/refund": { - "post": { - "description": "", - "operationId": "PostApplicationFeesIdRefund", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "integer" - }, - "directive": { - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/application_fee" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/application_fees/{id}/refunds": { - "get": { - "description": "

You can see a list of the refunds belonging to a specific application fee. Note that the 10 most recent refunds are always available by default on the application fee object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

", - "operationId": "GetApplicationFeesIdRefunds", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/fee_refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FeeRefundList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Refunds an application fee that has previously been collected but not yet refunded.\nFunds will be refunded to the Stripe account from which the fee was originally collected.

\n\n

You can optionally refund only part of an application fee.\nYou can do so multiple times, until the entire fee has been refunded.

\n\n

Once entirely refunded, an application fee can’t be refunded again.\nThis method will raise an error when called on an already-refunded application fee,\nor when trying to refund more money than is left on an application fee.

", - "operationId": "PostApplicationFeesIdRefunds", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer, in _cents (or local equivalent)_, representing how much of this fee to refund. Can refund only up to the remaining unrefunded amount of the fee.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/fee_refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/apps/secrets": { - "get": { - "description": "

List all secrets stored on the given scope.

", - "operationId": "GetAppsSecrets", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "explode": true, - "in": "query", - "name": "scope", - "required": true, - "schema": { - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/apps.secret" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/apps/secrets", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SecretServiceResourceSecretList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Create or replace a secret in the secret store.

", - "operationId": "PostAppsSecrets", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "scope": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "The Unix timestamp for the expiry time of the secret, after which the secret deletes.", - "format": "unix-time", - "type": "integer" - }, - "name": { - "description": "A name for the secret that's unique within the scope.", - "maxLength": 5000, - "type": "string" - }, - "payload": { - "description": "The plaintext secret value to be stored.", - "maxLength": 5000, - "type": "string" - }, - "scope": { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - } - }, - "required": [ - "name", - "payload", - "scope" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/apps.secret" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/apps/secrets/delete": { - "post": { - "description": "

Deletes a secret from the secret store by name and scope.

", - "operationId": "PostAppsSecretsDelete", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "scope": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "A name for the secret that's unique within the scope.", - "maxLength": 5000, - "type": "string" - }, - "scope": { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - } - }, - "required": [ - "name", - "scope" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/apps.secret" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/apps/secrets/find": { - "get": { - "description": "

Finds a secret in the secret store by name and scope.

", - "operationId": "GetAppsSecretsFind", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A name for the secret that's unique within the scope.", - "in": "query", - "name": "name", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies the scoping of the secret. Requests originating from UI extensions can only access account-scoped secrets or secrets scoped to their own user.", - "explode": true, - "in": "query", - "name": "scope", - "required": true, - "schema": { - "properties": { - "type": { - "enum": [ - "account", - "user" - ], - "type": "string" - }, - "user": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "scope_param", - "type": "object" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/apps.secret" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/balance": { - "get": { - "description": "

Retrieves the current account balance, based on the authentication that was used to make the request.\n For a sample request, see Accounting for negative balances.

", - "operationId": "GetBalance", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/balance" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/balance/history": { - "get": { - "description": "

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

\n\n

Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.

", - "operationId": "GetBalanceHistory", - "parameters": [ - { - "description": "Only return transactions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID.", - "in": "query", - "name": "payout", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns the original transaction.", - "in": "query", - "name": "source", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/balance_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/balance_transactions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BalanceTransactionsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/balance/history/{id}": { - "get": { - "description": "

Retrieves the balance transaction with the given ID.

\n\n

Note that this endpoint previously used the path /v1/balance/history/:id.

", - "operationId": "GetBalanceHistoryId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/balance_transactions": { - "get": { - "description": "

Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first.

\n\n

Note that this endpoint was previously called “Balance history” and used the path /v1/balance/history.

", - "operationId": "GetBalanceTransactions", - "parameters": [ - { - "description": "Only return transactions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return transactions in a certain currency. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "For automatic Stripe payouts only, only returns transactions that were paid out on the specified payout ID.", - "in": "query", - "name": "payout", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns the original transaction.", - "in": "query", - "name": "source", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only returns transactions of the given type. One of: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `climate_order_purchase`, `climate_order_refund`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `obligation_outbound`, `obligation_reversal_inbound`, `payment`, `payment_failure_refund`, `payment_network_reserve_hold`, `payment_network_reserve_release`, `payment_refund`, `payment_reversal`, `payment_unreconciled`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/balance_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/balance_transactions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BalanceTransactionsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/balance_transactions/{id}": { - "get": { - "description": "

Retrieves the balance transaction with the given ID.

\n\n

Note that this endpoint previously used the path /v1/balance/history/:id.

", - "operationId": "GetBalanceTransactionsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meter_event_adjustments": { - "post": { - "description": "

Creates a billing meter event adjustment

", - "operationId": "PostBillingMeterEventAdjustments", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "cancel": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cancel": { - "description": "Specifies which event to cancel.", - "properties": { - "identifier": { - "maxLength": 100, - "type": "string" - } - }, - "title": "event_adjustment_cancel_settings_param", - "type": "object" - }, - "event_name": { - "description": "The name of the meter event. Corresponds with the `event_name` field on a meter.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "Specifies whether to cancel a single event or a range of events for a time period. Time period cancellation is not supported yet.", - "enum": [ - "cancel" - ], - "type": "string" - } - }, - "required": [ - "event_name", - "type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter_event_adjustment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meter_events": { - "post": { - "description": "

Creates a billing meter event

", - "operationId": "PostBillingMeterEvents", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "payload": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "event_name": { - "description": "The name of the meter event. Corresponds with the `event_name` field on a meter.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "identifier": { - "description": "A unique identifier for the event. If not provided, one will be generated. We recommend using a globally unique identifier for this. We'll enforce uniqueness within a rolling 24 hour period.", - "maxLength": 100, - "type": "string" - }, - "payload": { - "additionalProperties": { - "type": "string" - }, - "description": "The payload of the event. This must contain the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://docs.stripe.com/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).", - "type": "object" - }, - "timestamp": { - "description": "The time of the event. Measured in seconds since the Unix epoch. Must be within the past 35 calendar days or up to 5 minutes in the future. Defaults to current timestamp if not specified.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "event_name", - "payload" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter_event" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meters": { - "get": { - "description": "

Retrieve a list of billing meters.

", - "operationId": "GetBillingMeters", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Filter results to only include meters with the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/billing.meter" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/billing/meters", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BillingMeterResourceBillingMeterList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a billing meter

", - "operationId": "PostBillingMeters", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "customer_mapping": { - "explode": true, - "style": "deepObject" - }, - "default_aggregation": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "value_settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer_mapping": { - "description": "Fields that specify how to map a meter event to a customer.", - "properties": { - "event_payload_key": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - "by_id" - ], - "type": "string" - } - }, - "required": [ - "event_payload_key", - "type" - ], - "title": "customer_mapping_param", - "type": "object" - }, - "default_aggregation": { - "description": "The default settings to aggregate a meter's events with.", - "properties": { - "formula": { - "enum": [ - "count", - "sum" - ], - "type": "string" - } - }, - "required": [ - "formula" - ], - "title": "aggregation_settings_param", - "type": "object" - }, - "display_name": { - "description": "The meter's name.", - "maxLength": 250, - "type": "string" - }, - "event_name": { - "description": "The name of the meter event to record usage for. Corresponds with the `event_name` field on meter events.", - "maxLength": 100, - "type": "string" - }, - "event_time_window": { - "description": "The time window to pre-aggregate meter events for, if any.", - "enum": [ - "day", - "hour" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "value_settings": { - "description": "Fields that specify how to calculate a meter event's value.", - "properties": { - "event_payload_key": { - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "event_payload_key" - ], - "title": "meter_value_settings_param", - "type": "object" - } - }, - "required": [ - "default_aggregation", - "display_name", - "event_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meters/{id}": { - "get": { - "description": "

Retrieves a billing meter given an ID

", - "operationId": "GetBillingMetersId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a billing meter

", - "operationId": "PostBillingMetersId", - "parameters": [ - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "display_name": { - "description": "The meter's name.", - "maxLength": 250, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meters/{id}/deactivate": { - "post": { - "description": "

Deactivates a billing meter

", - "operationId": "PostBillingMetersIdDeactivate", - "parameters": [ - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meters/{id}/event_summaries": { - "get": { - "description": "

Retrieve a list of billing meter event summaries.

", - "operationId": "GetBillingMetersIdEventSummaries", - "parameters": [ - { - "description": "The customer for which to fetch event summaries.", - "in": "query", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The timestamp from when to stop aggregating meter events (exclusive). Must be aligned with minute boundaries.", - "in": "query", - "name": "end_time", - "required": true, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The timestamp from when to start aggregating meter events (inclusive). Must be aligned with minute boundaries.", - "in": "query", - "name": "start_time", - "required": true, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies what granularity to use when generating event summaries. If not specified, a single event summary would be returned for the specified time range. For hourly granularity, start and end times must align with hour boundaries (e.g., 00:00, 01:00, ..., 23:00). For daily granularity, start and end times must align with UTC day boundaries (00:00 UTC).", - "in": "query", - "name": "value_grouping_window", - "required": false, - "schema": { - "enum": [ - "day", - "hour" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/billing.meter_event_summary" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/billing/meters/[^/]+/event_summaries", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BillingMeterResourceBillingMeterEventSummaryList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing/meters/{id}/reactivate": { - "post": { - "description": "

Reactivates a billing meter

", - "operationId": "PostBillingMetersIdReactivate", - "parameters": [ - { - "description": "Unique identifier for the object.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing.meter" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing_portal/configurations": { - "get": { - "description": "

Returns a list of configurations that describe the functionality of the customer portal.

", - "operationId": "GetBillingPortalConfigurations", - "parameters": [ - { - "description": "Only return configurations that are active or inactive (e.g., pass `true` to only list active configurations).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return the default or non-default configurations (e.g., pass `true` to only list the default configuration).", - "in": "query", - "name": "is_default", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/billing_portal.configuration" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/billing_portal/configurations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PortalPublicResourceConfigurationList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a configuration that describes the functionality and behavior of a PortalSession

", - "operationId": "PostBillingPortalConfigurations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "default_return_url": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - }, - "login_page": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "business_profile": { - "description": "The business information shown to customers in the portal.", - "properties": { - "headline": { - "anyOf": [ - { - "maxLength": 60, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "privacy_policy_url": { - "type": "string" - }, - "terms_of_service_url": { - "type": "string" - } - }, - "title": "business_profile_create_param", - "type": "object" - }, - "default_return_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "Information about the features available in the portal.", - "properties": { - "customer_update": { - "properties": { - "allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "address", - "email", - "name", - "phone", - "shipping", - "tax_id" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "customer_update_creation_param", - "type": "object" - }, - "invoice_history": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_list_param", - "type": "object" - }, - "payment_method_update": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "payment_method_update_param", - "type": "object" - }, - "subscription_cancel": { - "properties": { - "cancellation_reason": { - "properties": { - "enabled": { - "type": "boolean" - }, - "options": { - "anyOf": [ - { - "items": { - "enum": [ - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "enabled", - "options" - ], - "title": "subscription_cancellation_reason_creation_param", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "mode": { - "enum": [ - "at_period_end", - "immediately" - ], - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "required": [ - "enabled" - ], - "title": "subscription_cancel_creation_param", - "type": "object" - }, - "subscription_update": { - "properties": { - "default_allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "price", - "promotion_code", - "quantity" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "products": { - "anyOf": [ - { - "items": { - "properties": { - "prices": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "product": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "prices", - "product" - ], - "title": "subscription_update_product_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "required": [ - "default_allowed_updates", - "enabled", - "products" - ], - "title": "subscription_update_creation_param", - "type": "object" - } - }, - "title": "features_creation_param", - "type": "object" - }, - "login_page": { - "description": "The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share).", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "login_page_create_param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "required": [ - "business_profile", - "features" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing_portal.configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing_portal/configurations/{configuration}": { - "get": { - "description": "

Retrieves a configuration that describes the functionality of the customer portal.

", - "operationId": "GetBillingPortalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing_portal.configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a configuration that describes the functionality of the customer portal.

", - "operationId": "PostBillingPortalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "business_profile": { - "explode": true, - "style": "deepObject" - }, - "default_return_url": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - }, - "login_page": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the configuration is active and can be used to create portal sessions.", - "type": "boolean" - }, - "business_profile": { - "description": "The business information shown to customers in the portal.", - "properties": { - "headline": { - "anyOf": [ - { - "maxLength": 60, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "privacy_policy_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "terms_of_service_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "business_profile_update_param", - "type": "object" - }, - "default_return_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website. This can be [overriden](https://stripe.com/docs/api/customer_portal/sessions/create#create_portal_session-return_url) when creating the session." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "Information about the features available in the portal.", - "properties": { - "customer_update": { - "properties": { - "allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "address", - "email", - "name", - "phone", - "shipping", - "tax_id" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - } - }, - "title": "customer_update_updating_param", - "type": "object" - }, - "invoice_history": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_list_param", - "type": "object" - }, - "payment_method_update": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "payment_method_update_param", - "type": "object" - }, - "subscription_cancel": { - "properties": { - "cancellation_reason": { - "properties": { - "enabled": { - "type": "boolean" - }, - "options": { - "anyOf": [ - { - "items": { - "enum": [ - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "enabled" - ], - "title": "subscription_cancellation_reason_updating_param", - "type": "object" - }, - "enabled": { - "type": "boolean" - }, - "mode": { - "enum": [ - "at_period_end", - "immediately" - ], - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "subscription_cancel_updating_param", - "type": "object" - }, - "subscription_update": { - "properties": { - "default_allowed_updates": { - "anyOf": [ - { - "items": { - "enum": [ - "price", - "promotion_code", - "quantity" - ], - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "enabled": { - "type": "boolean" - }, - "products": { - "anyOf": [ - { - "items": { - "properties": { - "prices": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "product": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "prices", - "product" - ], - "title": "subscription_update_product_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "subscription_update_updating_param", - "type": "object" - } - }, - "title": "features_updating_param", - "type": "object" - }, - "login_page": { - "description": "The hosted login page for this configuration. Learn more about the portal login page in our [integration docs](https://stripe.com/docs/billing/subscriptions/integrating-customer-portal#share).", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "login_page_update_param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing_portal.configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/billing_portal/sessions": { - "post": { - "description": "

Creates a session of the customer portal.

", - "operationId": "PostBillingPortalSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "flow_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "configuration": { - "description": "The ID of an existing [configuration](https://stripe.com/docs/api/customer_portal/configuration) to use for this session, describing its functionality and features. If not specified, the session uses the default configuration.", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "description": "The ID of an existing customer.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "flow_data": { - "description": "Information about a specific flow for the customer to go through. See the [docs](https://stripe.com/docs/customer-management/portal-deep-links) to learn more about using customer portal deep links and flows.", - "properties": { - "after_completion": { - "properties": { - "hosted_confirmation": { - "properties": { - "custom_message": { - "maxLength": 500, - "type": "string" - } - }, - "title": "after_completion_hosted_confirmation_param", - "type": "object" - }, - "redirect": { - "properties": { - "return_url": { - "type": "string" - } - }, - "required": [ - "return_url" - ], - "title": "after_completion_redirect_param", - "type": "object" - }, - "type": { - "enum": [ - "hosted_confirmation", - "portal_homepage", - "redirect" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "flow_data_after_completion_param", - "type": "object" - }, - "subscription_cancel": { - "properties": { - "retention": { - "properties": { - "coupon_offer": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "coupon" - ], - "title": "coupon_offer_param", - "type": "object" - }, - "type": { - "enum": [ - "coupon_offer" - ], - "type": "string" - } - }, - "required": [ - "coupon_offer", - "type" - ], - "title": "retention_param", - "type": "object" - }, - "subscription": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "subscription" - ], - "title": "flow_data_subscription_cancel_param", - "type": "object" - }, - "subscription_update": { - "properties": { - "subscription": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "subscription" - ], - "title": "flow_data_subscription_update_param", - "type": "object" - }, - "subscription_update_confirm": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "subscription_update_confirm_discount_params", - "type": "object" - }, - "type": "array" - }, - "items": { - "items": { - "properties": { - "id": { - "maxLength": 5000, - "type": "string" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - } - }, - "required": [ - "id" - ], - "title": "subscription_update_confirm_item_params", - "type": "object" - }, - "type": "array" - }, - "subscription": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "items", - "subscription" - ], - "title": "flow_data_subscription_update_confirm_param", - "type": "object" - }, - "type": { - "enum": [ - "payment_method_update", - "subscription_cancel", - "subscription_update", - "subscription_update_confirm" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "flow_data_param", - "type": "object" - }, - "locale": { - "description": "The IETF language tag of the locale customer portal is displayed in. If blank or auto, the customer’s `preferred_locales` or browser’s locale is used.", - "enum": [ - "auto", - "bg", - "cs", - "da", - "de", - "el", - "en", - "en-AU", - "en-CA", - "en-GB", - "en-IE", - "en-IN", - "en-NZ", - "en-SG", - "es", - "es-419", - "et", - "fi", - "fil", - "fr", - "fr-CA", - "hr", - "hu", - "id", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "mt", - "nb", - "nl", - "pl", - "pt", - "pt-BR", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "vi", - "zh", - "zh-HK", - "zh-TW" - ], - "type": "string" - }, - "on_behalf_of": { - "description": "The `on_behalf_of` account to use for this session. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the [docs](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant). Use the [Accounts API](https://stripe.com/docs/api/accounts/object#account_object-settings-branding) to modify the `on_behalf_of` account's branding settings, which the portal displays.", - "type": "string" - }, - "return_url": { - "description": "The default URL to redirect customers to when they click on the portal's link to return to your website.", - "type": "string" - } - }, - "required": [ - "customer" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/billing_portal.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges": { - "get": { - "description": "

Returns a list of charges you’ve previously created. The charges are returned in sorted order, with the most recent charges appearing first.

", - "operationId": "GetCharges", - "parameters": [ - { - "description": "Only return charges that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return charges for the customer specified by this customer ID.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return charges that were created by the PaymentIntent specified by this PaymentIntent ID.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return charges for this transfer group.", - "in": "query", - "name": "transfer_group", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/charge" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/charges", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ChargeList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

This method is no longer recommended—use the Payment Intents API\nto initiate a new payment instead. Confirmation of the PaymentIntent creates the Charge\nobject used to request payment.

", - "operationId": "PostCharges", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "card": { - "explode": true, - "style": "deepObject" - }, - "destination": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "radar_options": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount intended to be collected by this payment. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "application_fee": { - "type": "integer" - }, - "application_fee_amount": { - "description": "A fee in cents (or local equivalent) that will be applied to the charge and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the `Stripe-Account` header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/connect/direct-charges#collect-fees).", - "type": "integer" - }, - "capture": { - "description": "Whether to immediately capture the charge. Defaults to `true`. When `false`, the charge issues an authorization (or pre-authorization), and will need to be [captured](https://stripe.com/docs/api#capture_charge) later. Uncaptured charges expire after a set number of days (7 by default). For more information, see the [authorizing charges and settling later](https://stripe.com/docs/charges/placing-a-hold) documentation.", - "type": "boolean" - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "number": { - "maxLength": 5000, - "type": "string" - }, - "object": { - "enum": [ - "card" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "customer_payment_source_card", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).", - "x-stripeBypassValidation": true - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "The ID of an existing customer that will be charged in this request.", - "maxLength": 500, - "type": "string" - }, - "description": { - "description": "An arbitrary string which you can attach to a `Charge` object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing.", - "maxLength": 40000, - "type": "string" - }, - "destination": { - "anyOf": [ - { - "properties": { - "account": { - "maxLength": 5000, - "type": "string" - }, - "amount": { - "type": "integer" - } - }, - "required": [ - "account" - ], - "title": "destination_specs", - "type": "object" - }, - { - "type": "string" - } - ] - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "on_behalf_of": { - "description": "The Stripe account ID for which these funds are intended. Automatically set if you use the `destination` parameter. For details, see [Creating Separate Charges and Transfers](https://stripe.com/docs/connect/separate-charges-and-transfers#settlement-merchant).", - "maxLength": 5000, - "type": "string" - }, - "radar_options": { - "description": "Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.", - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "receipt_email": { - "description": "The email address to which this charge's [receipt](https://stripe.com/docs/dashboard/receipts) will be sent. The receipt will not be sent until the charge is paid, and no receipts will be sent for test mode charges. If this charge is for a [Customer](https://stripe.com/docs/api/customers/object), the email address specified here will override the customer's email address. If `receipt_email` is specified for a charge in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails).", - "type": "string" - }, - "shipping": { - "description": "Shipping information for the charge. Helps prevent fraud on charges for physical goods.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - "source": { - "description": "A payment source to be charged. This can be the ID of a [card](https://stripe.com/docs/api#cards) (i.e., credit or debit card), a [bank account](https://stripe.com/docs/api#bank_accounts), a [source](https://stripe.com/docs/api#sources), a [token](https://stripe.com/docs/api#tokens), or a [connected account](https://stripe.com/docs/connect/account-debits#charging-a-connected-account). For certain sources---namely, [cards](https://stripe.com/docs/api#cards), [bank accounts](https://stripe.com/docs/api#bank_accounts), and attached [sources](https://stripe.com/docs/api#sources)---you must also pass the ID of the associated customer.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "statement_descriptor": { - "description": "For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.", - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. For details, see [Grouping transactions](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options).", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/charge" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/search": { - "get": { - "description": "

Search for charges you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetChargesSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for charges](https://stripe.com/docs/search#query-fields-for-charges).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/charge" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}": { - "get": { - "description": "

Retrieves the details of a charge that has previously been created. Supply the unique charge ID that was returned from your previous request, and Stripe will return the corresponding charge information. The same information is returned when creating or refunding the charge.

", - "operationId": "GetChargesCharge", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/charge" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified charge by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostChargesCharge", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "fraud_details": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer": { - "description": "The ID of an existing customer that will be associated with this request. This field may only be updated if there is no existing associated customer with this charge.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string which you can attach to a charge object. It is displayed when in the web interface alongside the charge. Note that if you use Stripe to send automatic email receipts to your customers, your receipt emails will include the `description` of the charge(s) that they are describing.", - "maxLength": 40000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fraud_details": { - "description": "A set of key-value pairs you can attach to a charge giving information about its riskiness. If you believe a charge is fraudulent, include a `user_report` key with a value of `fraudulent`. If you believe a charge is safe, include a `user_report` key with a value of `safe`. Stripe will use the information you send to improve our fraud detection algorithms.", - "properties": { - "user_report": { - "enum": [ - "", - "fraudulent", - "safe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "user_report" - ], - "title": "fraud_details", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "receipt_email": { - "description": "This is the email address that the receipt for this charge will be sent to. If this field is updated, then a new email receipt will be sent to the updated address.", - "maxLength": 5000, - "type": "string" - }, - "shipping": { - "description": "Shipping information for the charge. Helps prevent fraud on charges for physical goods.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/charge" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}/capture": { - "post": { - "description": "

Capture the payment of an existing, uncaptured charge that was created with the capture option set to false.

\n\n

Uncaptured payments expire a set number of days after they are created (7 by default), after which they are marked as refunded and capture attempts will fail.

\n\n

Don’t use this method to capture a PaymentIntent-initiated charge. Use Capture a PaymentIntent.

", - "operationId": "PostChargesChargeCapture", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The amount to capture, which must be less than or equal to the original amount. Any additional amount will be automatically refunded.", - "type": "integer" - }, - "application_fee": { - "description": "An application fee to add on to this charge.", - "type": "integer" - }, - "application_fee_amount": { - "description": "An application fee amount to add on to this charge, which must be less than or equal to the original amount.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "receipt_email": { - "description": "The email address to send this charge's receipt to. This will override the previously-specified email address for this charge, if one was set. Receipts will not be sent in test mode.", - "type": "string" - }, - "statement_descriptor": { - "description": "For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "An optional dictionary including the account to automatically transfer to as part of a destination charge. [See the Connect documentation](https://stripe.com/docs/connect/destination-charges) for details.", - "properties": { - "amount": { - "type": "integer" - } - }, - "title": "transfer_data_specs", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. `transfer_group` may only be provided if it has not been set. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/charge" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}/dispute": { - "get": { - "description": "

Retrieve a dispute for a specified charge.

", - "operationId": "GetChargesChargeDispute", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "", - "operationId": "PostChargesChargeDispute", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "evidence": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "evidence": { - "description": "Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000.", - "properties": { - "access_activity_log": { - "maxLength": 20000, - "type": "string" - }, - "billing_address": { - "maxLength": 5000, - "type": "string" - }, - "cancellation_policy": { - "type": "string" - }, - "cancellation_policy_disclosure": { - "maxLength": 20000, - "type": "string" - }, - "cancellation_rebuttal": { - "maxLength": 20000, - "type": "string" - }, - "customer_communication": { - "type": "string" - }, - "customer_email_address": { - "maxLength": 5000, - "type": "string" - }, - "customer_name": { - "maxLength": 5000, - "type": "string" - }, - "customer_purchase_ip": { - "maxLength": 5000, - "type": "string" - }, - "customer_signature": { - "type": "string" - }, - "duplicate_charge_documentation": { - "type": "string" - }, - "duplicate_charge_explanation": { - "maxLength": 20000, - "type": "string" - }, - "duplicate_charge_id": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 20000, - "type": "string" - }, - "receipt": { - "type": "string" - }, - "refund_policy": { - "type": "string" - }, - "refund_policy_disclosure": { - "maxLength": 20000, - "type": "string" - }, - "refund_refusal_explanation": { - "maxLength": 20000, - "type": "string" - }, - "service_date": { - "maxLength": 5000, - "type": "string" - }, - "service_documentation": { - "type": "string" - }, - "shipping_address": { - "maxLength": 5000, - "type": "string" - }, - "shipping_carrier": { - "maxLength": 5000, - "type": "string" - }, - "shipping_date": { - "maxLength": 5000, - "type": "string" - }, - "shipping_documentation": { - "type": "string" - }, - "shipping_tracking_number": { - "maxLength": 5000, - "type": "string" - }, - "uncategorized_file": { - "type": "string" - }, - "uncategorized_text": { - "maxLength": 20000, - "type": "string" - } - }, - "title": "dispute_evidence_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "submit": { - "description": "Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default).", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}/dispute/close": { - "post": { - "description": "", - "operationId": "PostChargesChargeDisputeClose", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}/refund": { - "post": { - "description": "

When you create a new refund, you must specify either a Charge or a PaymentIntent object.

\n\n

This action refunds a previously created charge that’s not refunded yet.\nFunds are refunded to the credit or debit card that’s originally charged.

\n\n

You can optionally refund only part of a charge.\nYou can repeat this until the entire charge is refunded.

\n\n

After you entirely refund a charge, you can’t refund it again.\nThis method raises an error when it’s called on an already-refunded charge,\nor when you attempt to refund more money than is left on a charge.

", - "operationId": "PostChargesChargeRefund", - "parameters": [ - { - "description": "The identifier of the charge to refund.", - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) representing how much of this charge to refund. Can refund only up to the remaining, unrefunded amount of the charge.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "instructions_email": { - "description": "For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions.", - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "payment_intent": { - "description": "The identifier of the PaymentIntent to refund.", - "maxLength": 5000, - "type": "string" - }, - "reason": { - "description": "String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms.", - "enum": [ - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string" - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/charge" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}/refunds": { - "get": { - "description": "

You can see a list of the refunds belonging to a specific charge. Note that the 10 most recent refunds are always available by default on the charge object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional refunds.

", - "operationId": "GetChargesChargeRefunds", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RefundList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.

\n\n

Creating a new refund will refund a charge that has previously been created but not yet refunded.\nFunds will be refunded to the credit or debit card that was originally charged.

\n\n

You can optionally refund only part of a charge.\nYou can do so multiple times, until the entire charge has been refunded.

\n\n

Once entirely refunded, a charge can’t be refunded again.\nThis method will raise an error when called on an already-refunded charge,\nor when trying to refund more money than is left on a charge.

", - "operationId": "PostChargesChargeRefunds", - "parameters": [ - { - "description": "The identifier of the charge to refund.", - "in": "path", - "name": "charge", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "Customer whose customer balance to refund from.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "instructions_email": { - "description": "For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions.", - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "origin": { - "description": "Origin of the refund", - "enum": [ - "customer_balance" - ], - "type": "string" - }, - "payment_intent": { - "description": "The identifier of the PaymentIntent to refund.", - "maxLength": 5000, - "type": "string" - }, - "reason": { - "description": "String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms.", - "enum": [ - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string" - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/charges/{charge}/refunds/{refund}": { - "get": { - "description": "

Retrieves the details of an existing refund.

", - "operationId": "GetChargesChargeRefundsRefund", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Update a specified refund.

", - "operationId": "PostChargesChargeRefundsRefund", - "parameters": [ - { - "in": "path", - "name": "charge", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/checkout/sessions": { - "get": { - "description": "

Returns a list of Checkout Sessions.

", - "operationId": "GetCheckoutSessions", - "parameters": [ - { - "description": "Only return Checkout Sessions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return the Checkout Sessions for the Customer specified.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Sessions for the Customer details specified.", - "explode": true, - "in": "query", - "name": "customer_details", - "required": false, - "schema": { - "properties": { - "email": { - "type": "string" - } - }, - "required": [ - "email" - ], - "title": "customer_details_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Session for the PaymentIntent specified.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Sessions for the Payment Link specified.", - "in": "query", - "name": "payment_link", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Sessions matching the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "complete", - "expired", - "open" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return the Checkout Session for the subscription specified.", - "in": "query", - "name": "subscription", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/checkout.session" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentPagesCheckoutSessionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a Session object.

", - "operationId": "PostCheckoutSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "after_expiration": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "consent_collection": { - "explode": true, - "style": "deepObject" - }, - "custom_fields": { - "explode": true, - "style": "deepObject" - }, - "custom_text": { - "explode": true, - "style": "deepObject" - }, - "customer_update": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_creation": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_intent_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "phone_number_collection": { - "explode": true, - "style": "deepObject" - }, - "saved_payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "setup_intent_data": { - "explode": true, - "style": "deepObject" - }, - "shipping_address_collection": { - "explode": true, - "style": "deepObject" - }, - "shipping_options": { - "explode": true, - "style": "deepObject" - }, - "subscription_data": { - "explode": true, - "style": "deepObject" - }, - "tax_id_collection": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "after_expiration": { - "description": "Configure actions after a Checkout Session has expired.", - "properties": { - "recovery": { - "properties": { - "allow_promotion_codes": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "recovery_params", - "type": "object" - } - }, - "title": "after_expiration_params", - "type": "object" - }, - "allow_promotion_codes": { - "description": "Enables user redeemable promotion codes.", - "type": "boolean" - }, - "automatic_tax": { - "description": "Settings for automatic tax lookup for this session and resulting payments, invoices, and subscriptions.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_params", - "type": "object" - }, - "billing_address_collection": { - "description": "Specify whether Checkout should collect the customer's billing address. Defaults to `auto`.", - "enum": [ - "auto", - "required" - ], - "type": "string" - }, - "cancel_url": { - "description": "If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.", - "maxLength": 5000, - "type": "string" - }, - "client_reference_id": { - "description": "A unique string to reference the Checkout Session. This can be a\ncustomer ID, a cart ID, or similar, and can be used to reconcile the\nsession with your internal systems.", - "maxLength": 200, - "type": "string" - }, - "consent_collection": { - "description": "Configure fields for the Checkout Session to gather active consent from customers.", - "properties": { - "payment_method_reuse_agreement": { - "properties": { - "position": { - "enum": [ - "auto", - "hidden" - ], - "type": "string" - } - }, - "required": [ - "position" - ], - "title": "payment_method_reuse_agreement_params", - "type": "object" - }, - "promotions": { - "enum": [ - "auto", - "none" - ], - "type": "string" - }, - "terms_of_service": { - "enum": [ - "none", - "required" - ], - "type": "string" - } - }, - "title": "consent_collection_params", - "type": "object" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Required in `setup` mode when `payment_method_types` is not set.", - "type": "string" - }, - "custom_fields": { - "description": "Collect additional information from your customer using custom fields. Up to 3 fields are supported.", - "items": { - "properties": { - "dropdown": { - "properties": { - "default_value": { - "maxLength": 100, - "type": "string" - }, - "options": { - "items": { - "properties": { - "label": { - "maxLength": 100, - "type": "string" - }, - "value": { - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "title": "custom_field_option_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "options" - ], - "title": "custom_field_dropdown_param", - "type": "object" - }, - "key": { - "maxLength": 200, - "type": "string" - }, - "label": { - "properties": { - "custom": { - "maxLength": 50, - "type": "string" - }, - "type": { - "enum": [ - "custom" - ], - "type": "string" - } - }, - "required": [ - "custom", - "type" - ], - "title": "custom_field_label_param", - "type": "object" - }, - "numeric": { - "properties": { - "default_value": { - "maxLength": 255, - "type": "string" - }, - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_numeric_param", - "type": "object" - }, - "optional": { - "type": "boolean" - }, - "text": { - "properties": { - "default_value": { - "maxLength": 255, - "type": "string" - }, - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_text_param", - "type": "object" - }, - "type": { - "enum": [ - "dropdown", - "numeric", - "text" - ], - "type": "string" - } - }, - "required": [ - "key", - "label", - "type" - ], - "title": "custom_field_param", - "type": "object" - }, - "type": "array" - }, - "custom_text": { - "description": "Display additional text for your customers using custom text.", - "properties": { - "after_submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping_address": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "terms_of_service_acceptance": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "custom_text_param", - "type": "object" - }, - "customer": { - "description": "ID of an existing Customer, if one exists. In `payment` mode, the customer’s most recently saved card\npayment method will be used to prefill the email, name, card details, and billing address\non the Checkout page. In `subscription` mode, the customer’s [default payment method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method)\nwill be used if it’s a card, otherwise the most recently saved card will be used. A valid billing address, billing name and billing email are required on the payment method for Checkout to prefill the customer's card details.\n\nIf the Customer already has a valid [email](https://stripe.com/docs/api/customers/object#customer_object-email) set, the email will be prefilled and not editable in Checkout.\nIf the Customer does not have a valid `email`, Checkout will set the email entered during the session on the Customer.\n\nIf blank for Checkout Sessions in `subscription` mode or with `customer_creation` set as `always` in `payment` mode, Checkout will create a new Customer object based on information provided during the payment flow.\n\nYou can set [`payment_intent_data.setup_future_usage`](https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-payment_intent_data-setup_future_usage) to have Checkout automatically attach the payment method to the Customer you pass in for future reuse.", - "maxLength": 5000, - "type": "string" - }, - "customer_creation": { - "description": "Configure whether a Checkout Session creates a [Customer](https://stripe.com/docs/api/customers) during Session confirmation.\n\nWhen a Customer is not created, you can still retrieve email, address, and other customer data entered in Checkout\nwith [customer_details](https://stripe.com/docs/api/checkout/sessions/object#checkout_session_object-customer_details).\n\nSessions that don't create Customers instead are grouped by [guest customers](https://stripe.com/docs/payments/checkout/guest-customers)\nin the Dashboard. Promotion codes limited to first time customers will return invalid for these Sessions.\n\nCan only be set in `payment` and `setup` mode.", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "customer_email": { - "description": "If provided, this value will be used when the Customer object is created.\nIf not provided, customers will be asked to enter their email address.\nUse this parameter to prefill customer data if you already have an email\non file. To access information about the customer once a session is\ncomplete, use the `customer` field.", - "type": "string" - }, - "customer_update": { - "description": "Controls what fields on Customer can be updated by the Checkout Session. Can only be provided when `customer` is provided.", - "properties": { - "address": { - "enum": [ - "auto", - "never" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "name": { - "enum": [ - "auto", - "never" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "shipping": { - "enum": [ - "auto", - "never" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "customer_update_params", - "type": "object" - }, - "discounts": { - "description": "The coupon or promotion code to apply to this Session. Currently, only up to one may be specified.", - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discount_params", - "type": "object" - }, - "type": "array" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "The Epoch time in seconds at which the Checkout Session will expire. It can be anywhere from 30 minutes to 24 hours after Checkout Session creation. By default, this value is 24 hours from creation.", - "format": "unix-time", - "type": "integer" - }, - "invoice_creation": { - "description": "Generate a post-purchase Invoice for one-time payments.", - "properties": { - "enabled": { - "type": "boolean" - }, - "invoice_data": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "maxLength": 1500, - "type": "string" - }, - "footer": { - "maxLength": 5000, - "type": "string" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "rendering_options": { - "anyOf": [ - { - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - } - }, - "title": "rendering_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "invoice_data_params", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_creation_params", - "type": "object" - }, - "line_items": { - "description": "A list of items the customer is purchasing. Use this parameter to pass one-time or recurring [Prices](https://stripe.com/docs/api/prices).\n\nFor `payment` mode, there is a maximum of 100 line items, however it is recommended to consolidate line items if there are more than a few dozen.\n\nFor `subscription` mode, there is a maximum of 20 line items with recurring Prices and 20 line items with one-time Prices. Line items with one-time Prices will be on the initial invoice only.", - "items": { - "properties": { - "adjustable_quantity": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "adjustable_quantity_params", - "type": "object" - }, - "dynamic_tax_rates": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "product_data": { - "properties": { - "description": { - "maxLength": 40000, - "type": "string" - }, - "images": { - "items": { - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "product_data", - "type": "object" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "title": "price_data_with_product_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "line_item_params", - "type": "object" - }, - "type": "array" - }, - "locale": { - "description": "The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used.", - "enum": [ - "auto", - "bg", - "cs", - "da", - "de", - "el", - "en", - "en-GB", - "es", - "es-419", - "et", - "fi", - "fil", - "fr", - "fr-CA", - "hr", - "hu", - "id", - "it", - "ja", - "ko", - "lt", - "lv", - "ms", - "mt", - "nb", - "nl", - "pl", - "pt", - "pt-BR", - "ro", - "ru", - "sk", - "sl", - "sv", - "th", - "tr", - "vi", - "zh", - "zh-HK", - "zh-TW" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "mode": { - "description": "The mode of the Checkout Session. Pass `subscription` if the Checkout Session includes at least one recurring item.", - "enum": [ - "payment", - "setup", - "subscription" - ], - "type": "string" - }, - "payment_intent_data": { - "description": "A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode.", - "properties": { - "application_fee_amount": { - "type": "integer" - }, - "capture_method": { - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "description": { - "maxLength": 1000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "receipt_email": { - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "shipping": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "line1" - ], - "title": "address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "shipping", - "type": "object" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_params", - "type": "object" - }, - "transfer_group": { - "type": "string" - } - }, - "title": "payment_intent_data_params", - "type": "object" - }, - "payment_method_collection": { - "description": "Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.\nThis may occur if the Checkout Session includes a free trial or a discount.\n\nCan only be set in `subscription` mode. Defaults to `always`.\n\nIf you'd like information on how to collect a payment method outside of Checkout, read the guide on configuring [subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials).", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "payment_method_configuration": { - "description": "The ID of the payment method configuration to use with this Checkout session.", - "maxLength": 100, - "type": "string" - }, - "payment_method_data": { - "description": "This parameter allows you to set some attributes on the payment method created during a Checkout session.", - "properties": { - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - } - }, - "title": "payment_method_data_param", - "type": "object" - }, - "payment_method_options": { - "description": "Payment-method-specific configuration.", - "properties": { - "acss_debit": { - "properties": { - "currency": { - "enum": [ - "cad", - "usd" - ], - "type": "string" - }, - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_for": { - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "affirm": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "alipay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "amazon_pay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "bancontact": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "boleto": { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "card": { - "properties": { - "installments": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "title": "installments_param", - "type": "object" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix_kanji": { - "maxLength": 17, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "cashapp": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "customer_balance": { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_params", - "type": "object" - }, - "requested_address_types": { - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "enum": [ - "bank_transfer" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "eps": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "fpx": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "giropay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "grabpay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "ideal": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "klarna": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "konbini": { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "link": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "mobilepay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "multibanco": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "oxxo": { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "p24": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - }, - "tos_shown_and_accepted": { - "type": "boolean" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "paynow": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "paypal": { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-DE", - "de-LU", - "el-GR", - "en-GB", - "en-US", - "es-ES", - "fi-FI", - "fr-BE", - "fr-FR", - "fr-LU", - "hu-HU", - "it-IT", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "sk-SK", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reference": { - "maxLength": 127, - "type": "string" - }, - "risk_correlation_id": { - "maxLength": 32, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "pix": { - "properties": { - "expires_after_seconds": { - "type": "integer" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "revolut_pay": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sofort": { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "swish": { - "properties": { - "reference": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "us_bank_account": { - "properties": { - "financial_connections": { - "properties": { - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "wechat_pay": { - "properties": { - "app_id": { - "maxLength": 5000, - "type": "string" - }, - "client": { - "enum": [ - "android", - "ios", - "web" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "client" - ], - "title": "payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "A list of the types of payment methods (e.g., `card`) this Checkout Session can accept.\n\nYou can omit this attribute to manage your payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).\nSee [Dynamic Payment Methods](https://stripe.com/docs/payments/payment-methods/integration-options#using-dynamic-payment-methods) for more details.\n\nRead more about the supported payment methods and their requirements in our [payment\nmethod details guide](/docs/payments/checkout/payment-methods).\n\nIf multiple payment methods are passed, Checkout will dynamically reorder them to\nprioritize the most relevant payment methods based on the customer's location and\nother characteristics.", - "items": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "phone_number_collection": { - "description": "Controls phone number collection settings for the session.\n\nWe recommend that you review your privacy policy and check with your legal contacts\nbefore using this feature. Learn more about [collecting phone numbers with Checkout](https://stripe.com/docs/payments/checkout/phone-numbers).", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "phone_number_collection_params", - "type": "object" - }, - "redirect_on_completion": { - "description": "This parameter applies to `ui_mode: embedded`. Learn more about the [redirect behavior](https://stripe.com/docs/payments/checkout/custom-redirect-behavior) of embedded sessions. Defaults to `always`.", - "enum": [ - "always", - "if_required", - "never" - ], - "type": "string" - }, - "return_url": { - "description": "The URL to redirect your customer back to after they authenticate or cancel their payment on the\npayment method's app or site. This parameter is required if ui_mode is `embedded`\nand redirect-based payment methods are enabled on the session.", - "maxLength": 5000, - "type": "string" - }, - "saved_payment_method_options": { - "description": "Controls saved payment method settings for the session. Only available in `payment` and `subscription` mode.", - "properties": { - "allow_redisplay_filters": { - "items": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "type": "array" - }, - "payment_method_save": { - "enum": [ - "disabled", - "enabled" - ], - "type": "string" - } - }, - "title": "saved_payment_method_options_param", - "type": "object" - }, - "setup_intent_data": { - "description": "A subset of parameters to be passed to SetupIntent creation for Checkout Sessions in `setup` mode.", - "properties": { - "description": { - "maxLength": 1000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - } - }, - "title": "setup_intent_data_param", - "type": "object" - }, - "shipping_address_collection": { - "description": "When set, provides configuration for Checkout to collect a shipping address from a customer.", - "properties": { - "allowed_countries": { - "items": { - "enum": [ - "AC", - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CV", - "CW", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MK", - "ML", - "MM", - "MN", - "MO", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SZ", - "TA", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - "ZZ" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "allowed_countries" - ], - "title": "shipping_address_collection_params", - "type": "object" - }, - "shipping_options": { - "description": "The shipping rate options to apply to this Session. Up to a maximum of 5.", - "items": { - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - }, - "shipping_rate_data": { - "properties": { - "delivery_estimate": { - "properties": { - "maximum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - }, - "minimum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - } - }, - "title": "delivery_estimate", - "type": "object" - }, - "display_name": { - "maxLength": 100, - "type": "string" - }, - "fixed_amount": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "required": [ - "amount" - ], - "title": "currency_option", - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "fixed_amount", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - }, - "type": { - "enum": [ - "fixed_amount" - ], - "type": "string" - } - }, - "required": [ - "display_name" - ], - "title": "method_params", - "type": "object" - } - }, - "title": "shipping_option_params", - "type": "object" - }, - "type": "array" - }, - "submit_type": { - "description": "Describes the type of transaction being performed by Checkout in order to customize\nrelevant text on the page, such as the submit button. `submit_type` can only be\nspecified on Checkout Sessions in `payment` mode. If blank or `auto`, `pay` is used.", - "enum": [ - "auto", - "book", - "donate", - "pay" - ], - "type": "string" - }, - "subscription_data": { - "description": "A subset of parameters to be passed to subscription creation for Checkout Sessions in `subscription` mode.", - "properties": { - "application_fee_percent": { - "type": "number" - }, - "billing_cycle_anchor": { - "format": "unix-time", - "type": "integer" - }, - "default_tax_rates": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "description": { - "maxLength": 500, - "type": "string" - }, - "invoice_settings": { - "properties": { - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings_params", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "create_prorations", - "none" - ], - "type": "string" - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial_end": { - "format": "unix-time", - "type": "integer" - }, - "trial_period_days": { - "type": "integer" - }, - "trial_settings": { - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "title": "subscription_data_params", - "type": "object" - }, - "success_url": { - "description": "The URL to which Stripe should send customers when payment or setup\nis complete.\nThis parameter is not allowed if ui_mode is `embedded`. If you’d like to use\ninformation from the successful Checkout Session on your page, read the\nguide on [customizing your success page](https://stripe.com/docs/payments/checkout/custom-success-page).", - "maxLength": 5000, - "type": "string" - }, - "tax_id_collection": { - "description": "Controls tax ID collection during checkout.", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "tax_id_collection_params", - "type": "object" - }, - "ui_mode": { - "description": "The UI mode of the Session. Defaults to `hosted`.", - "enum": [ - "embedded", - "hosted" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/checkout.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/checkout/sessions/{session}": { - "get": { - "description": "

Retrieves a Session object.

", - "operationId": "GetCheckoutSessionsSession", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 66, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/checkout.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a Session object.

", - "operationId": "PostCheckoutSessionsSession", - "parameters": [ - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/checkout.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/checkout/sessions/{session}/expire": { - "post": { - "description": "

A Session can be expired when it is in one of these statuses: open

\n\n

After it expires, a customer can’t complete a Session and customers loading the Session see a message saying the Session is expired.

", - "operationId": "PostCheckoutSessionsSessionExpire", - "parameters": [ - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/checkout.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/checkout/sessions/{session}/line_items": { - "get": { - "description": "

When retrieving a Checkout Session, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "operationId": "GetCheckoutSessionsSessionLineItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentPagesCheckoutSessionListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/orders": { - "get": { - "description": "

Lists all Climate order objects. The orders are returned sorted by creation date, with the\nmost recently created orders appearing first.

", - "operationId": "GetClimateOrders", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/climate.order" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/climate/orders", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ClimateRemovalsOrdersList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a Climate order object for a given Climate product. The order will be processed immediately\nafter creation and payment will be deducted your Stripe balance.

", - "operationId": "PostClimateOrders", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "beneficiary": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Requested amount of carbon removal units. Either this or `metric_tons` must be specified.", - "type": "integer" - }, - "beneficiary": { - "description": "Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set.", - "properties": { - "public_name": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "public_name" - ], - "title": "beneficiary_params", - "type": "object" - }, - "currency": { - "description": "Request currency for the order as a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a supported [settlement currency for your account](https://stripe.com/docs/currencies). If omitted, the account's default currency will be used.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "metric_tons": { - "description": "Requested number of tons for the order. Either this or `amount` must be specified.", - "format": "decimal", - "type": "string" - }, - "product": { - "description": "Unique identifier of the Climate product.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "product" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/climate.order" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/orders/{order}": { - "get": { - "description": "

Retrieves the details of a Climate order object with the given ID.

", - "operationId": "GetClimateOrdersOrder", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Unique identifier of the order.", - "in": "path", - "name": "order", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/climate.order" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified order by setting the values of the parameters passed.

", - "operationId": "PostClimateOrdersOrder", - "parameters": [ - { - "description": "Unique identifier of the order.", - "in": "path", - "name": "order", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "beneficiary": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "beneficiary": { - "anyOf": [ - { - "properties": { - "public_name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "public_name" - ], - "title": "beneficiary_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the Stripe account if not set." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/climate.order" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/orders/{order}/cancel": { - "post": { - "description": "

Cancels a Climate order. You can cancel an order within 24 hours of creation. Stripe refunds the\nreservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier\nmight cancel reservations if suppliers fail to deliver. If Frontier cancels the reservation, Stripe\nprovides 90 days advance notice and refunds the amount_total.

", - "operationId": "PostClimateOrdersOrderCancel", - "parameters": [ - { - "description": "Unique identifier of the order.", - "in": "path", - "name": "order", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/climate.order" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/products": { - "get": { - "description": "

Lists all available Climate product objects.

", - "operationId": "GetClimateProducts", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/climate.product" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/climate/products", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ClimateRemovalsProductsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/products/{product}": { - "get": { - "description": "

Retrieves the details of a Climate product with the given ID.

", - "operationId": "GetClimateProductsProduct", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "product", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/climate.product" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/suppliers": { - "get": { - "description": "

Lists all available Climate supplier objects.

", - "operationId": "GetClimateSuppliers", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/climate.supplier" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/climate/suppliers", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ClimateRemovalsSuppliersList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/climate/suppliers/{supplier}": { - "get": { - "description": "

Retrieves a Climate supplier object.

", - "operationId": "GetClimateSuppliersSupplier", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "supplier", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/climate.supplier" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/confirmation_tokens/{confirmation_token}": { - "get": { - "description": "

Retrieves an existing ConfirmationToken object

", - "operationId": "GetConfirmationTokensConfirmationToken", - "parameters": [ - { - "in": "path", - "name": "confirmation_token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/confirmation_token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/country_specs": { - "get": { - "description": "

Lists all Country Spec objects available in the API.

", - "operationId": "GetCountrySpecs", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/country_spec" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/country_specs", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CountrySpecList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/country_specs/{country}": { - "get": { - "description": "

Returns a Country Spec for a given Country code.

", - "operationId": "GetCountrySpecsCountry", - "parameters": [ - { - "in": "path", - "name": "country", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/country_spec" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/coupons": { - "get": { - "description": "

Returns a list of your coupons.

", - "operationId": "GetCoupons", - "parameters": [ - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/coupon" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/coupons", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CouponsResourceCouponList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

You can create coupons easily via the coupon management page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly.

\n\n

A coupon has either a percent_off or an amount_off and currency. If you set an amount_off, that amount will be subtracted from any invoice’s subtotal. For example, an invoice with a subtotal of 100 will have a final total of 0 if a coupon with an amount_off of 200 is applied to it and an invoice with a subtotal of 300 will have a final total of 100 if a coupon with an amount_off of 200 is applied to it.

", - "operationId": "PostCoupons", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "applies_to": { - "explode": true, - "style": "deepObject" - }, - "currency_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount_off": { - "description": "A positive integer representing the amount to subtract from an invoice total (required if `percent_off` is not passed).", - "type": "integer" - }, - "applies_to": { - "description": "A hash containing directions for what this Coupon will apply discounts to.", - "properties": { - "products": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "applies_to_params", - "type": "object" - }, - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) of the `amount_off` parameter (required if `amount_off` is passed).", - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount_off": { - "type": "integer" - } - }, - "required": [ - "amount_off" - ], - "title": "currency_option", - "type": "object" - }, - "description": "Coupons defined in each available currency option (only supported if `amount_off` is passed). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "duration": { - "description": "Specifies how long the discount will be in effect if used on a subscription. Defaults to `once`.", - "enum": [ - "forever", - "once", - "repeating" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "duration_in_months": { - "description": "Required only if `duration` is `repeating`, in which case it must be a positive integer that specifies the number of months the discount will be in effect.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "Unique string of your choice that will be used to identify this coupon when applying it to a customer. If you don't want to specify a particular code, you can leave the ID blank and we'll generate a random code for you.", - "maxLength": 5000, - "type": "string" - }, - "max_redemptions": { - "description": "A positive integer specifying the number of times the coupon can be redeemed before it's no longer valid. For example, you might have a 50% off coupon that the first 20 readers of your blog can use.", - "type": "integer" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.", - "maxLength": 40, - "type": "string" - }, - "percent_off": { - "description": "A positive float larger than 0, and smaller or equal to 100, that represents the discount the coupon will apply (required if `amount_off` is not passed).", - "type": "number" - }, - "redeem_by": { - "description": "Unix timestamp specifying the last time at which the coupon can be redeemed. After the redeem_by date, the coupon can no longer be applied to new customers.", - "format": "unix-time", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/coupon" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/coupons/{coupon}": { - "delete": { - "description": "

You can delete coupons via the coupon management page of the Stripe dashboard. However, deleting a coupon does not affect any customers who have already applied the coupon; it means that new customers can’t redeem the coupon. You can also delete coupons via the API.

", - "operationId": "DeleteCouponsCoupon", - "parameters": [ - { - "in": "path", - "name": "coupon", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_coupon" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the coupon with the given ID.

", - "operationId": "GetCouponsCoupon", - "parameters": [ - { - "in": "path", - "name": "coupon", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/coupon" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the metadata of a coupon. Other coupon details (currency, duration, amount_off) are, by design, not editable.

", - "operationId": "PostCouponsCoupon", - "parameters": [ - { - "in": "path", - "name": "coupon", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "currency_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "currency_options": { - "additionalProperties": { - "properties": { - "amount_off": { - "type": "integer" - } - }, - "required": [ - "amount_off" - ], - "title": "currency_option", - "type": "object" - }, - "description": "Coupons defined in each available currency option (only supported if the coupon is amount-based). Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Name of the coupon displayed to customers on, for instance invoices, or receipts. By default the `id` is shown if `name` is not set.", - "maxLength": 40, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/coupon" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/credit_notes": { - "get": { - "description": "

Returns a list of credit notes.

", - "operationId": "GetCreditNotes", - "parameters": [ - { - "description": "Only return credit notes that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return credit notes for the customer specified by this customer ID.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return credit notes for the invoice specified by this invoice ID.", - "in": "query", - "name": "invoice", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/credit_note" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CreditNotesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Issue a credit note to adjust the amount of a finalized invoice. For a status=open invoice, a credit note reduces\nits amount_due. For a status=paid invoice, a credit note does not affect its amount_due. Instead, it can result\nin any combination of the following:

\n\n
    \n
  • Refund: create a new refund (using refund_amount) or link an existing refund (using refund).
  • \n
  • Customer balance credit: credit the customer’s balance (using credit_amount) which will be automatically applied to their next invoice when it’s finalized.
  • \n
  • Outside of Stripe credit: record the amount that is or will be credited outside of Stripe (using out_of_band_amount).
  • \n
\n\n

For post-payment credit notes the sum of the refund, credit and outside of Stripe amounts must equal the credit note total.

\n\n

You may issue multiple credit notes for an invoice. Each credit note will increment the invoice’s pre_payment_credit_notes_amount\nor post_payment_credit_notes_amount depending on its status at the time of credit note creation.

", - "operationId": "PostCreditNotes", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "lines": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "shipping_cost": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the credit note.", - "type": "integer" - }, - "credit_amount": { - "description": "The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.", - "type": "integer" - }, - "effective_at": { - "description": "The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.", - "format": "unix-time", - "type": "integer" - }, - "email_type": { - "description": "Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.", - "enum": [ - "credit_note", - "none" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice": { - "description": "ID of the invoice.", - "maxLength": 5000, - "type": "string" - }, - "lines": { - "description": "Line items that make up the credit note.", - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "invoice_line_item": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "tax_amounts": { - "anyOf": [ - { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_rate": { - "maxLength": 5000, - "type": "string" - }, - "taxable_amount": { - "type": "integer" - } - }, - "required": [ - "amount", - "tax_rate", - "taxable_amount" - ], - "title": "tax_amount_with_tax_rate_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": { - "enum": [ - "custom_line_item", - "invoice_line_item" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "credit_note_line_item_params", - "type": "object" - }, - "type": "array" - }, - "memo": { - "description": "The credit note's memo appears on the credit note PDF.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "out_of_band_amount": { - "description": "The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.", - "type": "integer" - }, - "reason": { - "description": "Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`", - "enum": [ - "duplicate", - "fraudulent", - "order_change", - "product_unsatisfactory" - ], - "type": "string" - }, - "refund": { - "description": "ID of an existing refund to link this credit note to.", - "type": "string" - }, - "refund_amount": { - "description": "The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.", - "type": "integer" - }, - "shipping_cost": { - "description": "When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.", - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "credit_note_shipping_cost", - "type": "object" - } - }, - "required": [ - "invoice" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/credit_note" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/credit_notes/preview": { - "get": { - "description": "

Get a preview of a credit note without creating it.

", - "operationId": "GetCreditNotesPreview", - "parameters": [ - { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the credit note.", - "in": "query", - "name": "amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.", - "in": "query", - "name": "credit_amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.", - "in": "query", - "name": "effective_at", - "required": false, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.", - "in": "query", - "name": "email_type", - "required": false, - "schema": { - "enum": [ - "credit_note", - "none" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "ID of the invoice.", - "in": "query", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Line items that make up the credit note.", - "explode": true, - "in": "query", - "name": "lines", - "required": false, - "schema": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "invoice_line_item": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "tax_amounts": { - "anyOf": [ - { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_rate": { - "maxLength": 5000, - "type": "string" - }, - "taxable_amount": { - "type": "integer" - } - }, - "required": [ - "amount", - "tax_rate", - "taxable_amount" - ], - "title": "tax_amount_with_tax_rate_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": { - "enum": [ - "custom_line_item", - "invoice_line_item" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "credit_note_line_item_params", - "type": "object" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The credit note's memo appears on the credit note PDF.", - "in": "query", - "name": "memo", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "explode": true, - "in": "query", - "name": "metadata", - "required": false, - "schema": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.", - "in": "query", - "name": "out_of_band_amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`", - "in": "query", - "name": "reason", - "required": false, - "schema": { - "enum": [ - "duplicate", - "fraudulent", - "order_change", - "product_unsatisfactory" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "ID of an existing refund to link this credit note to.", - "in": "query", - "name": "refund", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.", - "in": "query", - "name": "refund_amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.", - "explode": true, - "in": "query", - "name": "shipping_cost", - "required": false, - "schema": { - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "credit_note_shipping_cost", - "type": "object" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/credit_note" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/credit_notes/preview/lines": { - "get": { - "description": "

When retrieving a credit note preview, you’ll get a lines property containing the first handful of those items. This URL you can retrieve the full (paginated) list of line items.

", - "operationId": "GetCreditNotesPreviewLines", - "parameters": [ - { - "description": "The integer amount in cents (or local equivalent) representing the total amount of the credit note.", - "in": "query", - "name": "amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The integer amount in cents (or local equivalent) representing the amount to credit the customer's balance, which will be automatically applied to their next invoice.", - "in": "query", - "name": "credit_amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The date when this credit note is in effect. Same as `created` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the credit note PDF.", - "in": "query", - "name": "effective_at", - "required": false, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "Type of email to send to the customer, one of `credit_note` or `none` and the default is `credit_note`.", - "in": "query", - "name": "email_type", - "required": false, - "schema": { - "enum": [ - "credit_note", - "none" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "ID of the invoice.", - "in": "query", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Line items that make up the credit note.", - "explode": true, - "in": "query", - "name": "lines", - "required": false, - "schema": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "invoice_line_item": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "tax_amounts": { - "anyOf": [ - { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_rate": { - "maxLength": 5000, - "type": "string" - }, - "taxable_amount": { - "type": "integer" - } - }, - "required": [ - "amount", - "tax_rate", - "taxable_amount" - ], - "title": "tax_amount_with_tax_rate_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": { - "enum": [ - "custom_line_item", - "invoice_line_item" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "credit_note_line_item_params", - "type": "object" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The credit note's memo appears on the credit note PDF.", - "in": "query", - "name": "memo", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "explode": true, - "in": "query", - "name": "metadata", - "required": false, - "schema": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The integer amount in cents (or local equivalent) representing the amount that is credited outside of Stripe.", - "in": "query", - "name": "out_of_band_amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`", - "in": "query", - "name": "reason", - "required": false, - "schema": { - "enum": [ - "duplicate", - "fraudulent", - "order_change", - "product_unsatisfactory" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "ID of an existing refund to link this credit note to.", - "in": "query", - "name": "refund", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "The integer amount in cents (or local equivalent) representing the amount to refund. If set, a refund will be created for the charge associated with the invoice.", - "in": "query", - "name": "refund_amount", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "When shipping_cost contains the shipping_rate from the invoice, the shipping_cost is included in the credit note.", - "explode": true, - "in": "query", - "name": "shipping_cost", - "required": false, - "schema": { - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "credit_note_shipping_cost", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/credit_note_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CreditNoteLinesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/credit_notes/{credit_note}/lines": { - "get": { - "description": "

When retrieving a credit note, you’ll get a lines property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "operationId": "GetCreditNotesCreditNoteLines", - "parameters": [ - { - "in": "path", - "name": "credit_note", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/credit_note_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CreditNoteLinesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/credit_notes/{id}": { - "get": { - "description": "

Retrieves the credit note object with the given identifier.

", - "operationId": "GetCreditNotesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/credit_note" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing credit note.

", - "operationId": "PostCreditNotesId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "memo": { - "description": "Credit note memo.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/credit_note" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/credit_notes/{id}/void": { - "post": { - "description": "

Marks a credit note as void. Learn more about voiding credit notes.

", - "operationId": "PostCreditNotesIdVoid", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/credit_note" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customer_sessions": { - "post": { - "description": "

Creates a Customer Session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources.

", - "operationId": "PostCustomerSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "components": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "components": { - "description": "Configuration for each component. Exactly 1 component must be enabled.", - "properties": { - "buy_button": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "buy_button_param", - "type": "object" - }, - "payment_element": { - "properties": { - "enabled": { - "type": "boolean" - }, - "features": { - "properties": { - "payment_method_allow_redisplay_filters": { - "items": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "type": "array" - }, - "payment_method_redisplay": { - "enum": [ - "disabled", - "enabled" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "payment_method_redisplay_limit": { - "type": "integer" - }, - "payment_method_remove": { - "enum": [ - "disabled", - "enabled" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "payment_method_save": { - "enum": [ - "disabled", - "enabled" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "payment_method_save_usage": { - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "features_param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "payment_element_param", - "type": "object" - }, - "pricing_table": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "pricing_table_param", - "type": "object" - } - }, - "title": "components", - "type": "object" - }, - "customer": { - "description": "The ID of an existing customer for which to create the Customer Session.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "components", - "customer" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers": { - "get": { - "description": "

Returns a list of your customers. The customers are returned sorted by creation date, with the most recent customers appearing first.

", - "operationId": "GetCustomers", - "parameters": [ - { - "description": "Only return customers that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A case-sensitive filter on the list based on the customer's `email` field. The value must be a string.", - "in": "query", - "name": "email", - "required": false, - "schema": { - "maxLength": 512, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Provides a list of customers that are associated with the specified test clock. The response will not include customers with test clocks if this parameter is not set.", - "in": "query", - "name": "test_clock", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/customer" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/customers", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CustomerResourceCustomerList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new customer object.

", - "operationId": "PostCustomers", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "address": { - "explode": true, - "style": "deepObject" - }, - "cash_balance": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "preferred_locales": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "tax": { - "explode": true, - "style": "deepObject" - }, - "tax_id_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The customer's address." - }, - "balance": { - "description": "An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice.", - "type": "integer" - }, - "cash_balance": { - "description": "Balance information and default balance settings for this customer.", - "properties": { - "settings": { - "properties": { - "reconciliation_mode": { - "enum": [ - "automatic", - "manual", - "merchant_default" - ], - "type": "string" - } - }, - "title": "balance_settings_param", - "type": "object" - } - }, - "title": "cash_balance_param", - "type": "object" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard.", - "maxLength": 5000, - "type": "string" - }, - "email": { - "description": "Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*.", - "maxLength": 512, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_prefix": { - "description": "The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers.", - "maxLength": 5000, - "type": "string" - }, - "invoice_settings": { - "description": "Default invoice settings for this customer.", - "properties": { - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "footer": { - "maxLength": 5000, - "type": "string" - }, - "rendering_options": { - "anyOf": [ - { - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - } - }, - "title": "customer_rendering_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "customer_param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "The customer's full name or business name.", - "maxLength": 256, - "type": "string" - }, - "next_invoice_sequence": { - "description": "The sequence to be used on the customer's next invoice. Defaults to 1.", - "type": "integer" - }, - "payment_method": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "description": "The customer's phone number.", - "maxLength": 20, - "type": "string" - }, - "preferred_locales": { - "description": "Customer's preferred languages, ordered by preference.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "promotion_code": { - "description": "The ID of a promotion code to apply to the customer. The customer will have a discount applied on all recurring payments. Charges you create through the API will not have the discount.", - "maxLength": 5000, - "type": "string" - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "customer_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The customer's shipping information. Appears on invoices emailed to this customer." - }, - "source": { - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "tax": { - "description": "Tax details about the customer.", - "properties": { - "ip_address": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "validate_location": { - "enum": [ - "deferred", - "immediately" - ], - "type": "string" - } - }, - "title": "tax_param", - "type": "object" - }, - "tax_exempt": { - "description": "The customer's tax exemption. One of `none`, `exempt`, or `reverse`.", - "enum": [ - "", - "exempt", - "none", - "reverse" - ], - "type": "string" - }, - "tax_id_data": { - "description": "The customer's tax IDs.", - "items": { - "properties": { - "type": { - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "title": "data_params", - "type": "object" - }, - "type": "array" - }, - "test_clock": { - "description": "ID of the test clock to attach to the customer.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/search": { - "get": { - "description": "

Search for customers you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetCustomersSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for customers](https://stripe.com/docs/search#query-fields-for-customers).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/customer" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}": { - "delete": { - "description": "

Permanently deletes a customer. It cannot be undone. Also immediately cancels any active subscriptions on the customer.

", - "operationId": "DeleteCustomersCustomer", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_customer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a Customer object.

", - "operationId": "GetCustomersCustomer", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/customer" - }, - { - "$ref": "#/components/schemas/deleted_customer" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged. For example, if you pass the source parameter, that becomes the customer’s active source (e.g., a card) to be used for all charges in the future. When you update a customer to a new valid card source by passing the source parameter: for each of the customer’s current subscriptions, if the subscription bills automatically and is in the past_due state, then the latest open invoice for the subscription with automatic collection enabled will be retried. This retry will not count as an automatic retry, and will not affect the next regularly scheduled payment for the invoice. Changing the default_source for a customer will not trigger this behavior.

\n\n

This request accepts mostly the same arguments as the customer creation call.

", - "operationId": "PostCustomersCustomer", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "address": { - "explode": true, - "style": "deepObject" - }, - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "cash_balance": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "preferred_locales": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "tax": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The customer's address." - }, - "balance": { - "description": "An integer amount in cents (or local equivalent) that represents the customer's current balance, which affect the customer's future invoices. A negative amount represents a credit that decreases the amount due on an invoice; a positive amount increases the amount due on an invoice.", - "type": "integer" - }, - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "customer_payment_source_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "number": { - "maxLength": 5000, - "type": "string" - }, - "object": { - "enum": [ - "card" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "customer_payment_source_card", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).", - "x-stripeBypassValidation": true - }, - "cash_balance": { - "description": "Balance information and default balance settings for this customer.", - "properties": { - "settings": { - "properties": { - "reconciliation_mode": { - "enum": [ - "automatic", - "manual", - "merchant_default" - ], - "type": "string" - } - }, - "title": "balance_settings_param", - "type": "object" - } - }, - "title": "cash_balance_param", - "type": "object" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "default_alipay_account": { - "description": "ID of Alipay account to make the customer's new default for invoice payments.", - "maxLength": 500, - "type": "string" - }, - "default_bank_account": { - "description": "ID of bank account to make the customer's new default for invoice payments.", - "maxLength": 500, - "type": "string" - }, - "default_card": { - "description": "ID of card to make the customer's new default for invoice payments.", - "maxLength": 500, - "type": "string" - }, - "default_source": { - "description": "If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method) parameter.\n\nProvide the ID of a payment source already attached to this customer to make it this customer's default payment source.\n\nIf you want to add a new payment source and make it the default, see the [source](https://stripe.com/docs/api/customers/update#update_customer-source) property.", - "maxLength": 500, - "type": "string" - }, - "description": { - "description": "An arbitrary string that you can attach to a customer object. It is displayed alongside the customer in the dashboard.", - "maxLength": 5000, - "type": "string" - }, - "email": { - "description": "Customer's email address. It's displayed alongside the customer in your dashboard and can be useful for searching and tracking. This may be up to *512 characters*.", - "maxLength": 512, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_prefix": { - "description": "The prefix for the customer used to generate unique invoice numbers. Must be 3–12 uppercase letters or numbers.", - "maxLength": 5000, - "type": "string" - }, - "invoice_settings": { - "description": "Default invoice settings for this customer.", - "properties": { - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "footer": { - "maxLength": 5000, - "type": "string" - }, - "rendering_options": { - "anyOf": [ - { - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - } - }, - "title": "customer_rendering_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "customer_param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "The customer's full name or business name.", - "maxLength": 256, - "type": "string" - }, - "next_invoice_sequence": { - "description": "The sequence to be used on the customer's next invoice. Defaults to 1.", - "type": "integer" - }, - "phone": { - "description": "The customer's phone number.", - "maxLength": 20, - "type": "string" - }, - "preferred_locales": { - "description": "Customer's preferred languages, ordered by preference.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "promotion_code": { - "description": "The ID of a promotion code to apply to the customer. The customer will have a discount applied on all recurring payments. Charges you create through the API will not have the discount.", - "maxLength": 5000, - "type": "string" - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "customer_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The customer's shipping information. Appears on invoices emailed to this customer." - }, - "source": { - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "tax": { - "description": "Tax details about the customer.", - "properties": { - "ip_address": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "validate_location": { - "enum": [ - "deferred", - "immediately" - ], - "type": "string" - } - }, - "title": "tax_param", - "type": "object" - }, - "tax_exempt": { - "description": "The customer's tax exemption. One of `none`, `exempt`, or `reverse`.", - "enum": [ - "", - "exempt", - "none", - "reverse" - ], - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/balance_transactions": { - "get": { - "description": "

Returns a list of transactions that updated the customer’s balances.

", - "operationId": "GetCustomersCustomerBalanceTransactions", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/customer_balance_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CustomerBalanceTransactionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an immutable transaction that updates the customer’s credit balance.

", - "operationId": "PostCustomersCustomerBalanceTransactions", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The integer amount in **cents (or local equivalent)** to apply to the customer's credit balance.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies). Specifies the [`invoice_credit_balance`](https://stripe.com/docs/api/customers/object#customer_object-invoice_credit_balance) that this transaction will apply to. If the customer's `currency` is not set, it will be updated to this value.", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 350, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "required": [ - "amount", - "currency" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer_balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/balance_transactions/{transaction}": { - "get": { - "description": "

Retrieves a specific customer balance transaction that updated the customer’s balances.

", - "operationId": "GetCustomersCustomerBalanceTransactionsTransaction", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer_balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Most credit balance transaction fields are immutable, but you may update its description and metadata.

", - "operationId": "PostCustomersCustomerBalanceTransactionsTransaction", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 350, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer_balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/bank_accounts": { - "get": { - "deprecated": true, - "description": "

You can see a list of the bank accounts belonging to a Customer. Note that the 10 most recent sources are always available by default on the Customer. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional bank accounts.

", - "operationId": "GetCustomersCustomerBankAccounts", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/bank_account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you create a new credit card, you must specify a customer or recipient on which to create it.

\n\n

If the card’s owner has no default card, then the new card will become the default.\nHowever, if the owner already has a default, then it will not change.\nTo change the default, you should update the customer to have a new default_source.

", - "operationId": "PostCustomersCustomerBankAccounts", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "alipay_account": { - "description": "A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details.", - "maxLength": 5000, - "type": "string" - }, - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "customer_payment_source_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "number": { - "maxLength": 5000, - "type": "string" - }, - "object": { - "enum": [ - "card" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "customer_payment_source_card", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).", - "x-stripeBypassValidation": true - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "source": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/bank_accounts/{id}": { - "delete": { - "description": "

Delete a specified source for a given customer.

", - "operationId": "DeleteCustomersCustomerBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_source" - }, - { - "$ref": "#/components/schemas/deleted_payment_source" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "deprecated": true, - "description": "

By default, you can see the 10 most recent sources stored on a Customer directly on the object, but you can also retrieve details about a specific bank account stored on the Stripe account.

", - "operationId": "GetCustomersCustomerBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/bank_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Update a specified source for a given customer.

", - "operationId": "PostCustomersCustomerBankAccountsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "owner": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - }, - "owner": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "source_address", - "type": "object" - }, - "email": { - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "owner", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/source" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/bank_accounts/{id}/verify": { - "post": { - "description": "

Verify a specified bank account for a given customer.

", - "operationId": "PostCustomersCustomerBankAccountsIdVerify", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "amounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amounts": { - "description": "Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account.", - "items": { - "type": "integer" - }, - "type": "array" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/bank_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/cards": { - "get": { - "deprecated": true, - "description": "

You can see a list of the cards belonging to a customer.\nNote that the 10 most recent sources are always available on the Customer object.\nIf you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional cards.

", - "operationId": "GetCustomersCustomerCards", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/card" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CardList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you create a new credit card, you must specify a customer or recipient on which to create it.

\n\n

If the card’s owner has no default card, then the new card will become the default.\nHowever, if the owner already has a default, then it will not change.\nTo change the default, you should update the customer to have a new default_source.

", - "operationId": "PostCustomersCustomerCards", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "alipay_account": { - "description": "A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details.", - "maxLength": 5000, - "type": "string" - }, - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "customer_payment_source_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "number": { - "maxLength": 5000, - "type": "string" - }, - "object": { - "enum": [ - "card" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "customer_payment_source_card", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).", - "x-stripeBypassValidation": true - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "source": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/cards/{id}": { - "delete": { - "description": "

Delete a specified source for a given customer.

", - "operationId": "DeleteCustomersCustomerCardsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_source" - }, - { - "$ref": "#/components/schemas/deleted_payment_source" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "deprecated": true, - "description": "

You can always see the 10 most recent cards directly on a customer; this method lets you retrieve details about a specific card stored on the customer.

", - "operationId": "GetCustomersCustomerCardsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Update a specified source for a given customer.

", - "operationId": "PostCustomersCustomerCardsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "owner": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - }, - "owner": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "source_address", - "type": "object" - }, - "email": { - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "owner", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/source" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/cash_balance": { - "get": { - "description": "

Retrieves a customer’s cash balance.

", - "operationId": "GetCustomersCustomerCashBalance", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/cash_balance" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Changes the settings on a customer’s cash balance.

", - "operationId": "PostCustomersCustomerCashBalance", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "settings": { - "description": "A hash of settings for this cash balance.", - "properties": { - "reconciliation_mode": { - "enum": [ - "automatic", - "manual", - "merchant_default" - ], - "type": "string" - } - }, - "title": "balance_settings_param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/cash_balance" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/cash_balance_transactions": { - "get": { - "description": "

Returns a list of transactions that modified the customer’s cash balance.

", - "operationId": "GetCustomersCustomerCashBalanceTransactions", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "Customers with certain payments enabled have a cash balance, representing funds that were paid\nby the customer to a merchant, but have not yet been allocated to a payment. Cash Balance Transactions\nrepresent when funds are moved into or out of this balance. This includes funding by the customer, allocation\nto payments, and refunds to the customer.", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CustomerCashBalanceTransactionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/cash_balance_transactions/{transaction}": { - "get": { - "description": "

Retrieves a specific cash balance transaction, which updated the customer’s cash balance.

", - "operationId": "GetCustomersCustomerCashBalanceTransactionsTransaction", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/discount": { - "delete": { - "description": "

Removes the currently applied discount on a customer.

", - "operationId": "DeleteCustomersCustomerDiscount", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_discount" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "", - "operationId": "GetCustomersCustomerDiscount", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/discount" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/funding_instructions": { - "post": { - "description": "

Retrieve funding instructions for a customer cash balance. If funding instructions do not yet exist for the customer, new\nfunding instructions will be created. If funding instructions have already been created for a given customer, the same\nfunding instructions will be retrieved. In other words, we will return the same funding instructions each time.

", - "operationId": "PostCustomersCustomerFundingInstructions", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_transfer": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bank_transfer": { - "description": "Additional parameters for `bank_transfer` funding types", - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_account_params", - "type": "object" - }, - "requested_address_types": { - "items": { - "enum": [ - "iban", - "sort_code", - "spei", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "bank_transfer_params", - "type": "object" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "funding_type": { - "description": "The `funding_type` to get the instructions for.", - "enum": [ - "bank_transfer" - ], - "type": "string" - } - }, - "required": [ - "bank_transfer", - "currency", - "funding_type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/funding_instructions" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/payment_methods": { - "get": { - "description": "

Returns a list of PaymentMethods for a given Customer

", - "operationId": "GetCustomersCustomerPaymentMethods", - "parameters": [ - { - "description": "This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.", - "in": "query", - "name": "allow_redisplay", - "required": false, - "schema": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "style": "form" - }, - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_method" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "CustomerPaymentMethodResourceList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/payment_methods/{payment_method}": { - "get": { - "description": "

Retrieves a PaymentMethod object for a given Customer.

", - "operationId": "GetCustomersCustomerPaymentMethodsPaymentMethod", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "payment_method", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/sources": { - "get": { - "description": "

List sources for a specified customer.

", - "operationId": "GetCustomersCustomerSources", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filter sources according to a particular object type.", - "in": "query", - "name": "object", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/source" - } - ], - "title": "Polymorphic", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ApmsSourcesSourceList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you create a new credit card, you must specify a customer or recipient on which to create it.

\n\n

If the card’s owner has no default card, then the new card will become the default.\nHowever, if the owner already has a default, then it will not change.\nTo change the default, you should update the customer to have a new default_source.

", - "operationId": "PostCustomersCustomerSources", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "alipay_account": { - "description": "A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details.", - "maxLength": 5000, - "type": "string" - }, - "bank_account": { - "anyOf": [ - { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "object": { - "enum": [ - "bank_account" - ], - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "customer_payment_source_bank_account", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details." - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "number": { - "maxLength": 5000, - "type": "string" - }, - "object": { - "enum": [ - "card" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "customer_payment_source_card", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).", - "x-stripeBypassValidation": true - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "source": { - "description": "Please refer to full [documentation](https://stripe.com/docs/api) instead.", - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/sources/{id}": { - "delete": { - "description": "

Delete a specified source for a given customer.

", - "operationId": "DeleteCustomersCustomerSourcesId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/payment_source" - }, - { - "$ref": "#/components/schemas/deleted_payment_source" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieve a specified source for a given customer.

", - "operationId": "GetCustomersCustomerSourcesId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 500, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Update a specified source for a given customer.

", - "operationId": "PostCustomersCustomerSourcesId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "owner": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder_name": { - "description": "The name of the person or business that owns the bank account.", - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "description": "The type of entity that holds the account. This can be either `individual` or `company`.", - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "address_city": { - "description": "City/District/Suburb/Town/Village.", - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "description": "Billing address country, if provided when creating card.", - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "description": "Address line 1 (Street address/PO Box/Company name).", - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "description": "Address line 2 (Apartment/Suite/Unit/Building).", - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "description": "State/County/Province/Region.", - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "description": "ZIP or postal code.", - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "description": "Two digit number representing the card’s expiration month.", - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "description": "Four digit number representing the card’s expiration year.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "Cardholder name.", - "maxLength": 5000, - "type": "string" - }, - "owner": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "source_address", - "type": "object" - }, - "email": { - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "owner", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/card" - }, - { - "$ref": "#/components/schemas/bank_account" - }, - { - "$ref": "#/components/schemas/source" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/sources/{id}/verify": { - "post": { - "description": "

Verify a specified bank account for a given customer.

", - "operationId": "PostCustomersCustomerSourcesIdVerify", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "amounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amounts": { - "description": "Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account.", - "items": { - "type": "integer" - }, - "type": "array" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/bank_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/subscriptions": { - "get": { - "description": "

You can see a list of the customer’s active subscriptions. Note that the 10 most recent active subscriptions are always available by default on the customer object. If you need more than those 10, you can use the limit and starting_after parameters to page through additional subscriptions.

", - "operationId": "GetCustomersCustomerSubscriptions", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/subscription" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SubscriptionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new subscription on an existing customer.

", - "operationId": "PostCustomersCustomerSubscriptions", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "add_invoice_items": { - "explode": true, - "style": "deepObject" - }, - "application_fee_percent": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "billing_thresholds": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_settings": { - "explode": true, - "style": "deepObject" - }, - "pending_invoice_item_interval": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - }, - "trial_end": { - "explode": true, - "style": "deepObject" - }, - "trial_settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "add_invoice_items": { - "description": "A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items.", - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions)." - }, - "automatic_tax": { - "description": "Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "backdate_start_date": { - "description": "For new subscriptions, a past timestamp to backdate the subscription's start date to. If set, the first invoice will contain a proration for the timespan between the start date and the current time. Can be combined with trials and the billing cycle anchor.", - "format": "unix-time", - "type": "integer" - }, - "billing_cycle_anchor": { - "description": "A future timestamp in UTC format to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). The anchor is the reference point that aligns future billing cycle dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals.", - "format": "unix-time", - "type": "integer", - "x-stripeBypassValidation": true - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds." - }, - "cancel_at": { - "description": "A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period.", - "format": "unix-time", - "type": "integer" - }, - "cancel_at_period_end": { - "description": "Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.", - "type": "boolean" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "description": "The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "days_until_due": { - "description": "Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`.", - "type": "integer" - }, - "default_payment_method": { - "description": "ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "maxLength": 5000, - "type": "string" - }, - "default_source": { - "description": "ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_settings": { - "description": "All invoices will be billed using the specified settings.", - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings_param", - "type": "object" - }, - "items": { - "description": "A list of up to 20 subscription items, each with an attached price.", - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_create_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "off_session": { - "description": "Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session).", - "type": "boolean" - }, - "payment_behavior": { - "description": "Only applies to subscriptions with `collection_method=charge_automatically`.\n\nUse `allow_incomplete` to create Subscriptions with `status=incomplete` if the first invoice can't be paid. Creating Subscriptions with this status allows you to manage scenarios where additional customer actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.\n\nUse `default_incomplete` to create Subscriptions with `status=incomplete` when the first invoice requires payment, otherwise start as active. Subscriptions transition to `status=active` when successfully confirming the PaymentIntent on the first invoice. This allows simpler management of scenarios where additional customer actions are needed to pay a subscription’s invoice, such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. If the PaymentIntent is not confirmed within 23 hours Subscriptions transition to `status=incomplete_expired`, which is a terminal state.\n\nUse `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's first invoice can't be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further customer action is needed, this parameter doesn't create a Subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more.\n\n`pending_if_incomplete` is only used with updates and cannot be passed when creating a Subscription.\n\nSubscriptions with `collection_method=send_invoice` are automatically activated regardless of the first Invoice status.", - "enum": [ - "allow_incomplete", - "default_incomplete", - "error_if_incomplete", - "pending_if_incomplete" - ], - "type": "string" - }, - "payment_settings": { - "description": "Payment settings to pass to invoices created by the subscription.", - "properties": { - "payment_method_options": { - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string" - } - }, - "title": "subscription_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_param", - "type": "object" - }, - "type": { - "type": "string" - } - }, - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "save_default_payment_method": { - "enum": [ - "off", - "on_subscription" - ], - "type": "string" - } - }, - "title": "payment_settings", - "type": "object" - }, - "pending_invoice_item_interval": { - "anyOf": [ - { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "pending_invoice_item_interval_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval." - }, - "promotion_code": { - "description": "The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor`. If no value is passed, the default is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "transfer_data": { - "description": "If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges.", - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more." - }, - "trial_from_plan": { - "description": "Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "type": "boolean" - }, - "trial_period_days": { - "description": "Integer representing the number of trial period days before the customer is charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "type": "integer" - }, - "trial_settings": { - "description": "Settings related to subscription trials.", - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/subscriptions/{subscription_exposed_id}": { - "delete": { - "description": "

Cancels a customer’s subscription. If you set the at_period_end parameter to true, the subscription will remain active until the end of the period, at which point it will be canceled and not renewed. Otherwise, with the default false value, the subscription is terminated immediately. In either case, the customer will not be charged again for the subscription.

\n\n

Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

\n\n

By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

", - "operationId": "DeleteCustomersCustomerSubscriptionsSubscriptionExposedId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_now": { - "description": "Can be set to `true` if `at_period_end` is not set to `true`. Will generate a final invoice that invoices for any un-invoiced metered usage and new/pending proration invoice items.", - "type": "boolean" - }, - "prorate": { - "description": "Can be set to `true` if `at_period_end` is not set to `true`. Will generate a proration invoice item that credits remaining unused time until the subscription period end.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the subscription with the given ID.

", - "operationId": "GetCustomersCustomerSubscriptionsSubscriptionExposedId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing subscription on a customer to match the specified parameters. When changing plans or quantities, we will optionally prorate the price we charge next month to make up for any price changes. To preview how the proration will be calculated, use the upcoming invoice endpoint.

", - "operationId": "PostCustomersCustomerSubscriptionsSubscriptionExposedId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "add_invoice_items": { - "explode": true, - "style": "deepObject" - }, - "application_fee_percent": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "billing_thresholds": { - "explode": true, - "style": "deepObject" - }, - "cancel_at": { - "explode": true, - "style": "deepObject" - }, - "cancellation_details": { - "explode": true, - "style": "deepObject" - }, - "default_source": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "pause_collection": { - "explode": true, - "style": "deepObject" - }, - "payment_settings": { - "explode": true, - "style": "deepObject" - }, - "pending_invoice_item_interval": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - }, - "trial_end": { - "explode": true, - "style": "deepObject" - }, - "trial_settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "add_invoice_items": { - "description": "A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items.", - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions)." - }, - "automatic_tax": { - "description": "Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "description": "Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).", - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds." - }, - "cancel_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period." - }, - "cancel_at_period_end": { - "description": "Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.", - "type": "boolean" - }, - "cancellation_details": { - "description": "Details about why this subscription was cancelled", - "properties": { - "comment": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "feedback": { - "enum": [ - "", - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - } - }, - "title": "cancellation_details_param", - "type": "object" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "description": "The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "days_until_due": { - "description": "Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`.", - "type": "integer" - }, - "default_payment_method": { - "description": "ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "maxLength": 5000, - "type": "string" - }, - "default_source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source)." - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. Pass an empty string to remove previously-defined tax rates." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_settings": { - "description": "All invoices will be billed using the specified settings.", - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings_param", - "type": "object" - }, - "items": { - "description": "A list of up to 20 subscription items, each with an attached price.", - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "off_session": { - "description": "Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session).", - "type": "boolean" - }, - "pause_collection": { - "anyOf": [ - { - "properties": { - "behavior": { - "enum": [ - "keep_as_draft", - "mark_uncollectible", - "void" - ], - "type": "string" - }, - "resumes_at": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "behavior" - ], - "title": "pause_collection_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](/billing/subscriptions/pause-payment)." - }, - "payment_behavior": { - "description": "Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.\n\nUse `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method.\n\nUse `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes).\n\nUse `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more.", - "enum": [ - "allow_incomplete", - "default_incomplete", - "error_if_incomplete", - "pending_if_incomplete" - ], - "type": "string" - }, - "payment_settings": { - "description": "Payment settings to pass to invoices created by the subscription.", - "properties": { - "payment_method_options": { - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string" - } - }, - "title": "subscription_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_param", - "type": "object" - }, - "type": { - "type": "string" - } - }, - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "save_default_payment_method": { - "enum": [ - "off", - "on_subscription" - ], - "type": "string" - } - }, - "title": "payment_settings", - "type": "object" - }, - "pending_invoice_item_interval": { - "anyOf": [ - { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "pending_invoice_item_interval_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval." - }, - "promotion_code": { - "description": "The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "description": "If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#upcoming_invoice) endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations.", - "format": "unix-time", - "type": "integer" - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value." - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`." - }, - "trial_from_plan": { - "description": "Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "type": "boolean" - }, - "trial_settings": { - "description": "Settings related to subscription trials.", - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount": { - "delete": { - "description": "

Removes the currently applied discount on a customer.

", - "operationId": "DeleteCustomersCustomerSubscriptionsSubscriptionExposedIdDiscount", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_discount" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "", - "operationId": "GetCustomersCustomerSubscriptionsSubscriptionExposedIdDiscount", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/discount" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/tax_ids": { - "get": { - "description": "

Returns a list of tax IDs for a customer.

", - "operationId": "GetCustomersCustomerTaxIds", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax_id" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxIDsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new tax_id object for a customer.

", - "operationId": "PostCustomersCustomerTaxIds", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "Type of the tax ID, one of `ad_nrt`, `ae_trn`, `ar_cuit`, `au_abn`, `au_arn`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `hk_br`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kr_brn`, `kz_bin`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sv_nit`, `th_vat`, `tr_tin`, `tw_vat`, `ua_vat`, `us_ein`, `uy_ruc`, `ve_rif`, `vn_tin`, or `za_vat`", - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "description": "Value of the tax ID.", - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_id" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/customers/{customer}/tax_ids/{id}": { - "delete": { - "description": "

Deletes an existing tax_id object.

", - "operationId": "DeleteCustomersCustomerTaxIdsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_tax_id" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the tax_id object with the given identifier.

", - "operationId": "GetCustomersCustomerTaxIdsId", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_id" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/disputes": { - "get": { - "description": "

Returns a list of your disputes.

", - "operationId": "GetDisputes", - "parameters": [ - { - "description": "Only return disputes associated to the charge specified by this charge ID.", - "in": "query", - "name": "charge", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return disputes that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/dispute" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/disputes", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "DisputeList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/disputes/{dispute}": { - "get": { - "description": "

Retrieves the dispute with the given ID.

", - "operationId": "GetDisputesDispute", - "parameters": [ - { - "in": "path", - "name": "dispute", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you get a dispute, contacting your customer is always the best first step. If that doesn’t work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your dashboard, but if you prefer, you can use the API to submit evidence programmatically.

\n\n

Depending on your dispute type, different evidence fields will give you a better chance of winning your dispute. To figure out which evidence fields to provide, see our guide to dispute types.

", - "operationId": "PostDisputesDispute", - "parameters": [ - { - "in": "path", - "name": "dispute", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "evidence": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "evidence": { - "description": "Evidence to upload, to respond to a dispute. Updating any field in the hash will submit all fields in the hash for review. The combined character count of all fields is limited to 150,000.", - "properties": { - "access_activity_log": { - "maxLength": 20000, - "type": "string" - }, - "billing_address": { - "maxLength": 5000, - "type": "string" - }, - "cancellation_policy": { - "type": "string" - }, - "cancellation_policy_disclosure": { - "maxLength": 20000, - "type": "string" - }, - "cancellation_rebuttal": { - "maxLength": 20000, - "type": "string" - }, - "customer_communication": { - "type": "string" - }, - "customer_email_address": { - "maxLength": 5000, - "type": "string" - }, - "customer_name": { - "maxLength": 5000, - "type": "string" - }, - "customer_purchase_ip": { - "maxLength": 5000, - "type": "string" - }, - "customer_signature": { - "type": "string" - }, - "duplicate_charge_documentation": { - "type": "string" - }, - "duplicate_charge_explanation": { - "maxLength": 20000, - "type": "string" - }, - "duplicate_charge_id": { - "maxLength": 5000, - "type": "string" - }, - "product_description": { - "maxLength": 20000, - "type": "string" - }, - "receipt": { - "type": "string" - }, - "refund_policy": { - "type": "string" - }, - "refund_policy_disclosure": { - "maxLength": 20000, - "type": "string" - }, - "refund_refusal_explanation": { - "maxLength": 20000, - "type": "string" - }, - "service_date": { - "maxLength": 5000, - "type": "string" - }, - "service_documentation": { - "type": "string" - }, - "shipping_address": { - "maxLength": 5000, - "type": "string" - }, - "shipping_carrier": { - "maxLength": 5000, - "type": "string" - }, - "shipping_date": { - "maxLength": 5000, - "type": "string" - }, - "shipping_documentation": { - "type": "string" - }, - "shipping_tracking_number": { - "maxLength": 5000, - "type": "string" - }, - "uncategorized_file": { - "type": "string" - }, - "uncategorized_text": { - "maxLength": 20000, - "type": "string" - } - }, - "title": "dispute_evidence_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "submit": { - "description": "Whether to immediately submit evidence to the bank. If `false`, evidence is staged on the dispute. Staged evidence is visible in the API and Dashboard, and can be submitted to the bank by making another request with this attribute set to `true` (the default).", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/disputes/{dispute}/close": { - "post": { - "description": "

Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost.

\n\n

The status of the dispute will change from needs_response to lost. Closing a dispute is irreversible.

", - "operationId": "PostDisputesDisputeClose", - "parameters": [ - { - "in": "path", - "name": "dispute", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/entitlements/active_entitlements": { - "get": { - "description": "

Retrieve a list of active entitlements for a customer

", - "operationId": "GetEntitlementsActiveEntitlements", - "parameters": [ - { - "description": "The ID of the customer.", - "in": "query", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/entitlements.active_entitlement" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "EntitlementsResourceCustomerEntitlementList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/entitlements/active_entitlements/{id}": { - "get": { - "description": "

Retrieve an active entitlement

", - "operationId": "GetEntitlementsActiveEntitlementsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The ID of the entitlement.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/entitlements.active_entitlement" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/entitlements/features": { - "get": { - "description": "

Retrieve a list of features

", - "operationId": "GetEntitlementsFeatures", - "parameters": [ - { - "description": "If set, filter results to only include features with the given archive status.", - "in": "query", - "name": "archived", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "If set, filter results to only include features with the given lookup_key.", - "in": "query", - "name": "lookup_key", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/entitlements.feature" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/entitlements/features", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "EntitlementsResourceFeatureList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a feature

", - "operationId": "PostEntitlementsFeatures", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "lookup_key": { - "description": "A unique key you provide as your own system identifier. This may be up to 80 characters.", - "maxLength": 80, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", - "type": "object" - }, - "name": { - "description": "The feature's name, for your own purpose, not meant to be displayable to the customer.", - "maxLength": 80, - "type": "string" - } - }, - "required": [ - "lookup_key", - "name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/entitlements.feature" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/entitlements/features/{id}": { - "get": { - "description": "

Retrieves a feature

", - "operationId": "GetEntitlementsFeaturesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The ID of the feature.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/entitlements.feature" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Update a feature’s metadata or permanently deactivate it.

", - "operationId": "PostEntitlementsFeaturesId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Inactive features cannot be attached to new products and will not be returned from the features list endpoint.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format." - }, - "name": { - "description": "The feature's name, for your own purpose, not meant to be displayable to the customer.", - "maxLength": 80, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/entitlements.feature" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/ephemeral_keys": { - "post": { - "description": "

Creates a short-lived API key for a given resource.

", - "operationId": "PostEphemeralKeys", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer": { - "description": "The ID of the Customer you'd like to modify using the resulting ephemeral key.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "issuing_card": { - "description": "The ID of the Issuing Card you'd like to access using the resulting ephemeral key.", - "maxLength": 5000, - "type": "string" - }, - "nonce": { - "description": "A single-use token, created by Stripe.js, used for creating ephemeral keys for Issuing Cards without exchanging sensitive information.", - "maxLength": 5000, - "type": "string" - }, - "verification_session": { - "description": "The ID of the Identity VerificationSession you'd like to access using the resulting ephemeral key", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ephemeral_key" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/ephemeral_keys/{key}": { - "delete": { - "description": "

Invalidates a short-lived API key for a given resource.

", - "operationId": "DeleteEphemeralKeysKey", - "parameters": [ - { - "in": "path", - "name": "key", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ephemeral_key" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/events": { - "get": { - "description": "

List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in event object api_version attribute (not according to your current Stripe API version or Stripe-Version header).

", - "operationId": "GetEvents", - "parameters": [ - { - "description": "Only return events that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Filter events by whether all webhooks were successfully delivered. If false, events which are still pending or have failed all delivery attempts to a webhook endpoint will be returned.", - "in": "query", - "name": "delivery_success", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A string containing a specific event name, or group of events using * as a wildcard. The list will be filtered to include only events with a matching event property.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "An array of up to 20 strings containing specific event names. The list will be filtered to include only events with a matching event property. You may pass either `type` or `types`, but not both.", - "explode": true, - "in": "query", - "name": "types", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/event" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/events", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "NotificationEventList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/events/{id}": { - "get": { - "description": "

Retrieves the details of an event if it was created in the last 30 days. Supply the unique identifier of the event, which you might have received in a webhook.

", - "operationId": "GetEventsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/event" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/exchange_rates": { - "get": { - "description": "

Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports.

", - "operationId": "GetExchangeRates", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with the exchange rate for currency X your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and total number of supported payout currencies, and the default is the max.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is the currency that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with the exchange rate for currency X, your subsequent call can include `starting_after=X` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/exchange_rate" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/exchange_rates", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ExchangeRateList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/exchange_rates/{rate_id}": { - "get": { - "description": "

Retrieves the exchange rates from the given currency to every supported currency.

", - "operationId": "GetExchangeRatesRateId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "rate_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/exchange_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/file_links": { - "get": { - "description": "

Returns a list of file links.

", - "operationId": "GetFileLinks", - "parameters": [ - { - "description": "Only return links that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Filter links by their expiration status. By default, Stripe returns all links.", - "in": "query", - "name": "expired", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "Only return links for the given file.", - "in": "query", - "name": "file", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/file_link" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/file_links", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FileResourceFileLinkList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new file link object.

", - "operationId": "PostFileLinks", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "The link isn't usable after this future timestamp.", - "format": "unix-time", - "type": "integer" - }, - "file": { - "description": "The ID of the file. The file's `purpose` must be one of the following: `business_icon`, `business_logo`, `customer_signature`, `dispute_evidence`, `finance_report_run`, `identity_document_downloadable`, `pci_document`, `selfie`, `sigma_scheduled_query`, `tax_document_user_upload`, or `terminal_reader_splashscreen`.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "required": [ - "file" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/file_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/file_links/{link}": { - "get": { - "description": "

Retrieves the file link with the given ID.

", - "operationId": "GetFileLinksLink", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "link", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/file_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing file link object. Expired links can no longer be updated.

", - "operationId": "PostFileLinksLink", - "parameters": [ - { - "in": "path", - "name": "link", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "expires_at": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A future timestamp after which the link will no longer be usable, or `now` to expire the link immediately." - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/file_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/files": { - "get": { - "description": "

Returns a list of the files that your account has access to. Stripe sorts and returns the files by their creation dates, placing the most recently created files at the top.

", - "operationId": "GetFiles", - "parameters": [ - { - "description": "Only return files that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filter queries by the file purpose. If you don't provide a purpose, the queries return unfiltered files.", - "in": "query", - "name": "purpose", - "required": false, - "schema": { - "enum": [ - "account_requirement", - "additional_verification", - "business_icon", - "business_logo", - "customer_signature", - "dispute_evidence", - "document_provider_identity_document", - "finance_report_run", - "identity_document", - "identity_document_downloadable", - "pci_document", - "selfie", - "sigma_scheduled_query", - "tax_document_user_upload", - "terminal_reader_splashscreen" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/file" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/files", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FileResourceFileList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

To upload a file to Stripe, you need to send a request of type multipart/form-data. Include the file you want to upload in the request, and the parameters for creating a file.

\n\n

All of Stripe’s officially supported Client libraries support sending multipart/form-data.

", - "operationId": "PostFiles", - "requestBody": { - "content": { - "multipart/form-data": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "file_link_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "file": { - "description": "A file to upload. Make sure that the specifications follow RFC 2388, which defines file transfers for the `multipart/form-data` protocol.", - "format": "binary", - "type": "string" - }, - "file_link_data": { - "description": "Optional parameters that automatically create a [file link](https://stripe.com/docs/api#file_links) for the newly created file.", - "properties": { - "create": { - "type": "boolean" - }, - "expires_at": { - "format": "unix-time", - "type": "integer" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "create" - ], - "title": "file_link_creation_params", - "type": "object" - }, - "purpose": { - "description": "The [purpose](https://stripe.com/docs/file-upload#uploading-a-file) of the uploaded file.", - "enum": [ - "account_requirement", - "additional_verification", - "business_icon", - "business_logo", - "customer_signature", - "dispute_evidence", - "identity_document", - "pci_document", - "tax_document_user_upload", - "terminal_reader_splashscreen" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "file", - "purpose" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/file" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - }, - "servers": [ - { - "url": "https://files.stripe.com/" - } - ] - } - }, - "/v1/files/{file}": { - "get": { - "description": "

Retrieves the details of an existing file object. After you supply a unique file ID, Stripe returns the corresponding file object. Learn how to access file contents.

", - "operationId": "GetFilesFile", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "file", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/file" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts": { - "get": { - "description": "

Returns a list of Financial Connections Account objects.

", - "operationId": "GetFinancialConnectionsAccounts", - "parameters": [ - { - "description": "If present, only return accounts that belong to the specified account holder. `account_holder[customer]` and `account_holder[account]` are mutually exclusive.", - "explode": true, - "in": "query", - "name": "account_holder", - "required": false, - "schema": { - "properties": { - "account": { - "maxLength": 5000, - "type": "string" - }, - "customer": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "accountholder_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "If present, only return accounts that were collected as part of the given session.", - "in": "query", - "name": "session", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/financial_connections/accounts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceLinkedAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts/{account}": { - "get": { - "description": "

Retrieves the details of an Financial Connections Account.

", - "operationId": "GetFinancialConnectionsAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts/{account}/disconnect": { - "post": { - "description": "

Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).

", - "operationId": "PostFinancialConnectionsAccountsAccountDisconnect", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts/{account}/owners": { - "get": { - "description": "

Lists all owners for a given Account

", - "operationId": "GetFinancialConnectionsAccountsAccountOwners", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The ID of the ownership object to fetch owners from.", - "in": "query", - "name": "ownership", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.account_owner" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceOwnerList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts/{account}/refresh": { - "post": { - "description": "

Refreshes the data associated with a Financial Connections Account.

", - "operationId": "PostFinancialConnectionsAccountsAccountRefresh", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "The list of account features that you would like to refresh.", - "items": { - "enum": [ - "balance", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "required": [ - "features" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts/{account}/subscribe": { - "post": { - "description": "

Subscribes to periodic refreshes of data associated with a Financial Connections Account.

", - "operationId": "PostFinancialConnectionsAccountsAccountSubscribe", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "The list of account features to which you would like to subscribe.", - "items": { - "enum": [ - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "required": [ - "features" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/accounts/{account}/unsubscribe": { - "post": { - "description": "

Unsubscribes from periodic refreshes of data associated with a Financial Connections Account.

", - "operationId": "PostFinancialConnectionsAccountsAccountUnsubscribe", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "The list of account features from which you would like to unsubscribe.", - "items": { - "enum": [ - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "required": [ - "features" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/sessions": { - "post": { - "description": "

To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.

", - "operationId": "PostFinancialConnectionsSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "account_holder": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "filters": { - "explode": true, - "style": "deepObject" - }, - "permissions": { - "explode": true, - "style": "deepObject" - }, - "prefetch": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder": { - "description": "The account holder to link accounts for.", - "properties": { - "account": { - "maxLength": 5000, - "type": "string" - }, - "customer": { - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "account", - "customer" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "accountholder_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "filters": { - "description": "Filters to restrict the kinds of accounts to collect.", - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "credit_card", - "line_of_credit", - "mortgage", - "savings" - ], - "type": "string" - }, - "type": "array" - }, - "countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "filters_params", - "type": "object" - }, - "permissions": { - "description": "List of data features that you would like to request access to.\n\nPossible values are `balances`, `transactions`, `ownership`, and `payment_method`.", - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "description": "List of data features that you would like to retrieve upon account creation.", - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "description": "For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_holder", - "permissions" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/sessions/{session}": { - "get": { - "description": "

Retrieves the details of a Financial Connections Session

", - "operationId": "GetFinancialConnectionsSessionsSession", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/transactions": { - "get": { - "description": "

Returns a list of Financial Connections Transaction objects.

", - "operationId": "GetFinancialConnectionsTransactions", - "parameters": [ - { - "description": "The ID of the Stripe account whose transactions will be retrieved.", - "in": "query", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A filter on the list based on the object `transacted_at` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with the following options:", - "explode": true, - "in": "query", - "name": "transacted_at", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A filter on the list based on the object `transaction_refresh` field. The value can be a dictionary with the following options:", - "explode": true, - "in": "query", - "name": "transaction_refresh", - "required": false, - "schema": { - "properties": { - "after": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "after" - ], - "title": "transaction_refresh_params", - "type": "object" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/financial_connections/transactions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceTransactionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/financial_connections/transactions/{transaction}": { - "get": { - "description": "

Retrieves the details of a Financial Connections Transaction

", - "operationId": "GetFinancialConnectionsTransactionsTransaction", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/forwarding/requests": { - "get": { - "description": "

Lists all ForwardingRequest objects.

", - "operationId": "GetForwardingRequests", - "parameters": [ - { - "description": "Similar to other List endpoints, filters results based on created timestamp. You can pass gt, gte, lt, and lte timestamp values.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "created_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A pagination cursor to fetch the previous page of the list. The value must be a ForwardingRequest ID.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A pagination cursor to fetch the next page of the list. The value must be a ForwardingRequest ID.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "List of ForwardingRequest data.", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/forwarding.request" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ForwardingRequestList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a ForwardingRequest object.

", - "operationId": "PostForwardingRequests", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "replacements": { - "explode": true, - "style": "deepObject" - }, - "request": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "payment_method": { - "description": "The PaymentMethod to insert into the forwarded request. Forwarding previously consumed PaymentMethods is allowed.", - "maxLength": 5000, - "type": "string" - }, - "replacements": { - "description": "The field kinds to be replaced in the forwarded request.", - "items": { - "enum": [ - "card_cvc", - "card_expiry", - "card_number", - "cardholder_name" - ], - "type": "string" - }, - "type": "array" - }, - "request": { - "description": "The request body and headers to be sent to the destination endpoint.", - "properties": { - "body": { - "maxLength": 5000, - "type": "string" - }, - "headers": { - "items": { - "properties": { - "name": { - "maxLength": 5000, - "type": "string" - }, - "value": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "header_param", - "type": "object" - }, - "type": "array" - } - }, - "title": "request_param", - "type": "object" - }, - "url": { - "description": "The destination URL for the forwarded request. Must be supported by the config.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "payment_method", - "replacements", - "url" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/forwarding.request" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/forwarding/requests/{id}": { - "get": { - "description": "

Retrieves a ForwardingRequest object.

", - "operationId": "GetForwardingRequestsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/forwarding.request" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/identity/verification_reports": { - "get": { - "description": "

List all verification reports.

", - "operationId": "GetIdentityVerificationReports", - "parameters": [ - { - "description": "A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems.", - "in": "query", - "name": "client_reference_id", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return VerificationReports that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return VerificationReports of this type", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "document", - "id_number" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "Only return VerificationReports created by this VerificationSession ID. It is allowed to provide a VerificationIntent ID.", - "in": "query", - "name": "verification_session", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/identity.verification_report" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/identity/verification_reports", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "GelatoVerificationReportList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/identity/verification_reports/{report}": { - "get": { - "description": "

Retrieves an existing VerificationReport

", - "operationId": "GetIdentityVerificationReportsReport", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "report", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/identity.verification_report" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/identity/verification_sessions": { - "get": { - "description": "

Returns a list of VerificationSessions

", - "operationId": "GetIdentityVerificationSessions", - "parameters": [ - { - "description": "A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems.", - "in": "query", - "name": "client_reference_id", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return VerificationSessions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "query", - "name": "related_customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return VerificationSessions with this status. [Learn more about the lifecycle of sessions](https://stripe.com/docs/identity/how-sessions-work).", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "processing", - "requires_input", - "verified" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/identity.verification_session" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/identity/verification_sessions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "GelatoVerificationSessionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a VerificationSession object.

\n\n

After the VerificationSession is created, display a verification modal using the session client_secret or send your users to the session’s url.

\n\n

If your API key is in test mode, verification checks won’t actually process, though everything else will occur as if in live mode.

\n\n

Related guide: Verify your users’ identity documents

", - "operationId": "PostIdentityVerificationSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "options": { - "explode": true, - "style": "deepObject" - }, - "provided_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "client_reference_id": { - "description": "A string to reference this user. This can be a customer ID, a session ID, or similar, and can be used to reconcile this verification with your internal systems.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "options": { - "description": "A set of options for the session’s verification checks.", - "properties": { - "document": { - "anyOf": [ - { - "properties": { - "allowed_types": { - "items": { - "enum": [ - "driving_license", - "id_card", - "passport" - ], - "type": "string" - }, - "type": "array" - }, - "require_id_number": { - "type": "boolean" - }, - "require_live_capture": { - "type": "boolean" - }, - "require_matching_selfie": { - "type": "boolean" - } - }, - "title": "document_options", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "session_options_param", - "type": "object" - }, - "provided_details": { - "description": "Details provided about the user being verified. These details may be shown to the user.", - "properties": { - "email": { - "type": "string" - }, - "phone": { - "type": "string" - } - }, - "title": "provided_details_param", - "type": "object" - }, - "related_customer": { - "description": "Token referencing a Customer resource.", - "maxLength": 5000, - "type": "string" - }, - "return_url": { - "description": "The URL that the user will be redirected to upon completing the verification flow.", - "type": "string" - }, - "type": { - "description": "The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed. You must provide a `type` if not passing `verification_flow`.", - "enum": [ - "document", - "id_number" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "verification_flow": { - "description": "The ID of a Verification Flow from the Dashboard. See https://docs.stripe.com/identity/verification-flows.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/identity.verification_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/identity/verification_sessions/{session}": { - "get": { - "description": "

Retrieves the details of a VerificationSession that was previously created.

\n\n

When the session status is requires_input, you can use this method to retrieve a valid\nclient_secret or url to allow re-submission.

", - "operationId": "GetIdentityVerificationSessionsSession", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/identity.verification_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a VerificationSession object.

\n\n

When the session status is requires_input, you can use this method to update the\nverification check and options.

", - "operationId": "PostIdentityVerificationSessionsSession", - "parameters": [ - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "options": { - "explode": true, - "style": "deepObject" - }, - "provided_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "options": { - "description": "A set of options for the session’s verification checks.", - "properties": { - "document": { - "anyOf": [ - { - "properties": { - "allowed_types": { - "items": { - "enum": [ - "driving_license", - "id_card", - "passport" - ], - "type": "string" - }, - "type": "array" - }, - "require_id_number": { - "type": "boolean" - }, - "require_live_capture": { - "type": "boolean" - }, - "require_matching_selfie": { - "type": "boolean" - } - }, - "title": "document_options", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "session_options_param", - "type": "object" - }, - "provided_details": { - "description": "Details provided about the user being verified. These details may be shown to the user.", - "properties": { - "email": { - "type": "string" - }, - "phone": { - "type": "string" - } - }, - "title": "provided_details_param", - "type": "object" - }, - "type": { - "description": "The type of [verification check](https://stripe.com/docs/identity/verification-checks) to be performed.", - "enum": [ - "document", - "id_number" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/identity.verification_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/identity/verification_sessions/{session}/cancel": { - "post": { - "description": "

A VerificationSession object can be canceled when it is in requires_input status.

\n\n

Once canceled, future submission attempts are disabled. This cannot be undone. Learn more.

", - "operationId": "PostIdentityVerificationSessionsSessionCancel", - "parameters": [ - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/identity.verification_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/identity/verification_sessions/{session}/redact": { - "post": { - "description": "

Redact a VerificationSession to remove all collected information from Stripe. This will redact\nthe VerificationSession and all objects related to it, including VerificationReports, Events,\nrequest logs, etc.

\n\n

A VerificationSession object can be redacted when it is in requires_input or verified\nstatus. Redacting a VerificationSession in requires_action\nstate will automatically cancel it.

\n\n

The redaction process may take up to four days. When the redaction process is in progress, the\nVerificationSession’s redaction.status field will be set to processing; when the process is\nfinished, it will change to redacted and an identity.verification_session.redacted event\nwill be emitted.

\n\n

Redaction is irreversible. Redacted objects are still accessible in the Stripe API, but all the\nfields that contain personal data will be replaced by the string [redacted] or a similar\nplaceholder. The metadata field will also be erased. Redacted objects cannot be updated or\nused for any purpose.

\n\n

Learn more.

", - "operationId": "PostIdentityVerificationSessionsSessionRedact", - "parameters": [ - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/identity.verification_session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoiceitems": { - "get": { - "description": "

Returns a list of your invoice items. Invoice items are returned sorted by creation date, with the most recently created invoice items appearing first.

", - "operationId": "GetInvoiceitems", - "parameters": [ - { - "description": "Only return invoice items that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "The identifier of the customer whose invoice items to return. If none is provided, all invoice items will be returned.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return invoice items belonging to this invoice. If none is provided, all invoice items will be returned. If specifying an invoice, no customer identifier is needed.", - "in": "query", - "name": "invoice", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Set to `true` to only show pending invoice items, which are not yet attached to any invoices. Set to `false` to only show invoice items already attached to invoices. If unspecified, no filter is applied.", - "in": "query", - "name": "pending", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/invoiceitem" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/invoiceitems", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "InvoicesItemsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified.

", - "operationId": "PostInvoiceitems", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "period": { - "explode": true, - "style": "deepObject" - }, - "price_data": { - "explode": true, - "style": "deepObject" - }, - "tax_code": { - "explode": true, - "style": "deepObject" - }, - "tax_rates": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. Passing in a negative `amount` will reduce the `amount_due` on the invoice.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "The ID of the customer who will be billed when this invoice item is billed.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking.", - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "description": "Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items.", - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons and promotion codes to redeem into discounts for the invoice item or invoice line item." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice": { - "description": "The ID of an existing invoice to add this invoice item to. When left blank, the invoice item will be added to the next upcoming scheduled invoice. This is useful when adding invoice items in response to an invoice.created webhook. You can only add invoice items to draft invoices and there is a maximum of 250 items per invoice.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "period": { - "description": "The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details.", - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "description": "The ID of the price object. One of `price` or `price_data` is required.", - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "description": "Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.", - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data", - "type": "object" - }, - "quantity": { - "description": "Non-negative integer. The quantity of units for the invoice item.", - "type": "integer" - }, - "subscription": { - "description": "The ID of a subscription to add this invoice item to. When left blank, the invoice item is added to the next upcoming scheduled invoice. When set, scheduled invoices for subscriptions other than the specified subscription will ignore the invoice item. Use this when you want to express that an invoice item has been accrued within the context of a particular subscription.", - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID." - }, - "tax_rates": { - "description": "The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "unit_amount": { - "description": "The integer unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This `unit_amount` will be multiplied by the quantity to get the full amount. Passing in a negative `unit_amount` will reduce the `amount_due` on the invoice.", - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.", - "format": "decimal", - "type": "string" - } - }, - "required": [ - "customer" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoiceitem" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoiceitems/{invoiceitem}": { - "delete": { - "description": "

Deletes an invoice item, removing it from an invoice. Deleting invoice items is only possible when they’re not attached to invoices, or if it’s attached to a draft invoice.

", - "operationId": "DeleteInvoiceitemsInvoiceitem", - "parameters": [ - { - "in": "path", - "name": "invoiceitem", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_invoiceitem" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the invoice item with the given ID.

", - "operationId": "GetInvoiceitemsInvoiceitem", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "invoiceitem", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoiceitem" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the amount or description of an invoice item on an upcoming invoice. Updating an invoice item is only possible before the invoice it’s attached to is closed.

", - "operationId": "PostInvoiceitemsInvoiceitem", - "parameters": [ - { - "in": "path", - "name": "invoiceitem", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "period": { - "explode": true, - "style": "deepObject" - }, - "price_data": { - "explode": true, - "style": "deepObject" - }, - "tax_code": { - "explode": true, - "style": "deepObject" - }, - "tax_rates": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount.", - "type": "integer" - }, - "description": { - "description": "An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking.", - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "description": "Controls whether discounts apply to this invoice item. Defaults to false for prorations or negative invoice items, and true for all other invoice items. Cannot be set to true for prorations.", - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons, promotion codes & existing discounts which apply to the invoice item or invoice line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "period": { - "description": "The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details.", - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "description": "The ID of the price object. One of `price` or `price_data` is required.", - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "description": "Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.", - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data", - "type": "object" - }, - "quantity": { - "description": "Non-negative integer. The quantity of units for the invoice item.", - "type": "integer" - }, - "tax_behavior": { - "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID." - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates which apply to the invoice item. When set, the `default_tax_rates` on the invoice do not apply to this invoice item. Pass an empty string to remove previously-defined tax rates." - }, - "unit_amount": { - "description": "The integer unit amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. This unit_amount will be multiplied by the quantity to get the full amount. If you want to apply a credit to the customer's account, pass a negative unit_amount.", - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.", - "format": "decimal", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoiceitem" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices": { - "get": { - "description": "

You can list all invoices, or list the invoices for a specific customer. The invoices are returned sorted by creation date, with the most recently created invoices appearing first.

", - "operationId": "GetInvoices", - "parameters": [ - { - "description": "The collection method of the invoice to retrieve. Either `charge_automatically` or `send_invoice`.", - "in": "query", - "name": "collection_method", - "required": false, - "schema": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return invoices that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return invoices for the customer specified by this customer ID.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "explode": true, - "in": "query", - "name": "due_date", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. [Learn more](https://stripe.com/docs/billing/invoices/workflow#workflow-overview)", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "draft", - "open", - "paid", - "uncollectible", - "void" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "Only return invoices for the subscription specified by this subscription ID.", - "in": "query", - "name": "subscription", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/invoice" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/invoices", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "InvoicesResourceList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you finalize the invoice, which allows you to pay or send the invoice to your customers.

", - "operationId": "PostInvoices", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "account_tax_ids": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "custom_fields": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "from_invoice": { - "explode": true, - "style": "deepObject" - }, - "issuer": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_settings": { - "explode": true, - "style": "deepObject" - }, - "rendering": { - "explode": true, - "style": "deepObject" - }, - "shipping_cost": { - "explode": true, - "style": "deepObject" - }, - "shipping_details": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account tax IDs associated with the invoice. Only editable when the invoice is a draft." - }, - "application_fee_amount": { - "description": "A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees).", - "type": "integer" - }, - "auto_advance": { - "description": "Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action.", - "type": "boolean" - }, - "automatic_tax": { - "description": "Settings for automatic tax lookup for this invoice.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "currency": { - "description": "The currency to create this invoice in. Defaults to that of `customer` if not specified.", - "type": "string" - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of up to 4 custom fields to be displayed on the invoice." - }, - "customer": { - "description": "The ID of the customer who will be billed.", - "maxLength": 5000, - "type": "string" - }, - "days_until_due": { - "description": "The number of days from when the invoice is created until it is due. Valid only for invoices where `collection_method=send_invoice`.", - "type": "integer" - }, - "default_payment_method": { - "description": "ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.", - "maxLength": 5000, - "type": "string" - }, - "default_source": { - "description": "ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source.", - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "description": "The tax rates that will apply to any line item that does not have `tax_rates` set.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.", - "maxLength": 1500, - "type": "string" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons and promotion codes to redeem into discounts for the invoice. If not specified, inherits the discount from the invoice's customer. Pass an empty string to avoid inheriting any discounts." - }, - "due_date": { - "description": "The date on which payment for this invoice is due. Valid only for invoices where `collection_method=send_invoice`.", - "format": "unix-time", - "type": "integer" - }, - "effective_at": { - "description": "The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt.", - "format": "unix-time", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "footer": { - "description": "Footer to be displayed on the invoice.", - "maxLength": 5000, - "type": "string" - }, - "from_invoice": { - "description": "Revise an existing invoice. The new invoice will be created in `status=draft`. See the [revision documentation](https://stripe.com/docs/invoicing/invoice-revisions) for more details.", - "properties": { - "action": { - "enum": [ - "revision" - ], - "maxLength": 5000, - "type": "string" - }, - "invoice": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "action", - "invoice" - ], - "title": "from_invoice", - "type": "object" - }, - "issuer": { - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "number": { - "description": "Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically.", - "maxLength": 26, - "type": "string" - }, - "on_behalf_of": { - "description": "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details.", - "type": "string" - }, - "payment_settings": { - "description": "Configuration settings for the PaymentIntent that is generated when the invoice is finalized.", - "properties": { - "default_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "payment_method_options": { - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "installments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "plan": { - "anyOf": [ - { - "properties": { - "count": { - "type": "integer" - }, - "interval": { - "enum": [ - "month" - ], - "type": "string" - }, - "type": { - "enum": [ - "fixed_count" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "count", - "interval", - "type" - ], - "title": "installment_plan", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "installments_param", - "type": "object" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_param", - "type": "object" - }, - "type": { - "type": "string" - } - }, - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_settings", - "type": "object" - }, - "pending_invoice_items_behavior": { - "description": "How to handle pending invoice items on invoice creation. Defaults to `exclude` if the parameter is omitted.", - "enum": [ - "exclude", - "include" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "rendering": { - "description": "The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page.", - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - }, - "pdf": { - "properties": { - "page_size": { - "enum": [ - "a4", - "auto", - "letter" - ], - "type": "string" - } - }, - "title": "rendering_pdf_param", - "type": "object" - } - }, - "title": "rendering_param", - "type": "object" - }, - "shipping_cost": { - "description": "Settings for the cost of shipping for this invoice.", - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - }, - "shipping_rate_data": { - "properties": { - "delivery_estimate": { - "properties": { - "maximum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - }, - "minimum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - } - }, - "title": "delivery_estimate", - "type": "object" - }, - "display_name": { - "maxLength": 100, - "type": "string" - }, - "fixed_amount": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "required": [ - "amount" - ], - "title": "currency_option", - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "fixed_amount", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - }, - "type": { - "enum": [ - "fixed_amount" - ], - "type": "string" - } - }, - "required": [ - "display_name" - ], - "title": "method_params", - "type": "object" - } - }, - "title": "shipping_cost", - "type": "object" - }, - "shipping_details": { - "description": "Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "address", - "name" - ], - "title": "recipient_shipping_with_optional_fields_address", - "type": "object" - }, - "statement_descriptor": { - "description": "Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`.", - "maxLength": 22, - "type": "string" - }, - "subscription": { - "description": "The ID of the subscription to invoice, if any. If set, the created invoice will only include pending invoice items for that subscription. The subscription's billing cycle and regular subscription events won't be affected.", - "maxLength": 5000, - "type": "string" - }, - "transfer_data": { - "description": "If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge.", - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/create_preview": { - "post": { - "description": "

At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.

\n\n

Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.

\n\n

You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.

\n\n

Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. Learn more

", - "operationId": "PostInvoicesCreatePreview", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "customer_details": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_items": { - "explode": true, - "style": "deepObject" - }, - "issuer": { - "explode": true, - "style": "deepObject" - }, - "on_behalf_of": { - "explode": true, - "style": "deepObject" - }, - "schedule_details": { - "explode": true, - "style": "deepObject" - }, - "subscription_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "automatic_tax": { - "description": "Settings for automatic tax lookup for this invoice preview.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "coupon": { - "description": "The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "The currency to preview this invoice in. Defaults to that of `customer` if not specified.", - "type": "string" - }, - "customer": { - "description": "The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.", - "maxLength": 5000, - "type": "string" - }, - "customer_details": { - "description": "Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.", - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "customer_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax": { - "properties": { - "ip_address": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "tax_param", - "type": "object" - }, - "tax_exempt": { - "enum": [ - "", - "exempt", - "none", - "reverse" - ], - "type": "string" - }, - "tax_ids": { - "items": { - "properties": { - "type": { - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "title": "data_params", - "type": "object" - }, - "type": "array" - } - }, - "title": "customer_details_param", - "type": "object" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_items": { - "description": "List of invoice items to add or update in the upcoming invoice preview.", - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "invoiceitem": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "period": { - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "invoice_item_preview_params", - "type": "object" - }, - "type": "array" - }, - "issuer": { - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details." - }, - "preview_mode": { - "description": "Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified.", - "enum": [ - "next", - "recurring" - ], - "type": "string" - }, - "schedule": { - "description": "The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields.", - "maxLength": 5000, - "type": "string" - }, - "schedule_details": { - "description": "The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields.", - "properties": { - "end_behavior": { - "enum": [ - "cancel", - "release" - ], - "type": "string" - }, - "phases": { - "items": { - "properties": { - "add_invoice_items": { - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "end_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings", - "type": "object" - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "configuration_item_params", - "type": "object" - }, - "type": "array" - }, - "iterations": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "start_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial": { - "type": "boolean" - }, - "trial_end": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - } - }, - "required": [ - "items" - ], - "title": "phase_configuration_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "schedule_details_params", - "type": "object" - }, - "subscription": { - "description": "The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions.", - "maxLength": 5000, - "type": "string" - }, - "subscription_details": { - "description": "The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields.", - "properties": { - "billing_cycle_anchor": { - "anyOf": [ - { - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "cancel_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancel_at_period_end": { - "type": "boolean" - }, - "cancel_now": { - "type": "boolean" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "format": "unix-time", - "type": "integer" - }, - "resume_at": { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - } - }, - "title": "subscription_details_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/search": { - "get": { - "description": "

Search for invoices you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetInvoicesSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for invoices](https://stripe.com/docs/search#query-fields-for-invoices).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/invoice" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/upcoming": { - "get": { - "description": "

At any time, you can preview the upcoming invoice for a customer. This will show you all the charges that are pending, including subscription renewal charges, invoice item charges, etc. It will also show you any discounts that are applicable to the invoice.

\n\n

Note that when you are viewing an upcoming invoice, you are simply viewing a preview – the invoice has not yet been created. As such, the upcoming invoice will not show up in invoice listing calls, and you cannot use the API to pay or edit the invoice. If you want to change the amount that your customer will be billed, you can add, remove, or update pending invoice items, or update the customer’s discount.

\n\n

You can preview the effects of updating a subscription, including a preview of what proration will take place. To ensure that the actual proration is calculated exactly the same as the previewed proration, you should pass the subscription_details.proration_date parameter when doing the actual subscription update. The recommended way to get only the prorations being previewed is to consider only proration line items where period[start] is equal to the subscription_details.proration_date value passed in the request.

\n\n

Note: Currency conversion calculations use the latest exchange rates. Exchange rates may vary between the time of the preview and the time of the actual invoice creation. Learn more

", - "operationId": "GetInvoicesUpcoming", - "parameters": [ - { - "description": "Settings for automatic tax lookup for this invoice preview.", - "explode": true, - "in": "query", - "name": "automatic_tax", - "required": false, - "schema": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "in": "query", - "name": "coupon", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The currency to preview this invoice in. Defaults to that of `customer` if not specified.", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.", - "explode": true, - "in": "query", - "name": "customer_details", - "required": false, - "schema": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "customer_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax": { - "properties": { - "ip_address": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "tax_param", - "type": "object" - }, - "tax_exempt": { - "enum": [ - "", - "exempt", - "none", - "reverse" - ], - "type": "string" - }, - "tax_ids": { - "items": { - "properties": { - "type": { - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "title": "data_params", - "type": "object" - }, - "type": "array" - } - }, - "title": "customer_details_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts.", - "explode": true, - "in": "query", - "name": "discounts", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "List of invoice items to add or update in the upcoming invoice preview.", - "explode": true, - "in": "query", - "name": "invoice_items", - "required": false, - "schema": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "invoiceitem": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "period": { - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "invoice_item_preview_params", - "type": "object" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "explode": true, - "in": "query", - "name": "issuer", - "required": false, - "schema": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details.", - "explode": true, - "in": "query", - "name": "on_behalf_of", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified.", - "in": "query", - "name": "preview_mode", - "required": false, - "schema": { - "enum": [ - "next", - "recurring" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields.", - "in": "query", - "name": "schedule", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields.", - "explode": true, - "in": "query", - "name": "schedule_details", - "required": false, - "schema": { - "properties": { - "end_behavior": { - "enum": [ - "cancel", - "release" - ], - "type": "string" - }, - "phases": { - "items": { - "properties": { - "add_invoice_items": { - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "end_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings", - "type": "object" - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "configuration_item_params", - "type": "object" - }, - "type": "array" - }, - "iterations": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "start_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial": { - "type": "boolean" - }, - "trial_end": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - } - }, - "required": [ - "items" - ], - "title": "phase_configuration_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "schedule_details_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions.", - "in": "query", - "name": "subscription", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.billing_cycle_anchor` instead.", - "explode": true, - "in": "query", - "name": "subscription_billing_cycle_anchor", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at` instead.", - "explode": true, - "in": "query", - "name": "subscription_cancel_at", - "required": false, - "schema": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at_period_end` instead.", - "in": "query", - "name": "subscription_cancel_at_period_end", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "This simulates the subscription being canceled or expired immediately. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_now` instead.", - "in": "query", - "name": "subscription_cancel_now", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have `tax_rates` set. This field has been deprecated and will be removed in a future API version. Use `subscription_details.default_tax_rates` instead.", - "explode": true, - "in": "query", - "name": "subscription_default_tax_rates", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields.", - "explode": true, - "in": "query", - "name": "subscription_details", - "required": false, - "schema": { - "properties": { - "billing_cycle_anchor": { - "anyOf": [ - { - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "cancel_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancel_at_period_end": { - "type": "boolean" - }, - "cancel_now": { - "type": "boolean" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "format": "unix-time", - "type": "integer" - }, - "resume_at": { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - } - }, - "title": "subscription_details_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A list of up to 20 subscription items, each with an attached price. This field has been deprecated and will be removed in a future API version. Use `subscription_details.items` instead.", - "explode": true, - "in": "query", - "name": "subscription_items", - "required": false, - "schema": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_behavior` instead.", - "in": "query", - "name": "subscription_proration_behavior", - "required": false, - "schema": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period and within the current phase of the schedule backing this subscription, if the schedule exists. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration_behavior` cannot be set to 'none'. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_date` instead.", - "in": "query", - "name": "subscription_proration_date", - "required": false, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "For paused subscriptions, setting `subscription_resume_at` to `now` will preview the invoice that will be generated if the subscription is resumed. This field has been deprecated and will be removed in a future API version. Use `subscription_details.resume_at` instead.", - "in": "query", - "name": "subscription_resume_at", - "required": false, - "schema": { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Date a subscription is intended to start (can be future or past). This field has been deprecated and will be removed in a future API version. Use `subscription_details.start_date` instead.", - "in": "query", - "name": "subscription_start_date", - "required": false, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_items` or `subscription` is required. This field has been deprecated and will be removed in a future API version. Use `subscription_details.trial_end` instead.", - "explode": true, - "in": "query", - "name": "subscription_trial_end", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/upcoming/lines": { - "get": { - "description": "

When retrieving an upcoming invoice, you’ll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "operationId": "GetInvoicesUpcomingLines", - "parameters": [ - { - "description": "Settings for automatic tax lookup for this invoice preview.", - "explode": true, - "in": "query", - "name": "automatic_tax", - "required": false, - "schema": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The ID of the coupon to apply to this phase of the subscription schedule. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "in": "query", - "name": "coupon", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The currency to preview this invoice in. Defaults to that of `customer` if not specified.", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "The identifier of the customer whose upcoming invoice you'd like to retrieve. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Details about the customer you want to invoice or overrides for an existing customer. If `automatic_tax` is enabled then one of `customer`, `customer_details`, `subscription`, or `schedule` must be set.", - "explode": true, - "in": "query", - "name": "customer_details", - "required": false, - "schema": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "customer_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax": { - "properties": { - "ip_address": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "tax_param", - "type": "object" - }, - "tax_exempt": { - "enum": [ - "", - "exempt", - "none", - "reverse" - ], - "type": "string" - }, - "tax_ids": { - "items": { - "properties": { - "type": { - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "title": "data_params", - "type": "object" - }, - "type": "array" - } - }, - "title": "customer_details_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The coupons to redeem into discounts for the invoice preview. If not specified, inherits the discount from the subscription or customer. This works for both coupons directly applied to an invoice and coupons applied to a subscription. Pass an empty string to avoid inheriting any discounts.", - "explode": true, - "in": "query", - "name": "discounts", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "List of invoice items to add or update in the upcoming invoice preview.", - "explode": true, - "in": "query", - "name": "invoice_items", - "required": false, - "schema": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "invoiceitem": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "period": { - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "invoice_item_preview_params", - "type": "object" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "explode": true, - "in": "query", - "name": "issuer", - "required": false, - "schema": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details.", - "explode": true, - "in": "query", - "name": "on_behalf_of", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Customizes the types of values to include when calculating the invoice. Defaults to `next` if unspecified.", - "in": "query", - "name": "preview_mode", - "required": false, - "schema": { - "enum": [ - "next", - "recurring" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "The identifier of the schedule whose upcoming invoice you'd like to retrieve. Cannot be used with subscription or subscription fields.", - "in": "query", - "name": "schedule", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The schedule creation or modification params to apply as a preview. Cannot be used with `subscription` or `subscription_` prefixed fields.", - "explode": true, - "in": "query", - "name": "schedule_details", - "required": false, - "schema": { - "properties": { - "end_behavior": { - "enum": [ - "cancel", - "release" - ], - "type": "string" - }, - "phases": { - "items": { - "properties": { - "add_invoice_items": { - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "end_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings", - "type": "object" - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "configuration_item_params", - "type": "object" - }, - "type": "array" - }, - "iterations": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "start_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial": { - "type": "boolean" - }, - "trial_end": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - } - }, - "required": [ - "items" - ], - "title": "phase_configuration_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "title": "schedule_details_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The identifier of the subscription for which you'd like to retrieve the upcoming invoice. If not provided, but a `subscription_details.items` is provided, you will preview creating a subscription with those items. If neither `subscription` nor `subscription_details.items` is provided, you will retrieve the next upcoming invoice from among the customer's subscriptions.", - "in": "query", - "name": "subscription", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "For new subscriptions, a future timestamp to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). This is used to determine the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices. For existing subscriptions, the value can only be set to `now` or `unchanged`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.billing_cycle_anchor` instead.", - "explode": true, - "in": "query", - "name": "subscription_billing_cycle_anchor", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at` instead.", - "explode": true, - "in": "query", - "name": "subscription_cancel_at", - "required": false, - "schema": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_at_period_end` instead.", - "in": "query", - "name": "subscription_cancel_at_period_end", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "This simulates the subscription being canceled or expired immediately. This field has been deprecated and will be removed in a future API version. Use `subscription_details.cancel_now` instead.", - "in": "query", - "name": "subscription_cancel_now", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "If provided, the invoice returned will preview updating or creating a subscription with these default tax rates. The default tax rates will apply to any line item that does not have `tax_rates` set. This field has been deprecated and will be removed in a future API version. Use `subscription_details.default_tax_rates` instead.", - "explode": true, - "in": "query", - "name": "subscription_default_tax_rates", - "required": false, - "schema": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "The subscription creation or modification params to apply as a preview. Cannot be used with `schedule` or `schedule_details` fields.", - "explode": true, - "in": "query", - "name": "subscription_details", - "required": false, - "schema": { - "properties": { - "billing_cycle_anchor": { - "anyOf": [ - { - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "cancel_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancel_at_period_end": { - "type": "boolean" - }, - "cancel_now": { - "type": "boolean" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "format": "unix-time", - "type": "integer" - }, - "resume_at": { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - } - }, - "title": "subscription_details_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A list of up to 20 subscription items, each with an attached price. This field has been deprecated and will be removed in a future API version. Use `subscription_details.items` instead.", - "explode": true, - "in": "query", - "name": "subscription_items", - "required": false, - "schema": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_behavior` instead.", - "in": "query", - "name": "subscription_proration_behavior", - "required": false, - "schema": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "If previewing an update to a subscription, and doing proration, `subscription_proration_date` forces the proration to be calculated as though the update was done at the specified time. The time given must be within the current subscription period and within the current phase of the schedule backing this subscription, if the schedule exists. If set, `subscription`, and one of `subscription_items`, or `subscription_trial_end` are required. Also, `subscription_proration_behavior` cannot be set to 'none'. This field has been deprecated and will be removed in a future API version. Use `subscription_details.proration_date` instead.", - "in": "query", - "name": "subscription_proration_date", - "required": false, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "For paused subscriptions, setting `subscription_resume_at` to `now` will preview the invoice that will be generated if the subscription is resumed. This field has been deprecated and will be removed in a future API version. Use `subscription_details.resume_at` instead.", - "in": "query", - "name": "subscription_resume_at", - "required": false, - "schema": { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Date a subscription is intended to start (can be future or past). This field has been deprecated and will be removed in a future API version. Use `subscription_details.start_date` instead.", - "in": "query", - "name": "subscription_start_date", - "required": false, - "schema": { - "format": "unix-time", - "type": "integer" - }, - "style": "form" - }, - { - "description": "If provided, the invoice returned will preview updating or creating a subscription with that trial end. If set, one of `subscription_items` or `subscription` is required. This field has been deprecated and will be removed in a future API version. Use `subscription_details.trial_end` instead.", - "explode": true, - "in": "query", - "name": "subscription_trial_end", - "required": false, - "schema": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ] - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "InvoiceLinesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}": { - "delete": { - "description": "

Permanently deletes a one-off invoice draft. This cannot be undone. Attempts to delete invoices that are no longer in a draft state will fail; once an invoice has been finalized or if an invoice is for a subscription, it must be voided.

", - "operationId": "DeleteInvoicesInvoice", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the invoice with the given ID.

", - "operationId": "GetInvoicesInvoice", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Draft invoices are fully editable. Once an invoice is finalized,\nmonetary values, as well as collection_method, become uneditable.

\n\n

If you would like to stop the Stripe Billing engine from automatically finalizing, reattempting payments on,\nsending reminders for, or automatically reconciling invoices, pass\nauto_advance=false.

", - "operationId": "PostInvoicesInvoice", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "account_tax_ids": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "custom_fields": { - "explode": true, - "style": "deepObject" - }, - "default_source": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "effective_at": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "issuer": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "number": { - "explode": true, - "style": "deepObject" - }, - "on_behalf_of": { - "explode": true, - "style": "deepObject" - }, - "payment_settings": { - "explode": true, - "style": "deepObject" - }, - "rendering": { - "explode": true, - "style": "deepObject" - }, - "shipping_cost": { - "explode": true, - "style": "deepObject" - }, - "shipping_details": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account tax IDs associated with the invoice. Only editable when the invoice is a draft." - }, - "application_fee_amount": { - "description": "A fee in cents (or local equivalent) that will be applied to the invoice and transferred to the application owner's Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees [documentation](https://stripe.com/docs/billing/invoices/connect#collecting-fees).", - "type": "integer" - }, - "auto_advance": { - "description": "Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice.", - "type": "boolean" - }, - "automatic_tax": { - "description": "Settings for automatic tax lookup for this invoice.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "collection_method": { - "description": "Either `charge_automatically` or `send_invoice`. This field can be updated only on `draft` invoices.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of up to 4 custom fields to be displayed on the invoice. If a value for `custom_fields` is specified, the list specified will replace the existing custom field list on this invoice. Pass an empty string to remove previously-defined fields." - }, - "days_until_due": { - "description": "The number of days from which the invoice is created until it is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices.", - "type": "integer" - }, - "default_payment_method": { - "description": "ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.", - "maxLength": 5000, - "type": "string" - }, - "default_source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "ID of the default payment source for the invoice. It must belong to the customer associated with the invoice and be in a chargeable state. If not set, defaults to the subscription's default source, if any, or to the customer's default source." - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any line item that does not have `tax_rates` set. Pass an empty string to remove previously-defined tax rates." - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.", - "maxLength": 1500, - "type": "string" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The discounts that will apply to the invoice. Pass an empty string to remove previously-defined discounts." - }, - "due_date": { - "description": "The date on which payment for this invoice is due. Only valid for invoices where `collection_method=send_invoice`. This field can only be updated on `draft` invoices.", - "format": "unix-time", - "type": "integer" - }, - "effective_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The date when this invoice is in effect. Same as `finalized_at` unless overwritten. When defined, this value replaces the system-generated 'Date of issue' printed on the invoice PDF and receipt." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "footer": { - "description": "Footer to be displayed on the invoice.", - "maxLength": 5000, - "type": "string" - }, - "issuer": { - "description": "The connected account that issues the invoice. The invoice is presented with the branding and support information of the specified account.", - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "number": { - "anyOf": [ - { - "maxLength": 26, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set the number for this invoice. If no number is present then a number will be assigned automatically when the invoice is finalized. In many markets, regulations require invoices to be unique, sequential and / or gapless. You are responsible for ensuring this is true across all your different invoicing systems in the event that you edit the invoice number using our API. If you use only Stripe for your invoices and do not change invoice numbers, Stripe handles this aspect of compliance for you automatically." - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the [Invoices with Connect](https://stripe.com/docs/billing/invoices/connect) documentation for details." - }, - "payment_settings": { - "description": "Configuration settings for the PaymentIntent that is generated when the invoice is finalized.", - "properties": { - "default_mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "payment_method_options": { - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "installments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "plan": { - "anyOf": [ - { - "properties": { - "count": { - "type": "integer" - }, - "interval": { - "enum": [ - "month" - ], - "type": "string" - }, - "type": { - "enum": [ - "fixed_count" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "count", - "interval", - "type" - ], - "title": "installment_plan", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "installments_param", - "type": "object" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_param", - "type": "object" - }, - "type": { - "type": "string" - } - }, - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_settings", - "type": "object" - }, - "rendering": { - "description": "The rendering-related settings that control how the invoice is displayed on customer-facing surfaces such as PDF and Hosted Invoice Page.", - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - }, - "pdf": { - "properties": { - "page_size": { - "enum": [ - "a4", - "auto", - "letter" - ], - "type": "string" - } - }, - "title": "rendering_pdf_param", - "type": "object" - } - }, - "title": "rendering_param", - "type": "object" - }, - "shipping_cost": { - "anyOf": [ - { - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - }, - "shipping_rate_data": { - "properties": { - "delivery_estimate": { - "properties": { - "maximum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - }, - "minimum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - } - }, - "title": "delivery_estimate", - "type": "object" - }, - "display_name": { - "maxLength": 100, - "type": "string" - }, - "fixed_amount": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "required": [ - "amount" - ], - "title": "currency_option", - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "fixed_amount", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - }, - "type": { - "enum": [ - "fixed_amount" - ], - "type": "string" - } - }, - "required": [ - "display_name" - ], - "title": "method_params", - "type": "object" - } - }, - "title": "shipping_cost", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Settings for the cost of shipping for this invoice." - }, - "shipping_details": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "address", - "name" - ], - "title": "recipient_shipping_with_optional_fields_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Shipping details for the invoice. The Invoice PDF will use the `shipping_details` value if it is set, otherwise the PDF will render the shipping address from the customer." - }, - "statement_descriptor": { - "description": "Extra information about a charge for the customer's credit card statement. It must contain at least one letter. If not specified and this invoice is part of a subscription, the default `statement_descriptor` will be set to the first subscription item's product's `statement_descriptor`.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "If specified, the funds from the invoice will be transferred to the destination and the ID of the resulting transfer will be found on the invoice's charge. This will be unset if you POST an empty value." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/add_lines": { - "post": { - "description": "

Adds multiple line items to an invoice. This is only possible when an invoice is still a draft.

", - "operationId": "PostInvoicesInvoiceAddLines", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_metadata": { - "explode": true, - "style": "deepObject" - }, - "lines": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "lines": { - "description": "The line items to add.", - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "invoice_item": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "period": { - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "product_data": { - "properties": { - "description": { - "maxLength": 40000, - "type": "string" - }, - "images": { - "items": { - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "product_data", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "title": "one_time_price_data_with_product_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_amounts": { - "anyOf": [ - { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_rate_data": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "maxLength": 50, - "type": "string" - }, - "inclusive": { - "type": "boolean" - }, - "jurisdiction": { - "maxLength": 200, - "type": "string" - }, - "percentage": { - "type": "number" - }, - "state": { - "maxLength": 2, - "type": "string" - }, - "tax_type": { - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "display_name", - "inclusive", - "percentage" - ], - "title": "tax_rate_data_param", - "type": "object" - }, - "taxable_amount": { - "type": "integer" - } - }, - "required": [ - "amount", - "tax_rate_data", - "taxable_amount" - ], - "title": "tax_amount_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "lines_data_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "lines" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/finalize": { - "post": { - "description": "

Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you’d like to finalize a draft invoice manually, you can do so using this method.

", - "operationId": "PostInvoicesInvoiceFinalize", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "auto_advance": { - "description": "Controls whether Stripe performs [automatic collection](https://stripe.com/docs/invoicing/integration/automatic-advancement-collection) of the invoice. If `false`, the invoice's state doesn't automatically advance without an explicit action.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/lines": { - "get": { - "description": "

When retrieving an invoice, you’ll get a lines property containing the total count of line items and the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "operationId": "GetInvoicesInvoiceLines", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "InvoiceLinesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/lines/{line_item_id}": { - "post": { - "description": "

Updates an invoice’s line item. Some fields, such as tax_amounts, only live on the invoice line item,\nso they can only be updated through this endpoint. Other fields, such as amount, live on both the invoice\nitem and the invoice line item, so updates on this endpoint will propagate to the invoice item as well.\nUpdating an invoice’s line item is only possible before the invoice is finalized.

", - "operationId": "PostInvoicesInvoiceLinesLineItemId", - "parameters": [ - { - "description": "Invoice ID of line item", - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Invoice line item ID", - "in": "path", - "name": "line_item_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "period": { - "explode": true, - "style": "deepObject" - }, - "price_data": { - "explode": true, - "style": "deepObject" - }, - "tax_amounts": { - "explode": true, - "style": "deepObject" - }, - "tax_rates": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The integer amount in cents (or local equivalent) of the charge to be applied to the upcoming invoice. If you want to apply a credit to the customer's account, pass a negative amount.", - "type": "integer" - }, - "description": { - "description": "An arbitrary string which you can attach to the invoice item. The description is displayed in the invoice for easy tracking.", - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "description": "Controls whether discounts apply to this line item. Defaults to false for prorations or negative line items, and true for all other line items. Cannot be set to true for prorations.", - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons, promotion codes & existing discounts which apply to the line item. Item discounts are applied before invoice discounts. Pass an empty string to remove previously-defined discounts." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data." - }, - "period": { - "description": "The period associated with this invoice item. When set to different values, the period will be rendered on the invoice. If you have [Stripe Revenue Recognition](https://stripe.com/docs/revenue-recognition) enabled, the period will be used to recognize and defer revenue. See the [Revenue Recognition documentation](https://stripe.com/docs/revenue-recognition/methodology/subscriptions-and-invoicing) for details.", - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "description": "The ID of the price object. One of `price` or `price_data` is required.", - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "description": "Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.", - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "product_data": { - "properties": { - "description": { - "maxLength": 40000, - "type": "string" - }, - "images": { - "items": { - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "product_data", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "title": "one_time_price_data_with_product_data", - "type": "object" - }, - "quantity": { - "description": "Non-negative integer. The quantity of units for the line item.", - "type": "integer" - }, - "tax_amounts": { - "anyOf": [ - { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_rate_data": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "maxLength": 50, - "type": "string" - }, - "inclusive": { - "type": "boolean" - }, - "jurisdiction": { - "maxLength": 200, - "type": "string" - }, - "percentage": { - "type": "number" - }, - "state": { - "maxLength": 2, - "type": "string" - }, - "tax_type": { - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "display_name", - "inclusive", - "percentage" - ], - "title": "tax_rate_data_param", - "type": "object" - }, - "taxable_amount": { - "type": "integer" - } - }, - "required": [ - "amount", - "tax_rate_data", - "taxable_amount" - ], - "title": "tax_amount_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of up to 10 tax amounts for this line item. This can be useful if you calculate taxes on your own or use a third-party to calculate them. You cannot set tax amounts if any line item has [tax_rates](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-tax_rates) or if the invoice has [default_tax_rates](https://stripe.com/docs/api/invoices/object#invoice_object-default_tax_rates) or uses [automatic tax](https://stripe.com/docs/tax/invoicing). Pass an empty string to remove previously defined tax amounts." - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates which apply to the line item. When set, the `default_tax_rates` on the invoice do not apply to this line item. Pass an empty string to remove previously-defined tax rates." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/line_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/mark_uncollectible": { - "post": { - "description": "

Marking an invoice as uncollectible is useful for keeping track of bad debts that can be written off for accounting purposes.

", - "operationId": "PostInvoicesInvoiceMarkUncollectible", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/pay": { - "post": { - "description": "

Stripe automatically creates and then attempts to collect payment on invoices for customers on subscriptions according to your subscriptions settings. However, if you’d like to attempt payment on an invoice out of the normal collection schedule or for some other reason, you can do so.

", - "operationId": "PostInvoicesInvoicePay", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "mandate": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "forgive": { - "description": "In cases where the source used to pay the invoice has insufficient funds, passing `forgive=true` controls whether a charge should be attempted for the full amount available on the source, up to the amount to fully pay the invoice. This effectively forgives the difference between the amount available on the source and the amount due. \n\nPassing `forgive=false` will fail the charge if the source hasn't been pre-funded with the right amount. An example for this case is with ACH Credit Transfers and wires: if the amount wired is less than the amount due by a small amount, you might want to forgive the difference. Defaults to `false`.", - "type": "boolean" - }, - "mandate": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "ID of the mandate to be used for this invoice. It must correspond to the payment method used to pay the invoice, including the payment_method param or the invoice's default_payment_method or default_source, if set." - }, - "off_session": { - "description": "Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `true` (off-session).", - "type": "boolean" - }, - "paid_out_of_band": { - "description": "Boolean representing whether an invoice is paid outside of Stripe. This will result in no charge being made. Defaults to `false`.", - "type": "boolean" - }, - "payment_method": { - "description": "A PaymentMethod to be charged. The PaymentMethod must be the ID of a PaymentMethod belonging to the customer associated with the invoice being paid.", - "maxLength": 5000, - "type": "string" - }, - "source": { - "description": "A payment source to be charged. The source must be the ID of a source belonging to the customer associated with the invoice being paid.", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/remove_lines": { - "post": { - "description": "

Removes multiple line items from an invoice. This is only possible when an invoice is still a draft.

", - "operationId": "PostInvoicesInvoiceRemoveLines", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_metadata": { - "explode": true, - "style": "deepObject" - }, - "lines": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "lines": { - "description": "The line items to remove.", - "items": { - "properties": { - "behavior": { - "enum": [ - "delete", - "unassign" - ], - "type": "string" - }, - "id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "behavior", - "id" - ], - "title": "lines_data_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "lines" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/send": { - "post": { - "description": "

Stripe will automatically send invoices to customers according to your subscriptions settings. However, if you’d like to manually send an invoice to your customer out of the normal schedule, you can do so. When sending invoices that have already been paid, there will be no reference to the payment in the email.

\n\n

Requests made in test-mode result in no emails being sent, despite sending an invoice.sent event.

", - "operationId": "PostInvoicesInvoiceSend", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/update_lines": { - "post": { - "description": "

Updates multiple line items on an invoice. This is only possible when an invoice is still a draft.

", - "operationId": "PostInvoicesInvoiceUpdateLines", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_metadata": { - "explode": true, - "style": "deepObject" - }, - "lines": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. For [type=subscription](https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type) line items, the incoming metadata specified on the request is directly used to set this value, in contrast to [type=invoiceitem](api/invoices/line_item#invoice_line_item_object-type) line items, where any existing metadata on the invoice line is merged with the incoming data." - }, - "lines": { - "description": "The line items to update.", - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "discountable": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "period": { - "properties": { - "end": { - "format": "unix-time", - "type": "integer" - }, - "start": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "end", - "start" - ], - "title": "period", - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "product_data": { - "properties": { - "description": { - "maxLength": 40000, - "type": "string" - }, - "images": { - "items": { - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "product_data", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "title": "one_time_price_data_with_product_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_amounts": { - "anyOf": [ - { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_rate_data": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "maxLength": 50, - "type": "string" - }, - "inclusive": { - "type": "boolean" - }, - "jurisdiction": { - "maxLength": 200, - "type": "string" - }, - "percentage": { - "type": "number" - }, - "state": { - "maxLength": 2, - "type": "string" - }, - "tax_type": { - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "display_name", - "inclusive", - "percentage" - ], - "title": "tax_rate_data_param", - "type": "object" - }, - "taxable_amount": { - "type": "integer" - } - }, - "required": [ - "amount", - "tax_rate_data", - "taxable_amount" - ], - "title": "tax_amount_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "id" - ], - "title": "lines_data_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "lines" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/invoices/{invoice}/void": { - "post": { - "description": "

Mark a finalized invoice as void. This cannot be undone. Voiding an invoice is similar to deletion, however it only applies to finalized invoices and maintains a papertrail where the invoice can still be found.

\n\n

Consult with local regulations to determine whether and how an invoice might be amended, canceled, or voided in the jurisdiction you’re doing business in. You might need to issue another invoice or credit note instead. Stripe recommends that you consult with your legal counsel for advice specific to your business.

", - "operationId": "PostInvoicesInvoiceVoid", - "parameters": [ - { - "in": "path", - "name": "invoice", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/invoice" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/authorizations": { - "get": { - "description": "

Returns a list of Issuing Authorization objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingAuthorizations", - "parameters": [ - { - "description": "Only return authorizations that belong to the given card.", - "in": "query", - "name": "card", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return authorizations that belong to the given cardholder.", - "in": "query", - "name": "cardholder", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return authorizations that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return authorizations with the given status. One of `pending`, `closed`, or `reversed`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "closed", - "pending", - "reversed" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.authorization" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/authorizations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingAuthorizationList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/authorizations/{authorization}": { - "get": { - "description": "

Retrieves an Issuing Authorization object.

", - "operationId": "GetIssuingAuthorizationsAuthorization", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified Issuing Authorization object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostIssuingAuthorizationsAuthorization", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/authorizations/{authorization}/approve": { - "post": { - "deprecated": true, - "description": "

[Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the real-time authorization flow. \nThis method is deprecated. Instead, respond directly to the webhook request to approve an authorization.

", - "operationId": "PostIssuingAuthorizationsAuthorizationApprove", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "If the authorization's `pending_request.is_amount_controllable` property is `true`, you may provide this value to control how much to hold for the authorization. Must be positive (use [`decline`](https://stripe.com/docs/api/issuing/authorizations/decline) to decline an authorization request).", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/authorizations/{authorization}/decline": { - "post": { - "deprecated": true, - "description": "

[Deprecated] Declines a pending Issuing Authorization object. This request should be made within the timeout window of the real time authorization flow.\nThis method is deprecated. Instead, respond directly to the webhook request to decline an authorization.

", - "operationId": "PostIssuingAuthorizationsAuthorizationDecline", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/cardholders": { - "get": { - "description": "

Returns a list of Issuing Cardholder objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingCardholders", - "parameters": [ - { - "description": "Only return cardholders that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return cardholders that have the given email address.", - "in": "query", - "name": "email", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return cardholders that have the given phone number.", - "in": "query", - "name": "phone_number", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return cardholders that have the given status. One of `active`, `inactive`, or `blocked`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "blocked", - "inactive" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return cardholders that have the given type. One of `individual` or `company`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "company", - "individual" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.cardholder" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/cardholders", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingCardholderList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new Issuing Cardholder object that can be issued cards.

", - "operationId": "PostIssuingCardholders", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "billing": { - "explode": true, - "style": "deepObject" - }, - "company": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "individual": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "preferred_locales": { - "explode": true, - "style": "deepObject" - }, - "spending_controls": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "billing": { - "description": "The cardholder's billing address.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "city", - "country", - "line1", - "postal_code" - ], - "title": "required_address", - "type": "object" - } - }, - "required": [ - "address" - ], - "title": "billing_specs", - "type": "object" - }, - "company": { - "description": "Additional information about a `company` cardholder.", - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_param", - "type": "object" - }, - "email": { - "description": "The cardholder's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "individual": { - "description": "Additional information about an `individual` cardholder.", - "properties": { - "card_issuing": { - "properties": { - "user_terms_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "terms_acceptance_param", - "type": "object" - } - }, - "title": "card_issuing_param", - "type": "object" - }, - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 5000, - "type": "string" - }, - "front": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "person_verification_document_param", - "type": "object" - } - }, - "title": "person_verification_param", - "type": "object" - } - }, - "title": "individual_param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "name": { - "description": "The cardholder's name. This will be printed on cards issued to them. The maximum length of this field is 24 characters. This field cannot contain any special characters or numbers.", - "type": "string" - }, - "phone_number": { - "description": "The cardholder's phone number. This will be transformed to [E.164](https://en.wikipedia.org/wiki/E.164) if it is not provided in that format already. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure#when-is-3d-secure-applied) for more details.", - "type": "string" - }, - "preferred_locales": { - "description": "The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`.\n This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder.", - "items": { - "enum": [ - "de", - "en", - "es", - "fr", - "it" - ], - "type": "string" - }, - "type": "array" - }, - "spending_controls": { - "description": "Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details.", - "properties": { - "allowed_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "allowed_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "spending_limits": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "interval": { - "enum": [ - "all_time", - "daily", - "monthly", - "per_authorization", - "weekly", - "yearly" - ], - "type": "string" - } - }, - "required": [ - "amount", - "interval" - ], - "title": "spending_limits_param", - "type": "object" - }, - "type": "array" - }, - "spending_limits_currency": { - "type": "string" - } - }, - "title": "authorization_controls_param_v2", - "type": "object" - }, - "status": { - "description": "Specifies whether to permit authorizations on this cardholder's cards. Defaults to `active`.", - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "type": { - "description": "One of `individual` or `company`. See [Choose a cardholder type](https://stripe.com/docs/issuing/other/choose-cardholder) for more details.", - "enum": [ - "company", - "individual" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "billing", - "name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.cardholder" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/cardholders/{cardholder}": { - "get": { - "description": "

Retrieves an Issuing Cardholder object.

", - "operationId": "GetIssuingCardholdersCardholder", - "parameters": [ - { - "in": "path", - "name": "cardholder", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.cardholder" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified Issuing Cardholder object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostIssuingCardholdersCardholder", - "parameters": [ - { - "in": "path", - "name": "cardholder", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "billing": { - "explode": true, - "style": "deepObject" - }, - "company": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "individual": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "preferred_locales": { - "explode": true, - "style": "deepObject" - }, - "spending_controls": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "billing": { - "description": "The cardholder's billing address.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "city", - "country", - "line1", - "postal_code" - ], - "title": "required_address", - "type": "object" - } - }, - "required": [ - "address" - ], - "title": "billing_specs", - "type": "object" - }, - "company": { - "description": "Additional information about a `company` cardholder.", - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_param", - "type": "object" - }, - "email": { - "description": "The cardholder's email address.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "individual": { - "description": "Additional information about an `individual` cardholder.", - "properties": { - "card_issuing": { - "properties": { - "user_terms_acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "terms_acceptance_param", - "type": "object" - } - }, - "title": "card_issuing_param", - "type": "object" - }, - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - "first_name": { - "type": "string" - }, - "last_name": { - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 5000, - "type": "string" - }, - "front": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "person_verification_document_param", - "type": "object" - } - }, - "title": "person_verification_param", - "type": "object" - } - }, - "title": "individual_param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "phone_number": { - "description": "The cardholder's phone number. This is required for all cardholders who will be creating EU cards. See the [3D Secure documentation](https://stripe.com/docs/issuing/3d-secure) for more details.", - "type": "string" - }, - "preferred_locales": { - "description": "The cardholder’s preferred locales (languages), ordered by preference. Locales can be `de`, `en`, `es`, `fr`, or `it`.\n This changes the language of the [3D Secure flow](https://stripe.com/docs/issuing/3d-secure) and one-time password messages sent to the cardholder.", - "items": { - "enum": [ - "de", - "en", - "es", - "fr", - "it" - ], - "type": "string" - }, - "type": "array" - }, - "spending_controls": { - "description": "Rules that control spending across this cardholder's cards. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details.", - "properties": { - "allowed_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "allowed_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "spending_limits": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "interval": { - "enum": [ - "all_time", - "daily", - "monthly", - "per_authorization", - "weekly", - "yearly" - ], - "type": "string" - } - }, - "required": [ - "amount", - "interval" - ], - "title": "spending_limits_param", - "type": "object" - }, - "type": "array" - }, - "spending_limits_currency": { - "type": "string" - } - }, - "title": "authorization_controls_param_v2", - "type": "object" - }, - "status": { - "description": "Specifies whether to permit authorizations on this cardholder's cards.", - "enum": [ - "active", - "inactive" - ], - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.cardholder" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/cards": { - "get": { - "description": "

Returns a list of Issuing Card objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingCards", - "parameters": [ - { - "description": "Only return cards belonging to the Cardholder with the provided ID.", - "in": "query", - "name": "cardholder", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return cards that were issued during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return cards that have the given expiration month.", - "in": "query", - "name": "exp_month", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return cards that have the given expiration year.", - "in": "query", - "name": "exp_year", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return cards that have the given last four digits.", - "in": "query", - "name": "last4", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "query", - "name": "personalization_design", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return cards that have the given status. One of `active`, `inactive`, or `canceled`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "canceled", - "inactive" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "Only return cards that have the given type. One of `virtual` or `physical`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "physical", - "virtual" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.card" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/cards", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingCardList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an Issuing Card object.

", - "operationId": "PostIssuingCards", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "pin": { - "explode": true, - "style": "deepObject" - }, - "second_line": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "spending_controls": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cardholder": { - "description": "The [Cardholder](https://stripe.com/docs/api#issuing_cardholder_object) object with which the card will be associated.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "The currency for the card.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_account": { - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "personalization_design": { - "description": "The personalization design object belonging to this card.", - "maxLength": 5000, - "type": "string" - }, - "pin": { - "description": "The desired PIN for this card.", - "properties": { - "encrypted_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "encrypted_pin_param", - "type": "object" - }, - "replacement_for": { - "description": "The card this is meant to be a replacement for (if any).", - "maxLength": 5000, - "type": "string" - }, - "replacement_reason": { - "description": "If `replacement_for` is specified, this should indicate why that card is being replaced.", - "enum": [ - "damaged", - "expired", - "lost", - "stolen" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "second_line": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The second line to print on the card." - }, - "shipping": { - "description": "The address where the card will be shipped.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "city", - "country", - "line1", - "postal_code" - ], - "title": "required_address", - "type": "object" - }, - "address_validation": { - "properties": { - "mode": { - "enum": [ - "disabled", - "normalization_only", - "validation_and_normalization" - ], - "type": "string" - } - }, - "required": [ - "mode" - ], - "title": "address_validation_param", - "type": "object" - }, - "customs": { - "properties": { - "eori_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "customs_param", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone_number": { - "type": "string" - }, - "require_signature": { - "type": "boolean" - }, - "service": { - "enum": [ - "express", - "priority", - "standard" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": { - "enum": [ - "bulk", - "individual" - ], - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "shipping_specs", - "type": "object" - }, - "spending_controls": { - "description": "Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details.", - "properties": { - "allowed_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "allowed_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "spending_limits": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "interval": { - "enum": [ - "all_time", - "daily", - "monthly", - "per_authorization", - "weekly", - "yearly" - ], - "type": "string" - } - }, - "required": [ - "amount", - "interval" - ], - "title": "spending_limits_param", - "type": "object" - }, - "type": "array" - } - }, - "title": "authorization_controls_param", - "type": "object" - }, - "status": { - "description": "Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`.", - "enum": [ - "active", - "inactive" - ], - "type": "string" - }, - "type": { - "description": "The type of card to issue. Possible values are `physical` or `virtual`.", - "enum": [ - "physical", - "virtual" - ], - "type": "string" - } - }, - "required": [ - "currency", - "type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/cards/{card}": { - "get": { - "description": "

Retrieves an Issuing Card object.

", - "operationId": "GetIssuingCardsCard", - "parameters": [ - { - "in": "path", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified Issuing Card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostIssuingCardsCard", - "parameters": [ - { - "in": "path", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "pin": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "spending_controls": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cancellation_reason": { - "description": "Reason why the `status` of this card is `canceled`.", - "enum": [ - "lost", - "stolen" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "personalization_design": { - "maxLength": 5000, - "type": "string" - }, - "pin": { - "description": "The desired new PIN for this card.", - "properties": { - "encrypted_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "encrypted_pin_param", - "type": "object" - }, - "shipping": { - "description": "Updated shipping information for the card.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "city", - "country", - "line1", - "postal_code" - ], - "title": "required_address", - "type": "object" - }, - "address_validation": { - "properties": { - "mode": { - "enum": [ - "disabled", - "normalization_only", - "validation_and_normalization" - ], - "type": "string" - } - }, - "required": [ - "mode" - ], - "title": "address_validation_param", - "type": "object" - }, - "customs": { - "properties": { - "eori_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "customs_param", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone_number": { - "type": "string" - }, - "require_signature": { - "type": "boolean" - }, - "service": { - "enum": [ - "express", - "priority", - "standard" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": { - "enum": [ - "bulk", - "individual" - ], - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "shipping_specs", - "type": "object" - }, - "spending_controls": { - "description": "Rules that control spending for this card. Refer to our [documentation](https://stripe.com/docs/issuing/controls/spending-controls) for more details.", - "properties": { - "allowed_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "allowed_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "blocked_merchant_countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "spending_limits": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "categories": { - "items": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "interval": { - "enum": [ - "all_time", - "daily", - "monthly", - "per_authorization", - "weekly", - "yearly" - ], - "type": "string" - } - }, - "required": [ - "amount", - "interval" - ], - "title": "spending_limits_param", - "type": "object" - }, - "type": "array" - } - }, - "title": "authorization_controls_param", - "type": "object" - }, - "status": { - "description": "Dictates whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults to `inactive`. If this card is being canceled because it was lost or stolen, this information should be provided as `cancellation_reason`.", - "enum": [ - "active", - "canceled", - "inactive" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/disputes": { - "get": { - "description": "

Returns a list of Issuing Dispute objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingDisputes", - "parameters": [ - { - "description": "Only return Issuing disputes that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Select Issuing disputes with the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "expired", - "lost", - "submitted", - "unsubmitted", - "won" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Select the Issuing dispute for the given transaction.", - "in": "query", - "name": "transaction", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.dispute" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/disputes", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingDisputeList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to Dispute reasons and evidence for more details about evidence requirements.

", - "operationId": "PostIssuingDisputes", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "evidence": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "treasury": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal). If not set, defaults to the full transaction amount.", - "type": "integer" - }, - "evidence": { - "description": "Evidence provided for the dispute.", - "properties": { - "canceled": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "canceled_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancellation_policy_provided": { - "anyOf": [ - { - "type": "boolean" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancellation_reason": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expected_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_type": { - "enum": [ - "", - "merchandise", - "service" - ], - "type": "string" - }, - "return_status": { - "enum": [ - "", - "merchant_rejected", - "successful" - ], - "type": "string" - }, - "returned_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "canceled", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "duplicate": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card_statement": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cash_receipt": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "check_image": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "original_transaction": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "duplicate", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "fraudulent": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "fraudulent", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "merchandise_not_as_described": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "received_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "return_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "return_status": { - "enum": [ - "", - "merchant_rejected", - "successful" - ], - "type": "string" - }, - "returned_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "merchandise_not_as_described", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "no_valid_authorization": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "no_valid_authorization", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "not_received": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expected_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_type": { - "enum": [ - "", - "merchandise", - "service" - ], - "type": "string" - } - }, - "title": "not_received", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "other": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_type": { - "enum": [ - "", - "merchandise", - "service" - ], - "type": "string" - } - }, - "title": "other", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "reason": { - "enum": [ - "canceled", - "duplicate", - "fraudulent", - "merchandise_not_as_described", - "no_valid_authorization", - "not_received", - "other", - "service_not_as_described" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "service_not_as_described": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "canceled_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancellation_reason": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "received_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "service_not_as_described", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "evidence_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "transaction": { - "description": "The ID of the issuing transaction to create a dispute for. For transaction on Treasury FinancialAccounts, use `treasury.received_debit`.", - "maxLength": 5000, - "type": "string" - }, - "treasury": { - "description": "Params for disputes related to Treasury FinancialAccounts", - "properties": { - "received_debit": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "received_debit" - ], - "title": "treasury_param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/disputes/{dispute}": { - "get": { - "description": "

Retrieves an Issuing Dispute object.

", - "operationId": "GetIssuingDisputesDispute", - "parameters": [ - { - "in": "path", - "name": "dispute", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string.

", - "operationId": "PostIssuingDisputesDispute", - "parameters": [ - { - "in": "path", - "name": "dispute", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "evidence": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The dispute amount in the card's currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "evidence": { - "description": "Evidence provided for the dispute.", - "properties": { - "canceled": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "canceled_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancellation_policy_provided": { - "anyOf": [ - { - "type": "boolean" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancellation_reason": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expected_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_type": { - "enum": [ - "", - "merchandise", - "service" - ], - "type": "string" - }, - "return_status": { - "enum": [ - "", - "merchant_rejected", - "successful" - ], - "type": "string" - }, - "returned_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "canceled", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "duplicate": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card_statement": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cash_receipt": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "check_image": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "original_transaction": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "duplicate", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "fraudulent": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "fraudulent", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "merchandise_not_as_described": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "received_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "return_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "return_status": { - "enum": [ - "", - "merchant_rejected", - "successful" - ], - "type": "string" - }, - "returned_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "merchandise_not_as_described", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "no_valid_authorization": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "no_valid_authorization", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "not_received": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expected_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_type": { - "enum": [ - "", - "merchandise", - "service" - ], - "type": "string" - } - }, - "title": "not_received", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "other": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_type": { - "enum": [ - "", - "merchandise", - "service" - ], - "type": "string" - } - }, - "title": "other", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "reason": { - "enum": [ - "canceled", - "duplicate", - "fraudulent", - "merchandise_not_as_described", - "no_valid_authorization", - "not_received", - "other", - "service_not_as_described" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "service_not_as_described": { - "anyOf": [ - { - "properties": { - "additional_documentation": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "canceled_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cancellation_reason": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "explanation": { - "anyOf": [ - { - "maxLength": 2500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "received_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "service_not_as_described", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "evidence_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/disputes/{dispute}/submit": { - "post": { - "description": "

Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute’s reason are present. For more details, see Dispute reasons and evidence.

", - "operationId": "PostIssuingDisputesDisputeSubmit", - "parameters": [ - { - "in": "path", - "name": "dispute", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.dispute" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/personalization_designs": { - "get": { - "description": "

Returns a list of personalization design objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingPersonalizationDesigns", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return personalization designs with the given lookup keys.", - "explode": true, - "in": "query", - "name": "lookup_keys", - "required": false, - "schema": { - "items": { - "maxLength": 200, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return personalization designs with the given preferences.", - "explode": true, - "in": "query", - "name": "preferences", - "required": false, - "schema": { - "properties": { - "is_default": { - "type": "boolean" - }, - "is_platform_default": { - "type": "boolean" - } - }, - "title": "preferences_list_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return personalization designs with the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "inactive", - "rejected", - "review" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.personalization_design" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/personalization_designs", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingPersonalizationDesignList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a personalization design object.

", - "operationId": "PostIssuingPersonalizationDesigns", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "carrier_text": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "preferences": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "card_logo": { - "description": "The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`.", - "type": "string" - }, - "carrier_text": { - "description": "Hash containing carrier text, for use with physical bundles that support carrier text.", - "properties": { - "footer_body": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "footer_title": { - "anyOf": [ - { - "maxLength": 30, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "header_body": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "header_title": { - "anyOf": [ - { - "maxLength": 30, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "carrier_text_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "lookup_key": { - "description": "A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters.", - "maxLength": 200, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "name": { - "description": "Friendly display name.", - "maxLength": 200, - "type": "string" - }, - "physical_bundle": { - "description": "The physical bundle object belonging to this personalization design.", - "maxLength": 5000, - "type": "string" - }, - "preferences": { - "description": "Information on whether this personalization design is used to create cards when one is not specified.", - "properties": { - "is_default": { - "type": "boolean" - } - }, - "required": [ - "is_default" - ], - "title": "preferences_param", - "type": "object" - }, - "transfer_lookup_key": { - "description": "If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design.", - "type": "boolean" - } - }, - "required": [ - "physical_bundle" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.personalization_design" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/personalization_designs/{personalization_design}": { - "get": { - "description": "

Retrieves a personalization design object.

", - "operationId": "GetIssuingPersonalizationDesignsPersonalizationDesign", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "personalization_design", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.personalization_design" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a card personalization object.

", - "operationId": "PostIssuingPersonalizationDesignsPersonalizationDesign", - "parameters": [ - { - "in": "path", - "name": "personalization_design", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "card_logo": { - "explode": true, - "style": "deepObject" - }, - "carrier_text": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "lookup_key": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "name": { - "explode": true, - "style": "deepObject" - }, - "preferences": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "card_logo": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The file for the card logo, for use with physical bundles that support card logos. Must have a `purpose` value of `issuing_logo`." - }, - "carrier_text": { - "anyOf": [ - { - "properties": { - "footer_body": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "footer_title": { - "anyOf": [ - { - "maxLength": 30, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "header_body": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "header_title": { - "anyOf": [ - { - "maxLength": 30, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "carrier_text_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Hash containing carrier text, for use with physical bundles that support carrier text." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "lookup_key": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A lookup key used to retrieve personalization designs dynamically from a static string. This may be up to 200 characters." - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "name": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Friendly display name. Providing an empty string will set the field to null." - }, - "physical_bundle": { - "description": "The physical bundle object belonging to this personalization design.", - "maxLength": 5000, - "type": "string" - }, - "preferences": { - "description": "Information on whether this personalization design is used to create cards when one is not specified.", - "properties": { - "is_default": { - "type": "boolean" - } - }, - "required": [ - "is_default" - ], - "title": "preferences_param", - "type": "object" - }, - "transfer_lookup_key": { - "description": "If set to true, will atomically remove the lookup key from the existing personalization design, and assign it to this personalization design.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.personalization_design" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/physical_bundles": { - "get": { - "description": "

Returns a list of physical bundle objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingPhysicalBundles", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return physical bundles with the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "inactive", - "review" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return physical bundles with the given type.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "custom", - "standard" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.physical_bundle" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/physical_bundles", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingPhysicalBundleList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/physical_bundles/{physical_bundle}": { - "get": { - "description": "

Retrieves a physical bundle object.

", - "operationId": "GetIssuingPhysicalBundlesPhysicalBundle", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "physical_bundle", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.physical_bundle" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/settlements/{settlement}": { - "get": { - "description": "

Retrieves an Issuing Settlement object.

", - "operationId": "GetIssuingSettlementsSettlement", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "settlement", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.settlement" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified Issuing Settlement object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostIssuingSettlementsSettlement", - "parameters": [ - { - "in": "path", - "name": "settlement", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.settlement" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/tokens": { - "get": { - "description": "

Lists all Issuing Token objects for a given card.

", - "operationId": "GetIssuingTokens", - "parameters": [ - { - "description": "The Issuing card identifier to list tokens for.", - "in": "query", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return Issuing tokens that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Select Issuing tokens with the given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "deleted", - "requested", - "suspended" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.token" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingNetworkTokenList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/tokens/{token}": { - "get": { - "description": "

Retrieves an Issuing Token object.

", - "operationId": "GetIssuingTokensToken", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Attempts to update the specified Issuing Token object to the status specified.

", - "operationId": "PostIssuingTokensToken", - "parameters": [ - { - "in": "path", - "name": "token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "status": { - "description": "Specifies which status the token should be updated to.", - "enum": [ - "active", - "deleted", - "suspended" - ], - "type": "string" - } - }, - "required": [ - "status" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/transactions": { - "get": { - "description": "

Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetIssuingTransactions", - "parameters": [ - { - "description": "Only return transactions that belong to the given card.", - "in": "query", - "name": "card", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return transactions that belong to the given cardholder.", - "in": "query", - "name": "cardholder", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return transactions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return transactions that have the given type. One of `capture` or `refund`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "capture", - "refund" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/issuing.transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/issuing/transactions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "IssuingTransactionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/issuing/transactions/{transaction}": { - "get": { - "description": "

Retrieves an Issuing Transaction object.

", - "operationId": "GetIssuingTransactionsTransaction", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified Issuing Transaction object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostIssuingTransactionsTransaction", - "parameters": [ - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/link_account_sessions": { - "post": { - "description": "

To launch the Financial Connections authorization flow, create a Session. The session’s client_secret can be used to launch the flow using Stripe.js.

", - "operationId": "PostLinkAccountSessions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "account_holder": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "filters": { - "explode": true, - "style": "deepObject" - }, - "permissions": { - "explode": true, - "style": "deepObject" - }, - "prefetch": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account_holder": { - "description": "The account holder to link accounts for.", - "properties": { - "account": { - "maxLength": 5000, - "type": "string" - }, - "customer": { - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "account", - "customer" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "accountholder_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "filters": { - "description": "Filters to restrict the kinds of accounts to collect.", - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "credit_card", - "line_of_credit", - "mortgage", - "savings" - ], - "type": "string" - }, - "type": "array" - }, - "countries": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "filters_params", - "type": "object" - }, - "permissions": { - "description": "List of data features that you would like to request access to.\n\nPossible values are `balances`, `transactions`, `ownership`, and `payment_method`.", - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "description": "List of data features that you would like to retrieve upon account creation.", - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "description": "For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_holder", - "permissions" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/link_account_sessions/{session}": { - "get": { - "description": "

Retrieves the details of a Financial Connections Session

", - "operationId": "GetLinkAccountSessionsSession", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "session", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.session" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/linked_accounts": { - "get": { - "description": "

Returns a list of Financial Connections Account objects.

", - "operationId": "GetLinkedAccounts", - "parameters": [ - { - "description": "If present, only return accounts that belong to the specified account holder. `account_holder[customer]` and `account_holder[account]` are mutually exclusive.", - "explode": true, - "in": "query", - "name": "account_holder", - "required": false, - "schema": { - "properties": { - "account": { - "maxLength": 5000, - "type": "string" - }, - "customer": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "accountholder_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "If present, only return accounts that were collected as part of the given session.", - "in": "query", - "name": "session", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/financial_connections/accounts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceLinkedAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/linked_accounts/{account}": { - "get": { - "description": "

Retrieves the details of an Financial Connections Account.

", - "operationId": "GetLinkedAccountsAccount", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/linked_accounts/{account}/disconnect": { - "post": { - "description": "

Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions).

", - "operationId": "PostLinkedAccountsAccountDisconnect", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/linked_accounts/{account}/owners": { - "get": { - "description": "

Lists all owners for a given Account

", - "operationId": "GetLinkedAccountsAccountOwners", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The ID of the ownership object to fetch owners from.", - "in": "query", - "name": "ownership", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/financial_connections.account_owner" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BankConnectionsResourceOwnerList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/linked_accounts/{account}/refresh": { - "post": { - "description": "

Refreshes the data associated with a Financial Connections Account.

", - "operationId": "PostLinkedAccountsAccountRefresh", - "parameters": [ - { - "in": "path", - "name": "account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "The list of account features that you would like to refresh.", - "items": { - "enum": [ - "balance", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "required": [ - "features" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/financial_connections.account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/mandates/{mandate}": { - "get": { - "description": "

Retrieves a Mandate object.

", - "operationId": "GetMandatesMandate", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "mandate", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/mandate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents": { - "get": { - "description": "

Returns a list of PaymentIntents.

", - "operationId": "GetPaymentIntents", - "parameters": [ - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp or a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return PaymentIntents for the customer that this customer ID specifies.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_intent" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/payment_intents", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentFlowsPaymentIntentList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a PaymentIntent object.

\n\n

After the PaymentIntent is created, attach a payment method and confirm\nto continue the payment. Learn more about the available payment flows\nwith the Payment Intents API.

\n\n

When you use confirm=true during creation, it’s equivalent to creating\nand confirming the PaymentIntent in the same call. You can use any parameters\navailable in the confirm API when you supply\nconfirm=true.

", - "operationId": "PostPaymentIntents", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "automatic_payment_methods": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "mandate_data": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "off_session": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "radar_options": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "type": "integer" - }, - "automatic_payment_methods": { - "description": "When you enable this parameter, this PaymentIntent accepts payment methods that you enable in the Dashboard and that are compatible with this PaymentIntent's other parameters.", - "properties": { - "allow_redirects": { - "enum": [ - "always", - "never" - ], - "type": "string" - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_payment_methods_param", - "type": "object" - }, - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "confirm": { - "description": "Set to `true` to attempt to [confirm this PaymentIntent](https://stripe.com/docs/api/payment_intents/confirm) immediately. This parameter defaults to `false`. When creating and confirming a PaymentIntent at the same time, you can also provide the parameters available in the [Confirm API](https://stripe.com/docs/api/payment_intents/confirm).", - "type": "boolean" - }, - "confirmation_method": { - "description": "Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.", - "enum": [ - "automatic", - "manual" - ], - "type": "string" - }, - "confirmation_token": { - "description": "ID of the ConfirmationToken used to confirm this PaymentIntent.\n\nIf the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "ID of the Customer this PaymentIntent belongs to, if one exists.\n\nPayment methods attached to other Customers cannot be used with this PaymentIntent.\n\nIf [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.corp.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 1000, - "type": "string" - }, - "error_on_requires_action": { - "description": "Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. Use this parameter for simpler integrations that don't handle customer actions, such as [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "mandate": { - "description": "ID of the mandate that's used for this payment. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).", - "maxLength": 5000, - "type": "string" - }, - "mandate_data": { - "anyOf": [ - { - "properties": { - "customer_acceptance": { - "properties": { - "accepted_at": { - "format": "unix-time", - "type": "integer" - }, - "offline": { - "properties": {}, - "title": "offline_param", - "type": "object" - }, - "online": { - "properties": { - "ip_address": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "ip_address", - "user_agent" - ], - "title": "online_param", - "type": "object" - }, - "type": { - "enum": [ - "offline", - "online" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "customer_acceptance_param", - "type": "object" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "secret_key_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm)." - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "off_session": { - "anyOf": [ - { - "type": "boolean" - }, - { - "enum": [ - "one_off", - "recurring" - ], - "maxLength": 5000, - "type": "string" - } - ], - "description": "Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards). This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm)." - }, - "on_behalf_of": { - "description": "The Stripe account ID that these funds are intended for. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "type": "string" - }, - "payment_method": { - "description": "ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent.\n\nIf you omit this parameter with `confirm=true`, `customer.default_source` attaches as this PaymentIntent's payment instrument to improve migration for users of the Charges API. We recommend that you explicitly provide the `payment_method` moving forward.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_configuration": { - "description": "The ID of the payment method configuration to use with this PaymentIntent.", - "maxLength": 100, - "type": "string" - }, - "payment_method_data": { - "description": "If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear\nin the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)\nproperty on the PaymentIntent.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "payment_method_options": { - "description": "Payment method-specific configuration for this PaymentIntent.", - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "affirm": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "maxLength": 30, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "afterpay_clearpay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "reference": { - "maxLength": 128, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "alipay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "amazon_pay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "au_becs_debit": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bacs_debit": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "blik": { - "anyOf": [ - { - "properties": { - "code": { - "maxLength": 5000, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "boleto": { - "anyOf": [ - { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "cvc_token": { - "maxLength": 5000, - "type": "string" - }, - "installments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "plan": { - "anyOf": [ - { - "properties": { - "count": { - "type": "integer" - }, - "interval": { - "enum": [ - "month" - ], - "type": "string" - }, - "type": { - "enum": [ - "fixed_count" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "count", - "interval", - "type" - ], - "title": "installment_plan", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "installments_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "interval": { - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "reference": { - "maxLength": 80, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "interval", - "reference", - "start_date" - ], - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_extended_authorization": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_incremental_authorization": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_multicapture": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_overcapture": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "require_cvc_recollection": { - "type": "boolean" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_suffix_kanji": { - "anyOf": [ - { - "maxLength": 17, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "three_d_secure": { - "properties": { - "ares_trans_status": { - "enum": [ - "A", - "C", - "I", - "N", - "R", - "U", - "Y" - ], - "type": "string" - }, - "cryptogram": { - "maxLength": 5000, - "type": "string" - }, - "electronic_commerce_indicator": { - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "exemption_indicator": { - "enum": [ - "low_risk", - "none" - ], - "type": "string" - }, - "network_options": { - "properties": { - "cartes_bancaires": { - "properties": { - "cb_avalgo": { - "enum": [ - "0", - "1", - "2", - "3", - "4", - "A" - ], - "type": "string" - }, - "cb_exemption": { - "maxLength": 4, - "type": "string" - }, - "cb_score": { - "type": "integer" - } - }, - "required": [ - "cb_avalgo" - ], - "title": "cartes_bancaires_network_options_param", - "type": "object" - } - }, - "title": "network_options_param", - "type": "object" - }, - "requestor_challenge_indicator": { - "maxLength": 2, - "type": "string" - }, - "transaction_id": { - "maxLength": 5000, - "type": "string" - }, - "version": { - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "cryptogram", - "transaction_id", - "version" - ], - "title": "payment_method_options_param", - "type": "object" - } - }, - "title": "payment_intent_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card_present": { - "anyOf": [ - { - "properties": { - "request_extended_authorization": { - "type": "boolean" - }, - "request_incremental_authorization_support": { - "type": "boolean" - }, - "routing": { - "properties": { - "requested_priority": { - "enum": [ - "domestic", - "international" - ], - "type": "string" - } - }, - "title": "routing_payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cashapp": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_params", - "type": "object" - }, - "requested_address_types": { - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "enum": [ - "bank_transfer" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "eps": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "fpx": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "giropay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "grabpay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "ideal": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "interac_present": { - "anyOf": [ - { - "properties": {}, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "klarna": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AT", - "en-AU", - "en-BE", - "en-CA", - "en-CH", - "en-CZ", - "en-DE", - "en-DK", - "en-ES", - "en-FI", - "en-FR", - "en-GB", - "en-GR", - "en-IE", - "en-IT", - "en-NL", - "en-NO", - "en-NZ", - "en-PL", - "en-PT", - "en-RO", - "en-SE", - "en-US", - "es-ES", - "es-US", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "it-CH", - "it-IT", - "nb-NO", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "ro-RO", - "sv-FI", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": { - "confirmation_number": { - "anyOf": [ - { - "maxLength": 11, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expires_after_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expires_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "link": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "mobilepay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "multibanco": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "oxxo": { - "anyOf": [ - { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "p24": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - }, - "tos_shown_and_accepted": { - "type": "boolean" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "paynow": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "paypal": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-DE", - "de-LU", - "el-GR", - "en-GB", - "en-US", - "es-ES", - "fi-FI", - "fr-BE", - "fr-FR", - "fr-LU", - "hu-HU", - "it-IT", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "sk-SK", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reference": { - "maxLength": 127, - "type": "string" - }, - "risk_correlation_id": { - "maxLength": 32, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "pix": { - "anyOf": [ - { - "properties": { - "expires_after_seconds": { - "type": "integer" - }, - "expires_at": { - "format": "unix-time", - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "promptpay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "revolut_pay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": {}, - "title": "payment_method_options_mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sofort": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "", - "de", - "en", - "es", - "fr", - "it", - "nl", - "pl" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "swish": { - "anyOf": [ - { - "properties": { - "reference": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "twint": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "collection_method": { - "enum": [ - "", - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "networks": { - "properties": { - "requested": { - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "networks_options_param", - "type": "object" - }, - "preferred_settlement_speed": { - "enum": [ - "", - "fastest", - "standard" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "wechat_pay": { - "anyOf": [ - { - "properties": { - "app_id": { - "maxLength": 5000, - "type": "string" - }, - "client": { - "enum": [ - "android", - "ios", - "web" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "client" - ], - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "zip": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "The list of payment method types (for example, a card) that this PaymentIntent can use. If you don't provide this, it defaults to [\"card\"]. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "radar_options": { - "description": "Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).", - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "receipt_email": { - "description": "Email address to send the receipt to. If you specify `receipt_email` for a payment in live mode, you send a receipt regardless of your [email settings](https://dashboard.stripe.com/account/emails).", - "type": "string" - }, - "return_url": { - "description": "The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-confirm).", - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).", - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "shipping": { - "description": "Shipping information for this PaymentIntent.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - "statement_descriptor": { - "description": "For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. The concatenated descriptor must contain 1-22 characters.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "The parameters that you can use to automatically create a Transfer.\nLearn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_creation_params", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).", - "type": "string" - }, - "use_stripe_sdk": { - "description": "Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.", - "type": "boolean" - } - }, - "required": [ - "amount", - "currency" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/search": { - "get": { - "description": "

Search for PaymentIntents you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetPaymentIntentsSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for payment intents](https://stripe.com/docs/search#query-fields-for-payment-intents).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_intent" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}": { - "get": { - "description": "

Retrieves the details of a PaymentIntent that has previously been created.

\n\n

You can retrieve a PaymentIntent client-side using a publishable key when the client_secret is in the query string.

\n\n

If you retrieve a PaymentIntent with a publishable key, it only returns a subset of properties. Refer to the payment intent object reference for more details.

", - "operationId": "GetPaymentIntentsIntent", - "parameters": [ - { - "description": "The client secret of the PaymentIntent. We require it if you use a publishable key to retrieve the source.", - "in": "query", - "name": "client_secret", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates properties on a PaymentIntent object without confirming.

\n\n

Depending on which properties you update, you might need to confirm the\nPaymentIntent again. For example, updating the payment_method\nalways requires you to confirm the PaymentIntent again. If you prefer to\nupdate and confirm at the same time, we recommend updating properties through\nthe confirm API instead.

", - "operationId": "PostPaymentIntentsIntent", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "application_fee_amount": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "receipt_email": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).", - "type": "integer" - }, - "application_fee_amount": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts)." - }, - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "ID of the Customer this PaymentIntent belongs to, if one exists.\n\nPayment methods attached to other Customers cannot be used with this PaymentIntent.\n\nIf [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) is set and this PaymentIntent's payment method is not `card_present`, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is `card_present` and isn't a digital wallet, then a [generated_card](https://docs.corp.stripe.com/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card is created and attached to the Customer instead.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 1000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "payment_method": { - "description": "ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent. To unset this field to null, pass in an empty string.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_configuration": { - "description": "The ID of the payment method configuration to use with this PaymentIntent.", - "maxLength": 100, - "type": "string" - }, - "payment_method_data": { - "description": "If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear\nin the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)\nproperty on the PaymentIntent.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "payment_method_options": { - "description": "Payment-method-specific configuration for this PaymentIntent.", - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "affirm": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "maxLength": 30, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "afterpay_clearpay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "reference": { - "maxLength": 128, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "alipay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "amazon_pay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "au_becs_debit": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bacs_debit": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "blik": { - "anyOf": [ - { - "properties": { - "code": { - "maxLength": 5000, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "boleto": { - "anyOf": [ - { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "cvc_token": { - "maxLength": 5000, - "type": "string" - }, - "installments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "plan": { - "anyOf": [ - { - "properties": { - "count": { - "type": "integer" - }, - "interval": { - "enum": [ - "month" - ], - "type": "string" - }, - "type": { - "enum": [ - "fixed_count" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "count", - "interval", - "type" - ], - "title": "installment_plan", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "installments_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "interval": { - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "reference": { - "maxLength": 80, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "interval", - "reference", - "start_date" - ], - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_extended_authorization": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_incremental_authorization": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_multicapture": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_overcapture": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "require_cvc_recollection": { - "type": "boolean" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_suffix_kanji": { - "anyOf": [ - { - "maxLength": 17, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "three_d_secure": { - "properties": { - "ares_trans_status": { - "enum": [ - "A", - "C", - "I", - "N", - "R", - "U", - "Y" - ], - "type": "string" - }, - "cryptogram": { - "maxLength": 5000, - "type": "string" - }, - "electronic_commerce_indicator": { - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "exemption_indicator": { - "enum": [ - "low_risk", - "none" - ], - "type": "string" - }, - "network_options": { - "properties": { - "cartes_bancaires": { - "properties": { - "cb_avalgo": { - "enum": [ - "0", - "1", - "2", - "3", - "4", - "A" - ], - "type": "string" - }, - "cb_exemption": { - "maxLength": 4, - "type": "string" - }, - "cb_score": { - "type": "integer" - } - }, - "required": [ - "cb_avalgo" - ], - "title": "cartes_bancaires_network_options_param", - "type": "object" - } - }, - "title": "network_options_param", - "type": "object" - }, - "requestor_challenge_indicator": { - "maxLength": 2, - "type": "string" - }, - "transaction_id": { - "maxLength": 5000, - "type": "string" - }, - "version": { - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "cryptogram", - "transaction_id", - "version" - ], - "title": "payment_method_options_param", - "type": "object" - } - }, - "title": "payment_intent_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card_present": { - "anyOf": [ - { - "properties": { - "request_extended_authorization": { - "type": "boolean" - }, - "request_incremental_authorization_support": { - "type": "boolean" - }, - "routing": { - "properties": { - "requested_priority": { - "enum": [ - "domestic", - "international" - ], - "type": "string" - } - }, - "title": "routing_payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cashapp": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_params", - "type": "object" - }, - "requested_address_types": { - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "enum": [ - "bank_transfer" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "eps": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "fpx": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "giropay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "grabpay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "ideal": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "interac_present": { - "anyOf": [ - { - "properties": {}, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "klarna": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AT", - "en-AU", - "en-BE", - "en-CA", - "en-CH", - "en-CZ", - "en-DE", - "en-DK", - "en-ES", - "en-FI", - "en-FR", - "en-GB", - "en-GR", - "en-IE", - "en-IT", - "en-NL", - "en-NO", - "en-NZ", - "en-PL", - "en-PT", - "en-RO", - "en-SE", - "en-US", - "es-ES", - "es-US", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "it-CH", - "it-IT", - "nb-NO", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "ro-RO", - "sv-FI", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": { - "confirmation_number": { - "anyOf": [ - { - "maxLength": 11, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expires_after_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expires_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "link": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "mobilepay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "multibanco": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "oxxo": { - "anyOf": [ - { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "p24": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - }, - "tos_shown_and_accepted": { - "type": "boolean" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "paynow": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "paypal": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-DE", - "de-LU", - "el-GR", - "en-GB", - "en-US", - "es-ES", - "fi-FI", - "fr-BE", - "fr-FR", - "fr-LU", - "hu-HU", - "it-IT", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "sk-SK", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reference": { - "maxLength": 127, - "type": "string" - }, - "risk_correlation_id": { - "maxLength": 32, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "pix": { - "anyOf": [ - { - "properties": { - "expires_after_seconds": { - "type": "integer" - }, - "expires_at": { - "format": "unix-time", - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "promptpay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "revolut_pay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": {}, - "title": "payment_method_options_mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sofort": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "", - "de", - "en", - "es", - "fr", - "it", - "nl", - "pl" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "swish": { - "anyOf": [ - { - "properties": { - "reference": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "twint": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "collection_method": { - "enum": [ - "", - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "networks": { - "properties": { - "requested": { - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "networks_options_param", - "type": "object" - }, - "preferred_settlement_speed": { - "enum": [ - "", - "fastest", - "standard" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "wechat_pay": { - "anyOf": [ - { - "properties": { - "app_id": { - "maxLength": 5000, - "type": "string" - }, - "client": { - "enum": [ - "android", - "ios", - "web" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "client" - ], - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "zip": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "The list of payment method types (for example, card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "receipt_email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails)." - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).\n\nIf you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.", - "enum": [ - "", - "off_session", - "on_session" - ], - "type": "string" - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Shipping information for this PaymentIntent." - }, - "statement_descriptor": { - "description": "For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "Use this parameter to automatically create a Transfer when the payment succeeds. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "properties": { - "amount": { - "type": "integer" - } - }, - "title": "transfer_data_update_params", - "type": "object" - }, - "transfer_group": { - "description": "A string that identifies the resulting payment as part of a group. You can only provide `transfer_group` if it hasn't been set. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}/apply_customer_balance": { - "post": { - "description": "

Manually reconcile the remaining amount for a customer_balance PaymentIntent.

", - "operationId": "PostPaymentIntentsIntentApplyCustomerBalance", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount that you intend to apply to this PaymentIntent from the customer’s cash balance.\n\nA positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (for example, 100 cents to charge 1 USD or 100 to charge 100 JPY, a zero-decimal currency).\n\nThe maximum amount is the amount of the PaymentIntent.\n\nWhen you omit the amount, it defaults to the remaining amount requested on the PaymentIntent.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}/cancel": { - "post": { - "description": "

You can cancel a PaymentIntent object when it’s in one of these statuses: requires_payment_method, requires_capture, requires_confirmation, requires_action or, in rare cases, processing.

\n\n

After it’s canceled, no additional charges are made by the PaymentIntent and any operations on the PaymentIntent fail with an error. For PaymentIntents with a status of requires_capture, the remaining amount_capturable is automatically refunded.

\n\n

You can’t cancel the PaymentIntent for a Checkout Session. Expire the Checkout Session instead.

", - "operationId": "PostPaymentIntentsIntentCancel", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cancellation_reason": { - "description": "Reason for canceling this PaymentIntent. Possible values are: `duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`", - "enum": [ - "abandoned", - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}/capture": { - "post": { - "description": "

Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture.

\n\n

Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation.

\n\n

Learn more about separate authorization and capture.

", - "operationId": "PostPaymentIntentsIntentCapture", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount_to_capture": { - "description": "The amount to capture from the PaymentIntent, which must be less than or equal to the original amount. Any additional amount is automatically refunded. Defaults to the full `amount_capturable` if it's not provided.", - "type": "integer" - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "final_capture": { - "description": "Defaults to `true`. When capturing a PaymentIntent, setting `final_capture` to `false` notifies Stripe to not release the remaining uncaptured funds to make sure that they're captured in future requests. You can only use this setting when [multicapture](https://stripe.com/docs/payments/multicapture) is available for PaymentIntents.", - "type": "boolean" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "statement_descriptor": { - "description": "For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long.", - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "description": "Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. The concatenated descriptor must be 1-22 characters long.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "The parameters that you can use to automatically create a transfer after the payment\nis captured. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "properties": { - "amount": { - "type": "integer" - } - }, - "title": "transfer_data_update_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}/confirm": { - "post": { - "description": "

Confirm that your customer intends to pay with current or provided\npayment method. Upon confirmation, the PaymentIntent will attempt to initiate\na payment.\nIf the selected payment method requires additional authentication steps, the\nPaymentIntent will transition to the requires_action status and\nsuggest additional actions via next_action. If payment fails,\nthe PaymentIntent transitions to the requires_payment_method status or the\ncanceled status if the confirmation limit is reached. If\npayment succeeds, the PaymentIntent will transition to the succeeded\nstatus (or requires_capture, if capture_method is set to manual).\nIf the confirmation_method is automatic, payment may be attempted\nusing our client SDKs\nand the PaymentIntent’s client_secret.\nAfter next_actions are handled by the client, no additional\nconfirmation is required to complete the payment.\nIf the confirmation_method is manual, all payment attempts must be\ninitiated using a secret key.\nIf any actions are required for the payment, the PaymentIntent will\nreturn to the requires_confirmation state\nafter those actions are completed. Your server needs to then\nexplicitly re-confirm the PaymentIntent to initiate the next payment\nattempt.

", - "operationId": "PostPaymentIntentsIntentConfirm", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "mandate_data": { - "explode": true, - "style": "deepObject" - }, - "off_session": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "radar_options": { - "explode": true, - "style": "deepObject" - }, - "receipt_email": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "capture_method": { - "description": "Controls when the funds will be captured from the customer's account.", - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "client_secret": { - "description": "The client secret of the PaymentIntent.", - "maxLength": 5000, - "type": "string" - }, - "confirmation_token": { - "description": "ID of the ConfirmationToken used to confirm this PaymentIntent.\n\nIf the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.", - "maxLength": 5000, - "type": "string" - }, - "error_on_requires_action": { - "description": "Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. This parameter is intended for simpler integrations that do not handle customer actions, like [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication).", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "mandate": { - "description": "ID of the mandate that's used for this payment.", - "maxLength": 5000, - "type": "string" - }, - "mandate_data": { - "anyOf": [ - { - "properties": { - "customer_acceptance": { - "properties": { - "accepted_at": { - "format": "unix-time", - "type": "integer" - }, - "offline": { - "properties": {}, - "title": "offline_param", - "type": "object" - }, - "online": { - "properties": { - "ip_address": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "ip_address", - "user_agent" - ], - "title": "online_param", - "type": "object" - }, - "type": { - "enum": [ - "offline", - "online" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "customer_acceptance_param", - "type": "object" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "secret_key_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - }, - { - "description": "This hash contains details about the Mandate to create", - "properties": { - "customer_acceptance": { - "properties": { - "online": { - "properties": { - "ip_address": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "online_param", - "type": "object" - }, - "type": { - "enum": [ - "online" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "online", - "type" - ], - "title": "customer_acceptance_param", - "type": "object" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "client_key_param", - "type": "object" - } - ] - }, - "off_session": { - "anyOf": [ - { - "type": "boolean" - }, - { - "enum": [ - "one_off", - "recurring" - ], - "maxLength": 5000, - "type": "string" - } - ], - "description": "Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards)." - }, - "payment_method": { - "description": "ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_data": { - "description": "If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear\nin the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)\nproperty on the PaymentIntent.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "payment_method_options": { - "description": "Payment method-specific configuration for this PaymentIntent.", - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "affirm": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "maxLength": 30, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "afterpay_clearpay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "reference": { - "maxLength": 128, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "alipay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "amazon_pay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "au_becs_debit": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bacs_debit": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "blik": { - "anyOf": [ - { - "properties": { - "code": { - "maxLength": 5000, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "boleto": { - "anyOf": [ - { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "cvc_token": { - "maxLength": 5000, - "type": "string" - }, - "installments": { - "properties": { - "enabled": { - "type": "boolean" - }, - "plan": { - "anyOf": [ - { - "properties": { - "count": { - "type": "integer" - }, - "interval": { - "enum": [ - "month" - ], - "type": "string" - }, - "type": { - "enum": [ - "fixed_count" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "count", - "interval", - "type" - ], - "title": "installment_plan", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "installments_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "interval": { - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "reference": { - "maxLength": 80, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "interval", - "reference", - "start_date" - ], - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_extended_authorization": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_incremental_authorization": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_multicapture": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_overcapture": { - "enum": [ - "if_available", - "never" - ], - "type": "string" - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "require_cvc_recollection": { - "type": "boolean" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor_suffix_kana": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_suffix_kanji": { - "anyOf": [ - { - "maxLength": 17, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "three_d_secure": { - "properties": { - "ares_trans_status": { - "enum": [ - "A", - "C", - "I", - "N", - "R", - "U", - "Y" - ], - "type": "string" - }, - "cryptogram": { - "maxLength": 5000, - "type": "string" - }, - "electronic_commerce_indicator": { - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "exemption_indicator": { - "enum": [ - "low_risk", - "none" - ], - "type": "string" - }, - "network_options": { - "properties": { - "cartes_bancaires": { - "properties": { - "cb_avalgo": { - "enum": [ - "0", - "1", - "2", - "3", - "4", - "A" - ], - "type": "string" - }, - "cb_exemption": { - "maxLength": 4, - "type": "string" - }, - "cb_score": { - "type": "integer" - } - }, - "required": [ - "cb_avalgo" - ], - "title": "cartes_bancaires_network_options_param", - "type": "object" - } - }, - "title": "network_options_param", - "type": "object" - }, - "requestor_challenge_indicator": { - "maxLength": 2, - "type": "string" - }, - "transaction_id": { - "maxLength": 5000, - "type": "string" - }, - "version": { - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "cryptogram", - "transaction_id", - "version" - ], - "title": "payment_method_options_param", - "type": "object" - } - }, - "title": "payment_intent_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card_present": { - "anyOf": [ - { - "properties": { - "request_extended_authorization": { - "type": "boolean" - }, - "request_incremental_authorization_support": { - "type": "boolean" - }, - "routing": { - "properties": { - "requested_priority": { - "enum": [ - "domestic", - "international" - ], - "type": "string" - } - }, - "title": "routing_payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "cashapp": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_params", - "type": "object" - }, - "requested_address_types": { - "items": { - "enum": [ - "aba", - "iban", - "sepa", - "sort_code", - "spei", - "swift", - "zengin" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "type": { - "enum": [ - "eu_bank_transfer", - "gb_bank_transfer", - "jp_bank_transfer", - "mx_bank_transfer", - "us_bank_transfer" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "type" - ], - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "enum": [ - "bank_transfer" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "eps": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "fpx": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "giropay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "grabpay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "ideal": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "interac_present": { - "anyOf": [ - { - "properties": {}, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "klarna": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-CH", - "de-DE", - "el-GR", - "en-AT", - "en-AU", - "en-BE", - "en-CA", - "en-CH", - "en-CZ", - "en-DE", - "en-DK", - "en-ES", - "en-FI", - "en-FR", - "en-GB", - "en-GR", - "en-IE", - "en-IT", - "en-NL", - "en-NO", - "en-NZ", - "en-PL", - "en-PT", - "en-RO", - "en-SE", - "en-US", - "es-ES", - "es-US", - "fi-FI", - "fr-BE", - "fr-CA", - "fr-CH", - "fr-FR", - "it-CH", - "it-IT", - "nb-NO", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "ro-RO", - "sv-FI", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": { - "confirmation_number": { - "anyOf": [ - { - "maxLength": 11, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expires_after_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "expires_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "product_description": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "link": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "mobilepay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "multibanco": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "oxxo": { - "anyOf": [ - { - "properties": { - "expires_after_days": { - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "p24": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - }, - "tos_shown_and_accepted": { - "type": "boolean" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "paynow": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "paypal": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "preferred_locale": { - "enum": [ - "cs-CZ", - "da-DK", - "de-AT", - "de-DE", - "de-LU", - "el-GR", - "en-GB", - "en-US", - "es-ES", - "fi-FI", - "fr-BE", - "fr-FR", - "fr-LU", - "hu-HU", - "it-IT", - "nl-BE", - "nl-NL", - "pl-PL", - "pt-PT", - "sk-SK", - "sv-SE" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "reference": { - "maxLength": 127, - "type": "string" - }, - "risk_correlation_id": { - "maxLength": 32, - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "pix": { - "anyOf": [ - { - "properties": { - "expires_after_seconds": { - "type": "integer" - }, - "expires_at": { - "format": "unix-time", - "type": "integer" - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "promptpay": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "revolut_pay": { - "anyOf": [ - { - "properties": { - "capture_method": { - "enum": [ - "", - "manual" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": {}, - "title": "payment_method_options_mandate_options_param", - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sofort": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "", - "de", - "en", - "es", - "fr", - "it", - "nl", - "pl" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "swish": { - "anyOf": [ - { - "properties": { - "reference": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "twint": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "collection_method": { - "enum": [ - "", - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "networks": { - "properties": { - "requested": { - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "networks_options_param", - "type": "object" - }, - "preferred_settlement_speed": { - "enum": [ - "", - "fastest", - "standard" - ], - "type": "string" - }, - "setup_future_usage": { - "enum": [ - "", - "none", - "off_session", - "on_session" - ], - "type": "string" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "payment_intent_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "wechat_pay": { - "anyOf": [ - { - "properties": { - "app_id": { - "maxLength": 5000, - "type": "string" - }, - "client": { - "enum": [ - "android", - "ios", - "web" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "required": [ - "client" - ], - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "zip": { - "anyOf": [ - { - "properties": { - "setup_future_usage": { - "enum": [ - "none" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "The list of payment method types (for example, a card) that this PaymentIntent can use. Use `automatic_payment_methods` to manage payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods).", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "radar_options": { - "description": "Options to configure Radar. Learn more about [Radar Sessions](https://stripe.com/docs/radar/radar-session).", - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "receipt_email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails)." - }, - "return_url": { - "description": "The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site.\nIf you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.\nThis parameter is only used for cards and other redirect-based payment methods.", - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this PaymentIntent's payment method.\n\nIf you provide a Customer with the PaymentIntent, you can use this parameter to [attach the payment method](/payments/save-during-payment) to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still [attach](/api/payment_methods/attach) the payment method to a Customer after the transaction completes.\n\nIf the payment method is `card_present` and isn't a digital wallet, Stripe creates and attaches a [generated_card](/api/charges/object#charge_object-payment_method_details-card_present-generated_card) payment method representing the card to the Customer instead.\n\nWhen processing card payments, Stripe uses `setup_future_usage` to help you comply with regional legislation and network rules, such as [SCA](/strong-customer-authentication).\n\nIf you've already set `setup_future_usage` and you're performing a request using a publishable key, you can only update the value from `on_session` to `off_session`.", - "enum": [ - "", - "off_session", - "on_session" - ], - "type": "string" - }, - "shipping": { - "anyOf": [ - { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address", - "name" - ], - "title": "optional_fields_shipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Shipping information for this PaymentIntent." - }, - "use_stripe_sdk": { - "description": "Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}/increment_authorization": { - "post": { - "description": "

Perform an incremental authorization on an eligible\nPaymentIntent. To be eligible, the\nPaymentIntent’s status must be requires_capture and\nincremental_authorization_supported\nmust be true.

\n\n

Incremental authorizations attempt to increase the authorized amount on\nyour customer’s card to the new, higher amount provided. Similar to the\ninitial authorization, incremental authorizations can be declined. A\nsingle PaymentIntent can call this endpoint multiple times to further\nincrease the authorized amount.

\n\n

If the incremental authorization succeeds, the PaymentIntent object\nreturns with the updated\namount.\nIf the incremental authorization fails, a\ncard_declined error returns, and no other\nfields on the PaymentIntent or Charge update. The PaymentIntent\nobject remains capturable for the previously authorized amount.

\n\n

Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines.\nAfter it’s captured, a PaymentIntent can no longer be incremented.

\n\n

Learn more about incremental authorizations.

", - "operationId": "PostPaymentIntentsIntentIncrementAuthorization", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The updated total amount that you intend to collect from the cardholder. This amount must be greater than the currently authorized amount.", - "type": "integer" - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "type": "integer" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 1000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "statement_descriptor": { - "description": "For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long.", - "maxLength": 22, - "type": "string" - }, - "transfer_data": { - "description": "The parameters used to automatically create a transfer after the payment is captured.\nLearn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).", - "properties": { - "amount": { - "type": "integer" - } - }, - "title": "transfer_data_update_params", - "type": "object" - } - }, - "required": [ - "amount" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_intents/{intent}/verify_microdeposits": { - "post": { - "description": "

Verifies microdeposits on a PaymentIntent object.

", - "operationId": "PostPaymentIntentsIntentVerifyMicrodeposits", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "amounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amounts": { - "description": "Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account.", - "items": { - "type": "integer" - }, - "type": "array" - }, - "client_secret": { - "description": "The client secret of the PaymentIntent.", - "maxLength": 5000, - "type": "string" - }, - "descriptor_code": { - "description": "A six-character code starting with SM present in the microdeposit sent to the bank account.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_links": { - "get": { - "description": "

Returns a list of your payment links.

", - "operationId": "GetPaymentLinks", - "parameters": [ - { - "description": "Only return payment links that are active or inactive (e.g., pass `false` to list all inactive payment links).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_link" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/payment_links", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentLinksResourcePaymentLinkList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a payment link.

", - "operationId": "PostPaymentLinks", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "after_completion": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "consent_collection": { - "explode": true, - "style": "deepObject" - }, - "custom_fields": { - "explode": true, - "style": "deepObject" - }, - "custom_text": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_creation": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_intent_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "phone_number_collection": { - "explode": true, - "style": "deepObject" - }, - "restrictions": { - "explode": true, - "style": "deepObject" - }, - "shipping_address_collection": { - "explode": true, - "style": "deepObject" - }, - "shipping_options": { - "explode": true, - "style": "deepObject" - }, - "subscription_data": { - "explode": true, - "style": "deepObject" - }, - "tax_id_collection": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "after_completion": { - "description": "Behavior after the purchase is complete.", - "properties": { - "hosted_confirmation": { - "properties": { - "custom_message": { - "maxLength": 500, - "type": "string" - } - }, - "title": "after_completion_confirmation_page_params", - "type": "object" - }, - "redirect": { - "properties": { - "url": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "url" - ], - "title": "after_completion_redirect_params", - "type": "object" - }, - "type": { - "enum": [ - "hosted_confirmation", - "redirect" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "after_completion_params", - "type": "object" - }, - "allow_promotion_codes": { - "description": "Enables user redeemable promotion codes.", - "type": "boolean" - }, - "application_fee_amount": { - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. Can only be applied when there are no line items with recurring prices.", - "type": "integer" - }, - "application_fee_percent": { - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field.", - "type": "number" - }, - "automatic_tax": { - "description": "Configuration for automatic tax collection.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_params", - "type": "object" - }, - "billing_address_collection": { - "description": "Configuration for collecting the customer's billing address. Defaults to `auto`.", - "enum": [ - "auto", - "required" - ], - "type": "string" - }, - "consent_collection": { - "description": "Configure fields to gather active consent from customers.", - "properties": { - "payment_method_reuse_agreement": { - "properties": { - "position": { - "enum": [ - "auto", - "hidden" - ], - "type": "string" - } - }, - "required": [ - "position" - ], - "title": "payment_method_reuse_agreement_params", - "type": "object" - }, - "promotions": { - "enum": [ - "auto", - "none" - ], - "type": "string" - }, - "terms_of_service": { - "enum": [ - "none", - "required" - ], - "type": "string" - } - }, - "title": "consent_collection_params", - "type": "object" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies) and supported by each line item's price.", - "type": "string" - }, - "custom_fields": { - "description": "Collect additional information from your customer using custom fields. Up to 3 fields are supported.", - "items": { - "properties": { - "dropdown": { - "properties": { - "options": { - "items": { - "properties": { - "label": { - "maxLength": 100, - "type": "string" - }, - "value": { - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "title": "custom_field_option_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "options" - ], - "title": "custom_field_dropdown_param", - "type": "object" - }, - "key": { - "maxLength": 200, - "type": "string" - }, - "label": { - "properties": { - "custom": { - "maxLength": 50, - "type": "string" - }, - "type": { - "enum": [ - "custom" - ], - "type": "string" - } - }, - "required": [ - "custom", - "type" - ], - "title": "custom_field_label_param", - "type": "object" - }, - "numeric": { - "properties": { - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_numeric_param", - "type": "object" - }, - "optional": { - "type": "boolean" - }, - "text": { - "properties": { - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_text_param", - "type": "object" - }, - "type": { - "enum": [ - "dropdown", - "numeric", - "text" - ], - "type": "string" - } - }, - "required": [ - "key", - "label", - "type" - ], - "title": "custom_field_param", - "type": "object" - }, - "type": "array" - }, - "custom_text": { - "description": "Display additional text for your customers using custom text.", - "properties": { - "after_submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping_address": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "terms_of_service_acceptance": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "custom_text_param", - "type": "object" - }, - "customer_creation": { - "description": "Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers).", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "inactive_message": { - "description": "The custom message to be displayed to a customer when a payment link is no longer active.", - "maxLength": 500, - "type": "string" - }, - "invoice_creation": { - "description": "Generate a post-purchase Invoice for one-time payments.", - "properties": { - "enabled": { - "type": "boolean" - }, - "invoice_data": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "maxLength": 1500, - "type": "string" - }, - "footer": { - "maxLength": 5000, - "type": "string" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "rendering_options": { - "anyOf": [ - { - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - } - }, - "title": "rendering_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "invoice_settings_params", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_creation_create_params", - "type": "object" - }, - "line_items": { - "description": "The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported.", - "items": { - "properties": { - "adjustable_quantity": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "adjustable_quantity_params", - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - } - }, - "required": [ - "price", - "quantity" - ], - "title": "line_items_create_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link.", - "type": "object" - }, - "on_behalf_of": { - "description": "The account on behalf of which to charge.", - "type": "string" - }, - "payment_intent_data": { - "description": "A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode.", - "properties": { - "capture_method": { - "enum": [ - "automatic", - "automatic_async", - "manual" - ], - "type": "string" - }, - "description": { - "maxLength": 1000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "setup_future_usage": { - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "statement_descriptor_suffix": { - "maxLength": 22, - "type": "string" - }, - "transfer_group": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_intent_data_params", - "type": "object" - }, - "payment_method_collection": { - "description": "Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount.\n\nCan only be set in `subscription` mode. Defaults to `always`.\n\nIf you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials).", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "payment_method_types": { - "description": "The list of payment method types that customers can use. If no value is passed, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods) (20+ payment methods [supported](https://stripe.com/docs/payments/payment-methods/integration-options#payment-method-product-support)).", - "items": { - "enum": [ - "affirm", - "afterpay_clearpay", - "alipay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "phone_number_collection": { - "description": "Controls phone number collection settings during checkout.\n\nWe recommend that you review your privacy policy and check with your legal contacts.", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "phone_number_collection_params", - "type": "object" - }, - "restrictions": { - "description": "Settings that restrict the usage of a payment link.", - "properties": { - "completed_sessions": { - "properties": { - "limit": { - "type": "integer" - } - }, - "required": [ - "limit" - ], - "title": "completed_sessions_params", - "type": "object" - } - }, - "required": [ - "completed_sessions" - ], - "title": "restrictions_params", - "type": "object" - }, - "shipping_address_collection": { - "description": "Configuration for collecting the customer's shipping address.", - "properties": { - "allowed_countries": { - "items": { - "enum": [ - "AC", - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CV", - "CW", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MK", - "ML", - "MM", - "MN", - "MO", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SZ", - "TA", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - "ZZ" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "allowed_countries" - ], - "title": "shipping_address_collection_params", - "type": "object" - }, - "shipping_options": { - "description": "The shipping rate options to apply to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link.", - "items": { - "properties": { - "shipping_rate": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "shipping_option_params", - "type": "object" - }, - "type": "array" - }, - "submit_type": { - "description": "Describes the type of transaction being performed in order to customize relevant text on the page, such as the submit button. Changing this value will also affect the hostname in the [url](https://stripe.com/docs/api/payment_links/payment_links/object#url) property (example: `donate.stripe.com`).", - "enum": [ - "auto", - "book", - "donate", - "pay" - ], - "type": "string" - }, - "subscription_data": { - "description": "When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`.", - "properties": { - "description": { - "maxLength": 500, - "type": "string" - }, - "invoice_settings": { - "properties": { - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "subscription_data_invoice_settings_params", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "trial_period_days": { - "type": "integer" - }, - "trial_settings": { - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "title": "subscription_data_params", - "type": "object" - }, - "tax_id_collection": { - "description": "Controls tax ID collection during checkout.", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "tax_id_collection_params", - "type": "object" - }, - "transfer_data": { - "description": "The account (if any) the payments will be attributed to for tax reporting, and where funds from each payment will be transferred to.", - "properties": { - "amount": { - "type": "integer" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_params", - "type": "object" - } - }, - "required": [ - "line_items" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_links/{payment_link}": { - "get": { - "description": "

Retrieve a payment link.

", - "operationId": "GetPaymentLinksPaymentLink", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "payment_link", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a payment link.

", - "operationId": "PostPaymentLinksPaymentLink", - "parameters": [ - { - "in": "path", - "name": "payment_link", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "after_completion": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "custom_fields": { - "explode": true, - "style": "deepObject" - }, - "custom_text": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "inactive_message": { - "explode": true, - "style": "deepObject" - }, - "invoice_creation": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_intent_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "restrictions": { - "explode": true, - "style": "deepObject" - }, - "shipping_address_collection": { - "explode": true, - "style": "deepObject" - }, - "subscription_data": { - "explode": true, - "style": "deepObject" - }, - "tax_id_collection": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the payment link's `url` is active. If `false`, customers visiting the URL will be shown a page saying that the link has been deactivated.", - "type": "boolean" - }, - "after_completion": { - "description": "Behavior after the purchase is complete.", - "properties": { - "hosted_confirmation": { - "properties": { - "custom_message": { - "maxLength": 500, - "type": "string" - } - }, - "title": "after_completion_confirmation_page_params", - "type": "object" - }, - "redirect": { - "properties": { - "url": { - "maxLength": 2048, - "type": "string" - } - }, - "required": [ - "url" - ], - "title": "after_completion_redirect_params", - "type": "object" - }, - "type": { - "enum": [ - "hosted_confirmation", - "redirect" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "after_completion_params", - "type": "object" - }, - "allow_promotion_codes": { - "description": "Enables user redeemable promotion codes.", - "type": "boolean" - }, - "automatic_tax": { - "description": "Configuration for automatic tax collection.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_params", - "type": "object" - }, - "billing_address_collection": { - "description": "Configuration for collecting the customer's billing address. Defaults to `auto`.", - "enum": [ - "auto", - "required" - ], - "type": "string" - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "dropdown": { - "properties": { - "options": { - "items": { - "properties": { - "label": { - "maxLength": 100, - "type": "string" - }, - "value": { - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "label", - "value" - ], - "title": "custom_field_option_param", - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "options" - ], - "title": "custom_field_dropdown_param", - "type": "object" - }, - "key": { - "maxLength": 200, - "type": "string" - }, - "label": { - "properties": { - "custom": { - "maxLength": 50, - "type": "string" - }, - "type": { - "enum": [ - "custom" - ], - "type": "string" - } - }, - "required": [ - "custom", - "type" - ], - "title": "custom_field_label_param", - "type": "object" - }, - "numeric": { - "properties": { - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_numeric_param", - "type": "object" - }, - "optional": { - "type": "boolean" - }, - "text": { - "properties": { - "maximum_length": { - "type": "integer" - }, - "minimum_length": { - "type": "integer" - } - }, - "title": "custom_field_text_param", - "type": "object" - }, - "type": { - "enum": [ - "dropdown", - "numeric", - "text" - ], - "type": "string" - } - }, - "required": [ - "key", - "label", - "type" - ], - "title": "custom_field_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Collect additional information from your customer using custom fields. Up to 3 fields are supported." - }, - "custom_text": { - "description": "Display additional text for your customers using custom text.", - "properties": { - "after_submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "shipping_address": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "submit": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "terms_of_service_acceptance": { - "anyOf": [ - { - "properties": { - "message": { - "maxLength": 1200, - "type": "string" - } - }, - "required": [ - "message" - ], - "title": "custom_text_position_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "custom_text_param", - "type": "object" - }, - "customer_creation": { - "description": "Configures whether [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link create a [Customer](https://stripe.com/docs/api/customers).", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "inactive_message": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The custom message to be displayed to a customer when a payment link is no longer active." - }, - "invoice_creation": { - "description": "Generate a post-purchase Invoice for one-time payments.", - "properties": { - "enabled": { - "type": "boolean" - }, - "invoice_data": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "custom_fields": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 40, - "type": "string" - }, - "value": { - "maxLength": 140, - "type": "string" - } - }, - "required": [ - "name", - "value" - ], - "title": "custom_field_params", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "maxLength": 1500, - "type": "string" - }, - "footer": { - "maxLength": 5000, - "type": "string" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "rendering_options": { - "anyOf": [ - { - "properties": { - "amount_tax_display": { - "enum": [ - "", - "exclude_tax", - "include_inclusive_tax" - ], - "type": "string" - } - }, - "title": "rendering_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "invoice_settings_params", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "invoice_creation_update_params", - "type": "object" - }, - "line_items": { - "description": "The line items representing what is being sold. Each line item represents an item being sold. Up to 20 line items are supported.", - "items": { - "properties": { - "adjustable_quantity": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "adjustable_quantity_params", - "type": "object" - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - } - }, - "required": [ - "id" - ], - "title": "line_items_update_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. Metadata associated with this Payment Link will automatically be copied to [checkout sessions](https://stripe.com/docs/api/checkout/sessions) created by this payment link.", - "type": "object" - }, - "payment_intent_data": { - "description": "A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in `payment` mode.", - "properties": { - "description": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "statement_descriptor_suffix": { - "anyOf": [ - { - "maxLength": 22, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "transfer_group": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_intent_data_update_params", - "type": "object" - }, - "payment_method_collection": { - "description": "Specify whether Checkout should collect a payment method. When set to `if_required`, Checkout will not collect a payment method when the total due for the session is 0.This may occur if the Checkout Session includes a free trial or a discount.\n\nCan only be set in `subscription` mode. Defaults to `always`.\n\nIf you'd like information on how to collect a payment method outside of Checkout, read the guide on [configuring subscriptions with a free trial](https://stripe.com/docs/payments/checkout/free-trials).", - "enum": [ - "always", - "if_required" - ], - "type": "string" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "affirm", - "afterpay_clearpay", - "alipay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The list of payment method types that customers can use. Pass an empty string to enable dynamic payment methods that use your [payment method settings](https://dashboard.stripe.com/settings/payment_methods)." - }, - "restrictions": { - "anyOf": [ - { - "properties": { - "completed_sessions": { - "properties": { - "limit": { - "type": "integer" - } - }, - "required": [ - "limit" - ], - "title": "completed_sessions_params", - "type": "object" - } - }, - "required": [ - "completed_sessions" - ], - "title": "restrictions_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Settings that restrict the usage of a payment link." - }, - "shipping_address_collection": { - "anyOf": [ - { - "properties": { - "allowed_countries": { - "items": { - "enum": [ - "AC", - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CV", - "CW", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MK", - "ML", - "MM", - "MN", - "MO", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SZ", - "TA", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - "ZZ" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "allowed_countries" - ], - "title": "shipping_address_collection_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Configuration for collecting the customer's shipping address." - }, - "subscription_data": { - "description": "When creating a subscription, the specified configuration data will be used. There must be at least one line item with a recurring price to use `subscription_data`.", - "properties": { - "invoice_settings": { - "properties": { - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "subscription_data_invoice_settings_params", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "trial_settings": { - "anyOf": [ - { - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_data_update_params", - "type": "object" - }, - "tax_id_collection": { - "description": "Controls tax ID collection during checkout.", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "tax_id_collection_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_link" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_links/{payment_link}/line_items": { - "get": { - "description": "

When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "operationId": "GetPaymentLinksPaymentLinkLineItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "payment_link", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentLinksResourceListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_method_configurations": { - "get": { - "description": "

List payment method configurations

", - "operationId": "GetPaymentMethodConfigurations", - "parameters": [ - { - "description": "The Connect application to filter by.", - "explode": true, - "in": "query", - "name": "application", - "required": false, - "schema": { - "anyOf": [ - { - "maxLength": 100, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_method_configuration" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/payment_method_configurations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentMethodConfigResourcePaymentMethodConfigurationsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a payment method configuration

", - "operationId": "PostPaymentMethodConfigurations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "acss_debit": { - "explode": true, - "style": "deepObject" - }, - "affirm": { - "explode": true, - "style": "deepObject" - }, - "afterpay_clearpay": { - "explode": true, - "style": "deepObject" - }, - "alipay": { - "explode": true, - "style": "deepObject" - }, - "amazon_pay": { - "explode": true, - "style": "deepObject" - }, - "apple_pay": { - "explode": true, - "style": "deepObject" - }, - "apple_pay_later": { - "explode": true, - "style": "deepObject" - }, - "au_becs_debit": { - "explode": true, - "style": "deepObject" - }, - "bacs_debit": { - "explode": true, - "style": "deepObject" - }, - "bancontact": { - "explode": true, - "style": "deepObject" - }, - "blik": { - "explode": true, - "style": "deepObject" - }, - "boleto": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "cartes_bancaires": { - "explode": true, - "style": "deepObject" - }, - "cashapp": { - "explode": true, - "style": "deepObject" - }, - "customer_balance": { - "explode": true, - "style": "deepObject" - }, - "eps": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "fpx": { - "explode": true, - "style": "deepObject" - }, - "giropay": { - "explode": true, - "style": "deepObject" - }, - "google_pay": { - "explode": true, - "style": "deepObject" - }, - "grabpay": { - "explode": true, - "style": "deepObject" - }, - "ideal": { - "explode": true, - "style": "deepObject" - }, - "jcb": { - "explode": true, - "style": "deepObject" - }, - "klarna": { - "explode": true, - "style": "deepObject" - }, - "konbini": { - "explode": true, - "style": "deepObject" - }, - "link": { - "explode": true, - "style": "deepObject" - }, - "mobilepay": { - "explode": true, - "style": "deepObject" - }, - "multibanco": { - "explode": true, - "style": "deepObject" - }, - "oxxo": { - "explode": true, - "style": "deepObject" - }, - "p24": { - "explode": true, - "style": "deepObject" - }, - "paynow": { - "explode": true, - "style": "deepObject" - }, - "paypal": { - "explode": true, - "style": "deepObject" - }, - "promptpay": { - "explode": true, - "style": "deepObject" - }, - "revolut_pay": { - "explode": true, - "style": "deepObject" - }, - "sepa_debit": { - "explode": true, - "style": "deepObject" - }, - "sofort": { - "explode": true, - "style": "deepObject" - }, - "swish": { - "explode": true, - "style": "deepObject" - }, - "twint": { - "explode": true, - "style": "deepObject" - }, - "us_bank_account": { - "explode": true, - "style": "deepObject" - }, - "wechat_pay": { - "explode": true, - "style": "deepObject" - }, - "zip": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "acss_debit": { - "description": "Canadian pre-authorized debit payments, check this [page](https://stripe.com/docs/payments/acss-debit) for more details like country availability.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "description": "[Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments. Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest. Check this [page](https://stripe.com/docs/payments/affirm) for more details like country availability.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "afterpay_clearpay": { - "description": "Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://stripe.com/docs/payments/afterpay-clearpay) for more details like country availability. Afterpay is particularly popular among businesses selling fashion, beauty, and sports products.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "alipay": { - "description": "Alipay is a digital wallet in China that has more than a billion active users worldwide. Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app. Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials. Check this [page](https://stripe.com/docs/payments/alipay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "amazon_pay": { - "description": "Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "apple_pay": { - "description": "Stripe users can accept [Apple Pay](/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and the [pricing](/pricing) is the same as other card transactions. Check this [page](https://stripe.com/docs/apple-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "apple_pay_later": { - "description": "Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "au_becs_debit": { - "description": "Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account. Check this [page](https://stripe.com/docs/payments/au-becs-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "bacs_debit": { - "description": "Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://stripe.com/docs/payments/payment-methods/bacs-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "bancontact": { - "description": "Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation. [Customers](https://stripe.com/docs/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately. Check this [page](https://stripe.com/docs/payments/bancontact) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "blik": { - "description": "BLIK is a [single use](https://stripe.com/docs/payments/payment-methods#usage) payment method that requires customers to authenticate their payments. When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form. Check this [page](https://stripe.com/docs/payments/blik) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "boleto": { - "description": "Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil. Check this [page](https://stripe.com/docs/payments/boleto) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "card": { - "description": "Cards are a popular way for consumers and businesses to pay online or in person. Stripe supports global and local card networks.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "cartes_bancaires": { - "description": "Cartes Bancaires is France's local card network. More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks. Check this [page](https://stripe.com/docs/payments/cartes-bancaires) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "cashapp": { - "description": "Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet. Check this [page](https://stripe.com/docs/payments/cash-app-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "customer_balance": { - "description": "Uses a customer’s [cash balance](https://stripe.com/docs/payments/customer-balance) for the payment. The cash balance can be funded via a bank transfer. Check this [page](https://stripe.com/docs/payments/bank-transfers) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "eps": { - "description": "EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials. EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers. Check this [page](https://stripe.com/docs/payments/eps) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fpx": { - "description": "Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM. Check this [page](https://stripe.com/docs/payments/fpx) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "giropay": { - "description": "giropay is a German payment method based on online banking, introduced in 2006. It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account. Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN. giropay accounts for 10% of online checkouts in Germany. Check this [page](https://stripe.com/docs/payments/giropay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "google_pay": { - "description": "Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device. Use the Google Pay API to request any credit or debit card stored in your customer's Google account. Check this [page](https://stripe.com/docs/google-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "grabpay": { - "description": "GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/). GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with. Check this [page](https://stripe.com/docs/payments/grabpay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "ideal": { - "description": "iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials. All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%. Check this [page](https://stripe.com/docs/payments/ideal) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "jcb": { - "description": "JCB is a credit card company based in Japan. JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland. Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "klarna": { - "description": "Klarna gives customers a range of [payment options](https://stripe.com/docs/payments/klarna#payment-options) during checkout. Available payment options vary depending on the customer's billing address and the transaction amount. These payment options make it convenient for customers to purchase items in all price ranges. Check this [page](https://stripe.com/docs/payments/klarna) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "konbini": { - "description": "Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash. Check this [page](https://stripe.com/docs/payments/konbini) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "link": { - "description": "[Link](https://stripe.com/docs/payments/link) is a payment method network. With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "mobilepay": { - "description": "MobilePay is a [single-use](https://stripe.com/docs/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the MobilePay app. Check this [page](https://stripe.com/docs/payments/mobilepay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "multibanco": { - "description": "Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "name": { - "description": "Configuration name.", - "maxLength": 100, - "type": "string" - }, - "oxxo": { - "description": "OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico. OXXO allows customers to pay bills and online purchases in-store with cash. Check this [page](https://stripe.com/docs/payments/oxxo) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "p24": { - "description": "Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods. Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks. Check this [page](https://stripe.com/docs/payments/p24) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "parent": { - "description": "Configuration's parent configuration. Specify to create a child configuration.", - "maxLength": 100, - "type": "string" - }, - "paynow": { - "description": "PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions. Check this [page](https://stripe.com/docs/payments/paynow) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "paypal": { - "description": "PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account. Check this [page](https://stripe.com/docs/payments/paypal) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "promptpay": { - "description": "PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks. Check this [page](https://stripe.com/docs/payments/promptpay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "revolut_pay": { - "description": "Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method. Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "sepa_debit": { - "description": "The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries. SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://stripe.com/docs/payments/sepa-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "sofort": { - "description": "Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers. Check this [page](https://stripe.com/docs/payments/sofort) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "swish": { - "description": "Swish is a [real-time](https://stripe.com/docs/payments/real-time) payment method popular in Sweden. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app. Check this [page](https://stripe.com/docs/payments/swish) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "twint": { - "description": "Twint is a payment method popular in Switzerland. It allows customers to pay using their mobile phone. Check this [page](https://docs.stripe.com/payments/twint) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "us_bank_account": { - "description": "Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha. Check this [page](https://stripe.com/docs/payments/ach-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "description": "WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users. Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites. WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition. Check this [page](https://stripe.com/docs/payments/wechat-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "zip": { - "description": "Zip gives your customers a way to split purchases over a series of payments. Check this [page](https://stripe.com/docs/payments/zip) for more details like country availability.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_method_configurations/{configuration}": { - "get": { - "description": "

Retrieve payment method configuration

", - "operationId": "GetPaymentMethodConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Update payment method configuration

", - "operationId": "PostPaymentMethodConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "acss_debit": { - "explode": true, - "style": "deepObject" - }, - "affirm": { - "explode": true, - "style": "deepObject" - }, - "afterpay_clearpay": { - "explode": true, - "style": "deepObject" - }, - "alipay": { - "explode": true, - "style": "deepObject" - }, - "amazon_pay": { - "explode": true, - "style": "deepObject" - }, - "apple_pay": { - "explode": true, - "style": "deepObject" - }, - "apple_pay_later": { - "explode": true, - "style": "deepObject" - }, - "au_becs_debit": { - "explode": true, - "style": "deepObject" - }, - "bacs_debit": { - "explode": true, - "style": "deepObject" - }, - "bancontact": { - "explode": true, - "style": "deepObject" - }, - "blik": { - "explode": true, - "style": "deepObject" - }, - "boleto": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "cartes_bancaires": { - "explode": true, - "style": "deepObject" - }, - "cashapp": { - "explode": true, - "style": "deepObject" - }, - "customer_balance": { - "explode": true, - "style": "deepObject" - }, - "eps": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "fpx": { - "explode": true, - "style": "deepObject" - }, - "giropay": { - "explode": true, - "style": "deepObject" - }, - "google_pay": { - "explode": true, - "style": "deepObject" - }, - "grabpay": { - "explode": true, - "style": "deepObject" - }, - "ideal": { - "explode": true, - "style": "deepObject" - }, - "jcb": { - "explode": true, - "style": "deepObject" - }, - "klarna": { - "explode": true, - "style": "deepObject" - }, - "konbini": { - "explode": true, - "style": "deepObject" - }, - "link": { - "explode": true, - "style": "deepObject" - }, - "mobilepay": { - "explode": true, - "style": "deepObject" - }, - "multibanco": { - "explode": true, - "style": "deepObject" - }, - "oxxo": { - "explode": true, - "style": "deepObject" - }, - "p24": { - "explode": true, - "style": "deepObject" - }, - "paynow": { - "explode": true, - "style": "deepObject" - }, - "paypal": { - "explode": true, - "style": "deepObject" - }, - "promptpay": { - "explode": true, - "style": "deepObject" - }, - "revolut_pay": { - "explode": true, - "style": "deepObject" - }, - "sepa_debit": { - "explode": true, - "style": "deepObject" - }, - "sofort": { - "explode": true, - "style": "deepObject" - }, - "swish": { - "explode": true, - "style": "deepObject" - }, - "twint": { - "explode": true, - "style": "deepObject" - }, - "us_bank_account": { - "explode": true, - "style": "deepObject" - }, - "wechat_pay": { - "explode": true, - "style": "deepObject" - }, - "zip": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "acss_debit": { - "description": "Canadian pre-authorized debit payments, check this [page](https://stripe.com/docs/payments/acss-debit) for more details like country availability.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "active": { - "description": "Whether the configuration can be used for new payments.", - "type": "boolean" - }, - "affirm": { - "description": "[Affirm](https://www.affirm.com/) gives your customers a way to split purchases over a series of payments. Depending on the purchase, they can pay with four interest-free payments (Split Pay) or pay over a longer term (Installments), which might include interest. Check this [page](https://stripe.com/docs/payments/affirm) for more details like country availability.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "afterpay_clearpay": { - "description": "Afterpay gives your customers a way to pay for purchases in installments, check this [page](https://stripe.com/docs/payments/afterpay-clearpay) for more details like country availability. Afterpay is particularly popular among businesses selling fashion, beauty, and sports products.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "alipay": { - "description": "Alipay is a digital wallet in China that has more than a billion active users worldwide. Alipay users can pay on the web or on a mobile device using login credentials or their Alipay app. Alipay has a low dispute rate and reduces fraud by authenticating payments using the customer's login credentials. Check this [page](https://stripe.com/docs/payments/alipay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "amazon_pay": { - "description": "Amazon Pay is a wallet payment method that lets your customers check out the same way as on Amazon.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "apple_pay": { - "description": "Stripe users can accept [Apple Pay](/payments/apple-pay) in iOS applications in iOS 9 and later, and on the web in Safari starting with iOS 10 or macOS Sierra. There are no additional fees to process Apple Pay payments, and the [pricing](/pricing) is the same as other card transactions. Check this [page](https://stripe.com/docs/apple-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "apple_pay_later": { - "description": "Apple Pay Later, a payment method for customers to buy now and pay later, gives your customers a way to split purchases into four installments across six weeks.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "au_becs_debit": { - "description": "Stripe users in Australia can accept Bulk Electronic Clearing System (BECS) direct debit payments from customers with an Australian bank account. Check this [page](https://stripe.com/docs/payments/au-becs-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "bacs_debit": { - "description": "Stripe users in the UK can accept Bacs Direct Debit payments from customers with a UK bank account, check this [page](https://stripe.com/docs/payments/payment-methods/bacs-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "bancontact": { - "description": "Bancontact is the most popular online payment method in Belgium, with over 15 million cards in circulation. [Customers](https://stripe.com/docs/api/customers) use a Bancontact card or mobile app linked to a Belgian bank account to make online payments that are secure, guaranteed, and confirmed immediately. Check this [page](https://stripe.com/docs/payments/bancontact) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "blik": { - "description": "BLIK is a [single use](https://stripe.com/docs/payments/payment-methods#usage) payment method that requires customers to authenticate their payments. When customers want to pay online using BLIK, they request a six-digit code from their banking application and enter it into the payment collection form. Check this [page](https://stripe.com/docs/payments/blik) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "boleto": { - "description": "Boleto is an official (regulated by the Central Bank of Brazil) payment method in Brazil. Check this [page](https://stripe.com/docs/payments/boleto) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "card": { - "description": "Cards are a popular way for consumers and businesses to pay online or in person. Stripe supports global and local card networks.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "cartes_bancaires": { - "description": "Cartes Bancaires is France's local card network. More than 95% of these cards are co-branded with either Visa or Mastercard, meaning you can process these cards over either Cartes Bancaires or the Visa or Mastercard networks. Check this [page](https://stripe.com/docs/payments/cartes-bancaires) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "cashapp": { - "description": "Cash App is a popular consumer app in the US that allows customers to bank, invest, send, and receive money using their digital wallet. Check this [page](https://stripe.com/docs/payments/cash-app-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "customer_balance": { - "description": "Uses a customer’s [cash balance](https://stripe.com/docs/payments/customer-balance) for the payment. The cash balance can be funded via a bank transfer. Check this [page](https://stripe.com/docs/payments/bank-transfers) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "eps": { - "description": "EPS is an Austria-based payment method that allows customers to complete transactions online using their bank credentials. EPS is supported by all Austrian banks and is accepted by over 80% of Austrian online retailers. Check this [page](https://stripe.com/docs/payments/eps) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fpx": { - "description": "Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and eleven other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It is one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM. Check this [page](https://stripe.com/docs/payments/fpx) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "giropay": { - "description": "giropay is a German payment method based on online banking, introduced in 2006. It allows customers to complete transactions online using their online banking environment, with funds debited from their bank account. Depending on their bank, customers confirm payments on giropay using a second factor of authentication or a PIN. giropay accounts for 10% of online checkouts in Germany. Check this [page](https://stripe.com/docs/payments/giropay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "google_pay": { - "description": "Google Pay allows customers to make payments in your app or website using any credit or debit card saved to their Google Account, including those from Google Play, YouTube, Chrome, or an Android device. Use the Google Pay API to request any credit or debit card stored in your customer's Google account. Check this [page](https://stripe.com/docs/google-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "grabpay": { - "description": "GrabPay is a payment method developed by [Grab](https://www.grab.com/sg/consumer/finance/pay/). GrabPay is a digital wallet - customers maintain a balance in their wallets that they pay out with. Check this [page](https://stripe.com/docs/payments/grabpay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "ideal": { - "description": "iDEAL is a Netherlands-based payment method that allows customers to complete transactions online using their bank credentials. All major Dutch banks are members of Currence, the scheme that operates iDEAL, making it the most popular online payment method in the Netherlands with a share of online transactions close to 55%. Check this [page](https://stripe.com/docs/payments/ideal) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "jcb": { - "description": "JCB is a credit card company based in Japan. JCB is currently available in Japan to businesses approved by JCB, and available to all businesses in Australia, Canada, Hong Kong, Japan, New Zealand, Singapore, Switzerland, United Kingdom, United States, and all countries in the European Economic Area except Iceland. Check this [page](https://support.stripe.com/questions/accepting-japan-credit-bureau-%28jcb%29-payments) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "klarna": { - "description": "Klarna gives customers a range of [payment options](https://stripe.com/docs/payments/klarna#payment-options) during checkout. Available payment options vary depending on the customer's billing address and the transaction amount. These payment options make it convenient for customers to purchase items in all price ranges. Check this [page](https://stripe.com/docs/payments/klarna) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "konbini": { - "description": "Konbini allows customers in Japan to pay for bills and online purchases at convenience stores with cash. Check this [page](https://stripe.com/docs/payments/konbini) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "link": { - "description": "[Link](https://stripe.com/docs/payments/link) is a payment method network. With Link, users save their payment details once, then reuse that information to pay with one click for any business on the network.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "mobilepay": { - "description": "MobilePay is a [single-use](https://stripe.com/docs/payments/payment-methods#usage) card wallet payment method used in Denmark and Finland. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the MobilePay app. Check this [page](https://stripe.com/docs/payments/mobilepay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "multibanco": { - "description": "Stripe users in Europe and the United States can accept Multibanco payments from customers in Portugal using [Sources](https://stripe.com/docs/sources)—a single integration path for creating payments using any supported method.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "name": { - "description": "Configuration name.", - "maxLength": 100, - "type": "string" - }, - "oxxo": { - "description": "OXXO is a Mexican chain of convenience stores with thousands of locations across Latin America and represents nearly 20% of online transactions in Mexico. OXXO allows customers to pay bills and online purchases in-store with cash. Check this [page](https://stripe.com/docs/payments/oxxo) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "p24": { - "description": "Przelewy24 is a Poland-based payment method aggregator that allows customers to complete transactions online using bank transfers and other methods. Bank transfers account for 30% of online payments in Poland and Przelewy24 provides a way for customers to pay with over 165 banks. Check this [page](https://stripe.com/docs/payments/p24) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "paynow": { - "description": "PayNow is a Singapore-based payment method that allows customers to make a payment using their preferred app from participating banks and participating non-bank financial institutions. Check this [page](https://stripe.com/docs/payments/paynow) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "paypal": { - "description": "PayPal, a digital wallet popular with customers in Europe, allows your customers worldwide to pay using their PayPal account. Check this [page](https://stripe.com/docs/payments/paypal) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "promptpay": { - "description": "PromptPay is a Thailand-based payment method that allows customers to make a payment using their preferred app from participating banks. Check this [page](https://stripe.com/docs/payments/promptpay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "revolut_pay": { - "description": "Revolut Pay, developed by Revolut, a global finance app, is a digital wallet payment method. Revolut Pay uses the customer’s stored balance or cards to fund the payment, and offers the option for non-Revolut customers to save their details after their first purchase.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "sepa_debit": { - "description": "The [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) is an initiative of the European Union to simplify payments within and across member countries. SEPA established and enforced banking standards to allow for the direct debiting of every EUR-denominated bank account within the SEPA region, check this [page](https://stripe.com/docs/payments/sepa-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "sofort": { - "description": "Stripe users in Europe and the United States can use the [Payment Intents API](https://stripe.com/docs/payments/payment-intents)—a single integration path for creating payments using any supported method—to accept [Sofort](https://www.sofort.com/) payments from customers. Check this [page](https://stripe.com/docs/payments/sofort) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "swish": { - "description": "Swish is a [real-time](https://stripe.com/docs/payments/real-time) payment method popular in Sweden. It allows customers to [authenticate and approve](https://stripe.com/docs/payments/payment-methods#customer-actions) payments using the Swish mobile app and the Swedish BankID mobile app. Check this [page](https://stripe.com/docs/payments/swish) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "twint": { - "description": "Twint is a payment method popular in Switzerland. It allows customers to pay using their mobile phone. Check this [page](https://docs.stripe.com/payments/twint) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "us_bank_account": { - "description": "Stripe users in the United States can accept ACH direct debit payments from customers with a US bank account using the Automated Clearing House (ACH) payments system operated by Nacha. Check this [page](https://stripe.com/docs/payments/ach-debit) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "description": "WeChat, owned by Tencent, is China's leading mobile app with over 1 billion monthly active users. Chinese consumers can use WeChat Pay to pay for goods and services inside of businesses' apps and websites. WeChat Pay users buy most frequently in gaming, e-commerce, travel, online education, and food/nutrition. Check this [page](https://stripe.com/docs/payments/wechat-pay) for more details.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "zip": { - "description": "Zip gives your customers a way to split purchases over a series of payments. Check this [page](https://stripe.com/docs/payments/zip) for more details like country availability.", - "properties": { - "display_preference": { - "properties": { - "preference": { - "enum": [ - "none", - "off", - "on" - ], - "type": "string" - } - }, - "title": "display_preference_param", - "type": "object" - } - }, - "title": "payment_method_param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_method_domains": { - "get": { - "description": "

Lists the details of existing payment method domains.

", - "operationId": "GetPaymentMethodDomains", - "parameters": [ - { - "description": "The domain name that this payment method domain object represents.", - "in": "query", - "name": "domain_name", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Whether this payment method domain is enabled. If the domain is not enabled, payment methods will not appear in Elements", - "in": "query", - "name": "enabled", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_method_domain" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/payment_method_domains", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentMethodDomainResourcePaymentMethodDomainList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a payment method domain.

", - "operationId": "PostPaymentMethodDomains", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "domain_name": { - "description": "The domain name that this payment method domain object represents.", - "maxLength": 5000, - "type": "string" - }, - "enabled": { - "description": "Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "domain_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_method_domains/{payment_method_domain}": { - "get": { - "description": "

Retrieves the details of an existing payment method domain.

", - "operationId": "GetPaymentMethodDomainsPaymentMethodDomain", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "payment_method_domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing payment method domain.

", - "operationId": "PostPaymentMethodDomainsPaymentMethodDomain", - "parameters": [ - { - "in": "path", - "name": "payment_method_domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "enabled": { - "description": "Whether this payment method domain is enabled. If the domain is not enabled, payment methods that require a payment method domain will not appear in Elements.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_method_domains/{payment_method_domain}/validate": { - "post": { - "description": "

Some payment methods such as Apple Pay require additional steps to verify a domain. If the requirements weren’t satisfied when the domain was created, the payment method will be inactive on the domain.\nThe payment method doesn’t appear in Elements for this domain until it is active.

\n\n

To activate a payment method on an existing payment method domain, complete the required validation steps specific to the payment method, and then validate the payment method domain with this endpoint.

\n\n

Related guides: Payment method domains.

", - "operationId": "PostPaymentMethodDomainsPaymentMethodDomainValidate", - "parameters": [ - { - "in": "path", - "name": "payment_method_domain", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method_domain" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_methods": { - "get": { - "description": "

Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the List a Customer’s PaymentMethods API instead.

", - "operationId": "GetPaymentMethods", - "parameters": [ - { - "description": "The ID of the customer whose PaymentMethods will be retrieved.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payment_method" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/payment_methods", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentFlowsPaymentMethodList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a PaymentMethod object. Read the Stripe.js reference to learn how to create PaymentMethods via Stripe.js.

\n\n

Instead of creating a PaymentMethod directly, we recommend using the PaymentIntents API to accept a payment immediately or the SetupIntent API to collect payment method details ahead of a future payment.

", - "operationId": "PostPaymentMethods", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "acss_debit": { - "explode": true, - "style": "deepObject" - }, - "affirm": { - "explode": true, - "style": "deepObject" - }, - "afterpay_clearpay": { - "explode": true, - "style": "deepObject" - }, - "alipay": { - "explode": true, - "style": "deepObject" - }, - "amazon_pay": { - "explode": true, - "style": "deepObject" - }, - "au_becs_debit": { - "explode": true, - "style": "deepObject" - }, - "bacs_debit": { - "explode": true, - "style": "deepObject" - }, - "bancontact": { - "explode": true, - "style": "deepObject" - }, - "billing_details": { - "explode": true, - "style": "deepObject" - }, - "blik": { - "explode": true, - "style": "deepObject" - }, - "boleto": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "cashapp": { - "explode": true, - "style": "deepObject" - }, - "customer_balance": { - "explode": true, - "style": "deepObject" - }, - "eps": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "fpx": { - "explode": true, - "style": "deepObject" - }, - "giropay": { - "explode": true, - "style": "deepObject" - }, - "grabpay": { - "explode": true, - "style": "deepObject" - }, - "ideal": { - "explode": true, - "style": "deepObject" - }, - "interac_present": { - "explode": true, - "style": "deepObject" - }, - "klarna": { - "explode": true, - "style": "deepObject" - }, - "konbini": { - "explode": true, - "style": "deepObject" - }, - "link": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "mobilepay": { - "explode": true, - "style": "deepObject" - }, - "multibanco": { - "explode": true, - "style": "deepObject" - }, - "oxxo": { - "explode": true, - "style": "deepObject" - }, - "p24": { - "explode": true, - "style": "deepObject" - }, - "paynow": { - "explode": true, - "style": "deepObject" - }, - "paypal": { - "explode": true, - "style": "deepObject" - }, - "pix": { - "explode": true, - "style": "deepObject" - }, - "promptpay": { - "explode": true, - "style": "deepObject" - }, - "radar_options": { - "explode": true, - "style": "deepObject" - }, - "revolut_pay": { - "explode": true, - "style": "deepObject" - }, - "sepa_debit": { - "explode": true, - "style": "deepObject" - }, - "sofort": { - "explode": true, - "style": "deepObject" - }, - "swish": { - "explode": true, - "style": "deepObject" - }, - "twint": { - "explode": true, - "style": "deepObject" - }, - "us_bank_account": { - "explode": true, - "style": "deepObject" - }, - "wechat_pay": { - "explode": true, - "style": "deepObject" - }, - "zip": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "acss_debit": { - "description": "If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.", - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "description": "If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "description": "If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "description": "If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "description": "This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.", - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "description": "If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "description": "If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.", - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "description": "If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.", - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "description": "If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "description": "Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.", - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "description": "If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "description": "If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.", - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "card": { - "anyOf": [ - { - "properties": { - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "networks": { - "properties": { - "preferred": { - "enum": [ - "cartes_bancaires", - "mastercard", - "visa" - ], - "type": "string" - } - }, - "title": "networks_params", - "type": "object" - }, - "number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "card_details_params", - "type": "object" - }, - { - "properties": { - "token": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "token" - ], - "title": "token_params", - "type": "object" - } - ], - "description": "If this is a `card` PaymentMethod, this hash contains the user's card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format `card: {token: \"tok_visa\"}`. When providing a card number, you must meet the requirements for [PCI compliance](https://stripe.com/docs/security#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly.", - "x-stripeBypassValidation": true - }, - "cashapp": { - "description": "If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "customer": { - "description": "The `Customer` to whom the original PaymentMethod is attached.", - "maxLength": 5000, - "type": "string" - }, - "customer_balance": { - "description": "If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "description": "If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.", - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fpx": { - "description": "If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.", - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "description": "If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "description": "If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "description": "If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.", - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "description": "If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "description": "If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.", - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "description": "If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "description": "If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "mobilepay": { - "description": "If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "description": "If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "description": "If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "description": "If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.", - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "payment_method": { - "description": "The PaymentMethod to share.", - "maxLength": 5000, - "type": "string" - }, - "paynow": { - "description": "If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "description": "If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "description": "If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "description": "If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "description": "Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.", - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "description": "If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "description": "If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.", - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "description": "If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.", - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "description": "If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "description": "If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "description": "The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.", - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "description": "If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.", - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "description": "If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "description": "If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.", - "properties": {}, - "title": "param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_methods/{payment_method}": { - "get": { - "description": "

Retrieves a PaymentMethod object attached to the StripeAccount. To retrieve a payment method attached to a Customer, you should use Retrieve a Customer’s PaymentMethods

", - "operationId": "GetPaymentMethodsPaymentMethod", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "payment_method", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a PaymentMethod object. A PaymentMethod must be attached a customer to be updated.

", - "operationId": "PostPaymentMethodsPaymentMethod", - "parameters": [ - { - "in": "path", - "name": "payment_method", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "billing_details": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "link": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "us_bank_account": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "allow_redisplay": { - "description": "This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.", - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "billing_details": { - "description": "Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.", - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "card": { - "description": "If this is a `card` PaymentMethod, this hash contains the user's card details.", - "properties": { - "exp_month": { - "type": "integer" - }, - "exp_year": { - "type": "integer" - }, - "networks": { - "properties": { - "preferred": { - "enum": [ - "", - "cartes_bancaires", - "mastercard", - "visa" - ], - "type": "string" - } - }, - "title": "networks_update_api_param", - "type": "object" - } - }, - "title": "update_api_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "link": { - "description": "If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.", - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "us_bank_account": { - "description": "If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.", - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - } - }, - "title": "update_param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_methods/{payment_method}/attach": { - "post": { - "description": "

Attaches a PaymentMethod object to a Customer.

\n\n

To attach a new PaymentMethod to a customer for future payments, we recommend you use a SetupIntent\nor a PaymentIntent with setup_future_usage.\nThese approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach\nendpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for\nfuture use, which makes later declines and payment friction more likely.\nSee Optimizing cards for future payments for more information about setting up\nfuture payments.

\n\n

To use this PaymentMethod as the default for invoice or subscription payments,\nset invoice_settings.default_payment_method,\non the Customer to the PaymentMethod’s ID.

", - "operationId": "PostPaymentMethodsPaymentMethodAttach", - "parameters": [ - { - "in": "path", - "name": "payment_method", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer": { - "description": "The ID of the customer to which to attach the PaymentMethod.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "customer" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payment_methods/{payment_method}/detach": { - "post": { - "description": "

Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer.

", - "operationId": "PostPaymentMethodsPaymentMethodDetach", - "parameters": [ - { - "in": "path", - "name": "payment_method", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payment_method" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payouts": { - "get": { - "description": "

Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.

", - "operationId": "GetPayouts", - "parameters": [ - { - "description": "Only return payouts that are expected to arrive during the given date interval.", - "explode": true, - "in": "query", - "name": "arrival_date", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return payouts that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "The ID of an external account - only return payouts sent to this external account.", - "in": "query", - "name": "destination", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return payouts that have the given status: `pending`, `paid`, `failed`, or `canceled`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/payout" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/payouts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PayoutList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

\n\n

If your API key is in test mode, money won’t actually be sent, though every other action occurs as if you’re in live mode.

\n\n

If you create a manual payout on a Stripe account that uses multiple payment source types, you need to specify the source type balance that the payout draws from. The balance object details available and pending amounts by source type.

", - "operationId": "PostPayouts", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer in cents representing how much to payout.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "destination": { - "description": "The ID of a bank account or a card to send the payout to. If you don't provide a destination, we use the default external account for the specified currency.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "method": { - "description": "The method used to send this payout, which is `standard` or `instant`. We support `instant` for payouts to debit cards and bank accounts in certain countries. Learn more about [bank support for Instant Payouts](https://stripe.com/docs/payouts/instant-payouts-banks).", - "enum": [ - "instant", - "standard" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "source_type": { - "description": "The balance type of your Stripe balance to draw this payout from. Balances for different payment sources are kept separately. You can find the amounts with the Balances API. One of `bank_account`, `card`, or `fpx`.", - "enum": [ - "bank_account", - "card", - "fpx" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "statement_descriptor": { - "description": "A string that displays on the recipient's bank or card statement (up to 22 characters). A `statement_descriptor` that's longer than 22 characters return an error. Most banks truncate this information and display it inconsistently. Some banks might not display it at all.", - "maxLength": 22, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "amount", - "currency" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payout" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payouts/{payout}": { - "get": { - "description": "

Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.

", - "operationId": "GetPayoutsPayout", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "payout", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payout" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.

", - "operationId": "PostPayoutsPayout", - "parameters": [ - { - "in": "path", - "name": "payout", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payout" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payouts/{payout}/cancel": { - "post": { - "description": "

You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.

", - "operationId": "PostPayoutsPayoutCancel", - "parameters": [ - { - "in": "path", - "name": "payout", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payout" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/payouts/{payout}/reverse": { - "post": { - "description": "

Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is manual and in the pending status, use /v1/payouts/:id/cancel instead.

\n\n

By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the authorized signatory of the selected bank account authorizes the debit on the bank account and that no other authorization is required.

", - "operationId": "PostPayoutsPayoutReverse", - "parameters": [ - { - "in": "path", - "name": "payout", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/payout" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/plans": { - "get": { - "description": "

Returns a list of your plans.

", - "operationId": "GetPlans", - "parameters": [ - { - "description": "Only return plans that are active or inactive (e.g., pass `false` to list all inactive plans).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return plans for the given product.", - "in": "query", - "name": "product", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/plan" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/plans", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PlanList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

", - "operationId": "PostPlans", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "product": { - "explode": true, - "style": "deepObject" - }, - "tiers": { - "explode": true, - "style": "deepObject" - }, - "transform_usage": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the plan is currently available for new subscriptions. Defaults to `true`.", - "type": "boolean" - }, - "aggregate_usage": { - "description": "Specifies a usage aggregation strategy for plans of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for using the last usage record reported within a period, `last_ever` for using the last usage record ever (across period bounds) or `max` which uses the usage record with the maximum reported usage during a period. Defaults to `sum`.", - "enum": [ - "last_during_period", - "last_ever", - "max", - "sum" - ], - "type": "string" - }, - "amount": { - "description": "A positive integer in cents (or local equivalent) (or 0 for a free plan) representing how much to charge on a recurring basis.", - "type": "integer" - }, - "amount_decimal": { - "description": "Same as `amount`, but accepts a decimal value with at most 12 decimal places. Only one of `amount` and `amount_decimal` can be set.", - "format": "decimal", - "type": "string" - }, - "billing_scheme": { - "description": "Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.", - "enum": [ - "per_unit", - "tiered" - ], - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "An identifier randomly generated by Stripe. Used to identify this plan when subscribing a customer. You can optionally override this ID, but the ID must be unique across all plans in your Stripe account. You can, however, use the same plan ID in both live and test modes.", - "maxLength": 5000, - "type": "string" - }, - "interval": { - "description": "Specifies billing frequency. Either `day`, `week`, `month` or `year`.", - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "description": "The number of intervals between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).", - "type": "integer" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "meter": { - "description": "The meter tracking the usage of a metered price", - "maxLength": 5000, - "type": "string" - }, - "nickname": { - "description": "A brief description of the plan, hidden from customers.", - "maxLength": 5000, - "type": "string" - }, - "product": { - "anyOf": [ - { - "description": "The product whose pricing the created plan will represent. This can either be the ID of an existing product, or a dictionary containing fields used to create a [service product](https://stripe.com/docs/api#product_object-type).", - "properties": { - "active": { - "type": "boolean" - }, - "id": { - "deprecated": true, - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - }, - "unit_label": { - "maxLength": 12, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "inline_product_params", - "type": "object" - }, - { - "description": "The ID of the product whose pricing the created plan will represent.", - "maxLength": 5000, - "type": "string" - } - ] - }, - "tiers": { - "description": "Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.", - "items": { - "properties": { - "flat_amount": { - "type": "integer" - }, - "flat_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "up_to": { - "anyOf": [ - { - "enum": [ - "inf" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - } - }, - "required": [ - "up_to" - ], - "title": "tier", - "type": "object" - }, - "type": "array" - }, - "tiers_mode": { - "description": "Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows.", - "enum": [ - "graduated", - "volume" - ], - "type": "string" - }, - "transform_usage": { - "description": "Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers`.", - "properties": { - "divide_by": { - "type": "integer" - }, - "round": { - "enum": [ - "down", - "up" - ], - "type": "string" - } - }, - "required": [ - "divide_by", - "round" - ], - "title": "transform_usage_param", - "type": "object" - }, - "trial_period_days": { - "description": "Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan).", - "type": "integer" - }, - "usage_type": { - "description": "Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`.", - "enum": [ - "licensed", - "metered" - ], - "type": "string" - } - }, - "required": [ - "currency", - "interval" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/plan" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/plans/{plan}": { - "delete": { - "description": "

Deleting plans means new subscribers can’t be added. Existing subscribers aren’t affected.

", - "operationId": "DeletePlansPlan", - "parameters": [ - { - "in": "path", - "name": "plan", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_plan" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the plan with the given ID.

", - "operationId": "GetPlansPlan", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "plan", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/plan" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan’s ID, amount, currency, or billing cycle.

", - "operationId": "PostPlansPlan", - "parameters": [ - { - "in": "path", - "name": "plan", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the plan is currently available for new subscriptions.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "nickname": { - "description": "A brief description of the plan, hidden from customers.", - "maxLength": 5000, - "type": "string" - }, - "product": { - "description": "The product the plan belongs to. This cannot be changed once it has been used in a subscription or subscription schedule.", - "maxLength": 5000, - "type": "string" - }, - "trial_period_days": { - "description": "Default number of trial days when subscribing a customer to this plan using [`trial_from_plan=true`](https://stripe.com/docs/api#create_subscription-trial_from_plan).", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/plan" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/prices": { - "get": { - "description": "

Returns a list of your active prices, excluding inline prices. For the list of inactive prices, set active to false.

", - "operationId": "GetPrices", - "parameters": [ - { - "description": "Only return prices that are active or inactive (e.g., pass `false` to list all inactive prices).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return prices for the given currency.", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return the price with these lookup_keys, if any exist. You can specify up to 10 lookup_keys.", - "explode": true, - "in": "query", - "name": "lookup_keys", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return prices for the given product.", - "in": "query", - "name": "product", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return prices with these recurring fields.", - "explode": true, - "in": "query", - "name": "recurring", - "required": false, - "schema": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "meter": { - "maxLength": 5000, - "type": "string" - }, - "usage_type": { - "enum": [ - "licensed", - "metered" - ], - "type": "string" - } - }, - "title": "all_prices_recurring_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return prices of type `recurring` or `one_time`.", - "in": "query", - "name": "type", - "required": false, - "schema": { - "enum": [ - "one_time", - "recurring" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/price" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/prices", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PriceList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new price for an existing product. The price can be recurring or one-time.

", - "operationId": "PostPrices", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "currency_options": { - "explode": true, - "style": "deepObject" - }, - "custom_unit_amount": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "product_data": { - "explode": true, - "style": "deepObject" - }, - "recurring": { - "explode": true, - "style": "deepObject" - }, - "tiers": { - "explode": true, - "style": "deepObject" - }, - "transform_quantity": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the price can be used for new purchases. Defaults to `true`.", - "type": "boolean" - }, - "billing_scheme": { - "description": "Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.", - "enum": [ - "per_unit", - "tiered" - ], - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "custom_unit_amount": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - }, - "preset": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "custom_unit_amount", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tiers": { - "items": { - "properties": { - "flat_amount": { - "type": "integer" - }, - "flat_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "up_to": { - "anyOf": [ - { - "enum": [ - "inf" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - } - }, - "required": [ - "up_to" - ], - "title": "tier", - "type": "object" - }, - "type": "array" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "currency_option", - "type": "object" - }, - "description": "Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", - "type": "object" - }, - "custom_unit_amount": { - "description": "When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.", - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - }, - "preset": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "custom_unit_amount", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "lookup_key": { - "description": "A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.", - "maxLength": 200, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "nickname": { - "description": "A brief description of the price, hidden from customers.", - "maxLength": 5000, - "type": "string" - }, - "product": { - "description": "The ID of the product that this price will belong to.", - "maxLength": 5000, - "type": "string" - }, - "product_data": { - "description": "These fields can be used to create a new product that this price will belong to.", - "properties": { - "active": { - "type": "boolean" - }, - "id": { - "deprecated": true, - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor": { - "maxLength": 22, - "type": "string" - }, - "tax_code": { - "maxLength": 5000, - "type": "string" - }, - "unit_label": { - "maxLength": 12, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "inline_product_params", - "type": "object" - }, - "recurring": { - "description": "The recurring components of a price such as `interval` and `usage_type`.", - "properties": { - "aggregate_usage": { - "enum": [ - "last_during_period", - "last_ever", - "max", - "sum" - ], - "type": "string" - }, - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "meter": { - "maxLength": 5000, - "type": "string" - }, - "usage_type": { - "enum": [ - "licensed", - "metered" - ], - "type": "string" - } - }, - "required": [ - "interval" - ], - "title": "recurring", - "type": "object" - }, - "tax_behavior": { - "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tiers": { - "description": "Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.", - "items": { - "properties": { - "flat_amount": { - "type": "integer" - }, - "flat_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "up_to": { - "anyOf": [ - { - "enum": [ - "inf" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - } - }, - "required": [ - "up_to" - ], - "title": "tier", - "type": "object" - }, - "type": "array" - }, - "tiers_mode": { - "description": "Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price, in `graduated` tiering pricing can successively change as the quantity grows.", - "enum": [ - "graduated", - "volume" - ], - "type": "string" - }, - "transfer_lookup_key": { - "description": "If set to true, will atomically remove the lookup key from the existing price, and assign it to this price.", - "type": "boolean" - }, - "transform_quantity": { - "description": "Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers`.", - "properties": { - "divide_by": { - "type": "integer" - }, - "round": { - "enum": [ - "down", - "up" - ], - "type": "string" - } - }, - "required": [ - "divide_by", - "round" - ], - "title": "transform_usage_param", - "type": "object" - }, - "unit_amount": { - "description": "A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. One of `unit_amount`, `unit_amount_decimal`, or `custom_unit_amount` is required, unless `billing_scheme=tiered`.", - "type": "integer" - }, - "unit_amount_decimal": { - "description": "Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.", - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/price" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/prices/search": { - "get": { - "description": "

Search for prices you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetPricesSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for prices](https://stripe.com/docs/search#query-fields-for-prices).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/price" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/prices/{price}": { - "get": { - "description": "

Retrieves the price with the given ID.

", - "operationId": "GetPricesPrice", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "price", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/price" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged.

", - "operationId": "PostPricesPrice", - "parameters": [ - { - "in": "path", - "name": "price", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "currency_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the price can be used for new purchases. Defaults to `true`.", - "type": "boolean" - }, - "currency_options": { - "anyOf": [ - { - "additionalProperties": { - "properties": { - "custom_unit_amount": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - }, - "preset": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "custom_unit_amount", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tiers": { - "items": { - "properties": { - "flat_amount": { - "type": "integer" - }, - "flat_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "up_to": { - "anyOf": [ - { - "enum": [ - "inf" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - } - }, - "required": [ - "up_to" - ], - "title": "tier", - "type": "object" - }, - "type": "array" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "currency_option", - "type": "object" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies)." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "lookup_key": { - "description": "A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.", - "maxLength": 200, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "nickname": { - "description": "A brief description of the price, hidden from customers.", - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`. Once specified as either `inclusive` or `exclusive`, it cannot be changed.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "transfer_lookup_key": { - "description": "If set to true, will atomically remove the lookup key from the existing price, and assign it to this price.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/price" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/products": { - "get": { - "description": "

Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.

", - "operationId": "GetProducts", - "parameters": [ - { - "description": "Only return products that are active or inactive (e.g., pass `false` to list all inactive products).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "Only return products that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Only return products with the given IDs. Cannot be used with [starting_after](https://stripe.com/docs/api#list_products-starting_after) or [ending_before](https://stripe.com/docs/api#list_products-ending_before).", - "explode": true, - "in": "query", - "name": "ids", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return products that can be shipped (i.e., physical, not digital products).", - "in": "query", - "name": "shippable", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return products with the given url.", - "in": "query", - "name": "url", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/product" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/products", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ProductList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new product object.

", - "operationId": "PostProducts", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "default_price_data": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "images": { - "explode": true, - "style": "deepObject" - }, - "marketing_features": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "package_dimensions": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the product is currently available for purchase. Defaults to `true`.", - "type": "boolean" - }, - "default_price_data": { - "description": "Data used to generate a new [Price](https://stripe.com/docs/api/prices) object. This Price will be set as the default price for this product.", - "properties": { - "currency": { - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "custom_unit_amount": { - "properties": { - "enabled": { - "type": "boolean" - }, - "maximum": { - "type": "integer" - }, - "minimum": { - "type": "integer" - }, - "preset": { - "type": "integer" - } - }, - "required": [ - "enabled" - ], - "title": "custom_unit_amount", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tiers": { - "items": { - "properties": { - "flat_amount": { - "type": "integer" - }, - "flat_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "up_to": { - "anyOf": [ - { - "enum": [ - "inf" - ], - "maxLength": 5000, - "type": "string" - }, - { - "type": "integer" - } - ] - } - }, - "required": [ - "up_to" - ], - "title": "tier", - "type": "object" - }, - "type": "array" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "currency_option", - "type": "object" - }, - "type": "object" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency" - ], - "title": "price_data_without_product", - "type": "object" - }, - "description": { - "description": "The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.", - "maxLength": 40000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "id": { - "description": "An identifier will be randomly generated by Stripe. You can optionally override this ID, but the ID must be unique across all products in your Stripe account.", - "maxLength": 5000, - "type": "string" - }, - "images": { - "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer.", - "items": { - "type": "string" - }, - "type": "array" - }, - "marketing_features": { - "description": "A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table).", - "items": { - "properties": { - "name": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "features", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "name": { - "description": "The product's name, meant to be displayable to the customer.", - "maxLength": 5000, - "type": "string" - }, - "package_dimensions": { - "description": "The dimensions of this product for shipping purposes.", - "properties": { - "height": { - "type": "number" - }, - "length": { - "type": "number" - }, - "weight": { - "type": "number" - }, - "width": { - "type": "number" - } - }, - "required": [ - "height", - "length", - "weight", - "width" - ], - "title": "package_dimensions_specs", - "type": "object" - }, - "shippable": { - "description": "Whether this product is shipped (i.e., physical goods).", - "type": "boolean" - }, - "statement_descriptor": { - "description": "An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all.\n\nThis may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `\"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped.\n It must contain at least one letter. Only used for subscription payments.", - "maxLength": 22, - "type": "string" - }, - "tax_code": { - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID.", - "type": "string" - }, - "unit_label": { - "description": "A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal.", - "maxLength": 12, - "type": "string" - }, - "url": { - "description": "A URL of a publicly-accessible webpage for this product.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/product" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/products/search": { - "get": { - "description": "

Search for products you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetProductsSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for products](https://stripe.com/docs/search#query-fields-for-products).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/product" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/products/{id}": { - "delete": { - "description": "

Delete a product. Deleting a product is only possible if it has no prices associated with it. Additionally, deleting a product with type=good is only possible if it has no SKUs associated with it.

", - "operationId": "DeleteProductsId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_product" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the details of an existing product. Supply the unique product ID from either a product creation request or the product list, and Stripe will return the corresponding product information.

", - "operationId": "GetProductsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/product" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specific product by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostProductsId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "description": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "images": { - "explode": true, - "style": "deepObject" - }, - "marketing_features": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "package_dimensions": { - "explode": true, - "style": "deepObject" - }, - "tax_code": { - "explode": true, - "style": "deepObject" - }, - "unit_label": { - "explode": true, - "style": "deepObject" - }, - "url": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the product is available for purchase.", - "type": "boolean" - }, - "default_price": { - "description": "The ID of the [Price](https://stripe.com/docs/api/prices) object that is the default price for this product.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "anyOf": [ - { - "maxLength": 40000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "images": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of up to 8 URLs of images for this product, meant to be displayable to the customer." - }, - "marketing_features": { - "anyOf": [ - { - "items": { - "properties": { - "name": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "name" - ], - "title": "features", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of up to 15 marketing features for this product. These are displayed in [pricing tables](https://stripe.com/docs/payments/checkout/pricing-table)." - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "name": { - "description": "The product's name, meant to be displayable to the customer.", - "maxLength": 5000, - "type": "string" - }, - "package_dimensions": { - "anyOf": [ - { - "properties": { - "height": { - "type": "number" - }, - "length": { - "type": "number" - }, - "weight": { - "type": "number" - }, - "width": { - "type": "number" - } - }, - "required": [ - "height", - "length", - "weight", - "width" - ], - "title": "package_dimensions_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The dimensions of this product for shipping purposes." - }, - "shippable": { - "description": "Whether this product is shipped (i.e., physical goods).", - "type": "boolean" - }, - "statement_descriptor": { - "description": "An arbitrary string to be displayed on your customer's credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all.\n\nThis may be up to 22 characters. The statement description may not include `<`, `>`, `\\`, `\"`, `'` characters, and will appear on your customer's statement in capital letters. Non-ASCII characters are automatically stripped.\n It must contain at least one letter. May only be set if `type=service`. Only used for subscription payments.", - "maxLength": 22, - "type": "string" - }, - "tax_code": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID." - }, - "unit_label": { - "anyOf": [ - { - "maxLength": 12, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A label that represents units of this product. When set, this will be included in customers' receipts, invoices, Checkout, and the customer portal. May only be set if `type=service`." - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A URL of a publicly-accessible webpage for this product." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/product" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/products/{product}/features": { - "get": { - "description": "

Retrieve a list of features for a product

", - "operationId": "GetProductsProductFeatures", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "product", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/product_feature" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "EntitlementsResourceProductFeatureList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a product_feature, which represents a feature attachment to a product

", - "operationId": "PostProductsProductFeatures", - "parameters": [ - { - "in": "path", - "name": "product", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "entitlement_feature": { - "description": "The ID of the [Feature](https://stripe.com/docs/api/entitlements/feature) object attached to this product.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "entitlement_feature" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/product_feature" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/products/{product}/features/{id}": { - "delete": { - "description": "

Deletes the feature attachment to a product

", - "operationId": "DeleteProductsProductFeaturesId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "product", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_product_feature" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a product_feature, which represents a feature attachment to a product

", - "operationId": "GetProductsProductFeaturesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The ID of the product_feature.", - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "The ID of the product.", - "in": "path", - "name": "product", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/product_feature" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/promotion_codes": { - "get": { - "description": "

Returns a list of your promotion codes.

", - "operationId": "GetPromotionCodes", - "parameters": [ - { - "description": "Filter promotion codes by whether they are active.", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "Only return promotion codes that have this case-insensitive code.", - "in": "query", - "name": "code", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return promotion codes for this coupon.", - "in": "query", - "name": "coupon", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return promotion codes that are restricted to this customer.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/promotion_code" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/promotion_codes", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PromotionCodesResourcePromotionCodeList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

A promotion code points to a coupon. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.

", - "operationId": "PostPromotionCodes", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "restrictions": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the promotion code is currently active.", - "type": "boolean" - }, - "code": { - "description": "The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for a specific customer. If left blank, we will generate one automatically.", - "maxLength": 500, - "type": "string" - }, - "coupon": { - "description": "The coupon for this promotion code.", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "description": "The customer that this promotion code can be used by. If not set, the promotion code can be used by all customers.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "The timestamp at which this promotion code will expire. If the coupon has specified a `redeems_by`, then this value cannot be after the coupon's `redeems_by`.", - "format": "unix-time", - "type": "integer" - }, - "max_redemptions": { - "description": "A positive integer specifying the number of times the promotion code can be redeemed. If the coupon has specified a `max_redemptions`, then this value cannot be greater than the coupon's `max_redemptions`.", - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "restrictions": { - "description": "Settings that restrict the redemption of the promotion code.", - "properties": { - "currency_options": { - "additionalProperties": { - "properties": { - "minimum_amount": { - "type": "integer" - } - }, - "title": "currency_option", - "type": "object" - }, - "type": "object" - }, - "first_time_transaction": { - "type": "boolean" - }, - "minimum_amount": { - "type": "integer" - }, - "minimum_amount_currency": { - "type": "string" - } - }, - "title": "restrictions_params", - "type": "object" - } - }, - "required": [ - "coupon" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/promotion_code" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/promotion_codes/{promotion_code}": { - "get": { - "description": "

Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing code use list with the desired code.

", - "operationId": "GetPromotionCodesPromotionCode", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "promotion_code", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/promotion_code" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.

", - "operationId": "PostPromotionCodesPromotionCode", - "parameters": [ - { - "in": "path", - "name": "promotion_code", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "restrictions": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the promotion code is currently active. A promotion code can only be reactivated when the coupon is still valid and the promotion code is otherwise redeemable.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "restrictions": { - "description": "Settings that restrict the redemption of the promotion code.", - "properties": { - "currency_options": { - "additionalProperties": { - "properties": { - "minimum_amount": { - "type": "integer" - } - }, - "title": "currency_option", - "type": "object" - }, - "type": "object" - } - }, - "title": "restrictions_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/promotion_code" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes": { - "get": { - "description": "

Returns a list of your quotes.

", - "operationId": "GetQuotes", - "parameters": [ - { - "description": "The ID of the customer whose quotes will be retrieved.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The status of the quote.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "accepted", - "canceled", - "draft", - "open" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "Provides a list of quotes that are associated with the specified test clock. The response will not include quotes with test clocks if this and the customer parameter is not set.", - "in": "query", - "name": "test_clock", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/quote" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/quotes", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "QuotesResourceQuoteList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

A quote models prices and services for a customer. Default options for header, description, footer, and expires_at can be set in the dashboard via the quote template.

", - "operationId": "PostQuotes", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "application_fee_amount": { - "explode": true, - "style": "deepObject" - }, - "application_fee_percent": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "description": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "footer": { - "explode": true, - "style": "deepObject" - }, - "from_quote": { - "explode": true, - "style": "deepObject" - }, - "header": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "on_behalf_of": { - "explode": true, - "style": "deepObject" - }, - "subscription_data": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "application_fee_amount": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field." - }, - "application_fee_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field." - }, - "automatic_tax": { - "description": "Settings for automatic tax lookup for this quote and resulting invoices and subscriptions.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "customer": { - "description": "The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.", - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any line item that does not have `tax_rates` set." - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A description that will be displayed on the quote PDF. If no value is passed, the default description configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The discounts applied to the quote. You can only set up to one discount." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch. If no value is passed, the default expiration date configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used.", - "format": "unix-time", - "type": "integer" - }, - "footer": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A footer that will be displayed on the quote PDF. If no value is passed, the default footer configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used." - }, - "from_quote": { - "description": "Clone an existing quote. The new quote will be created in `status=draft`. When using this parameter, you cannot specify any other parameters except for `expires_at`.", - "properties": { - "is_revision": { - "type": "boolean" - }, - "quote": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "quote" - ], - "title": "from_quote_params", - "type": "object" - }, - "header": { - "anyOf": [ - { - "maxLength": 50, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A header that will be displayed on the quote PDF. If no value is passed, the default header configured in your [quote template settings](https://dashboard.stripe.com/settings/billing/quote) will be used." - }, - "invoice_settings": { - "description": "All invoices will be billed using the specified settings.", - "properties": { - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "quote_param", - "type": "object" - }, - "line_items": { - "description": "A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.", - "items": { - "properties": { - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "line_item_create_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account on behalf of which to charge." - }, - "subscription_data": { - "description": "When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.", - "properties": { - "description": { - "maxLength": 500, - "type": "string" - }, - "effective_date": { - "anyOf": [ - { - "enum": [ - "current_period_end" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "trial_period_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_data_create_params", - "type": "object" - }, - "test_clock": { - "description": "ID of the test clock to attach to the quote.", - "maxLength": 5000, - "type": "string" - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount": { - "type": "integer" - }, - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The data with which to automatically create a Transfer for each of the invoices." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/quote" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}": { - "get": { - "description": "

Retrieves the quote with the given ID.

", - "operationId": "GetQuotesQuote", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/quote" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

A quote models prices and services for a customer.

", - "operationId": "PostQuotesQuote", - "parameters": [ - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "application_fee_amount": { - "explode": true, - "style": "deepObject" - }, - "application_fee_percent": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "description": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "footer": { - "explode": true, - "style": "deepObject" - }, - "header": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "on_behalf_of": { - "explode": true, - "style": "deepObject" - }, - "subscription_data": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "application_fee_amount": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. There cannot be any line items with recurring prices when using this field." - }, - "application_fee_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. There must be at least 1 line item with a recurring price to use this field." - }, - "automatic_tax": { - "description": "Settings for automatic tax lookup for this quote and resulting invoices and subscriptions.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_param", - "type": "object" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay invoices at the end of the subscription cycle or at invoice finalization using the default payment method attached to the subscription or customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "customer": { - "description": "The customer for which this quote belongs to. A customer is required before finalizing the quote. Once specified, it cannot be changed.", - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any line item that does not have `tax_rates` set." - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A description that will be displayed on the quote PDF." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The discounts applied to the quote. You can only set up to one discount." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - }, - "footer": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A footer that will be displayed on the quote PDF." - }, - "header": { - "anyOf": [ - { - "maxLength": 50, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A header that will be displayed on the quote PDF." - }, - "invoice_settings": { - "description": "All invoices will be billed using the specified settings.", - "properties": { - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "quote_param", - "type": "object" - }, - "line_items": { - "description": "A list of line items the customer is being quoted for. Each line item includes information about the product, the quantity, and the resulting cost.", - "items": { - "properties": { - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "line_item_update_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account on behalf of which to charge." - }, - "subscription_data": { - "description": "When creating a subscription or subscription schedule, the specified configuration data will be used. There must be at least one line item with a recurring price for a subscription or subscription schedule to be created. A subscription schedule is created if `subscription_data[effective_date]` is present and in the future, otherwise a subscription is created.", - "properties": { - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "effective_date": { - "anyOf": [ - { - "enum": [ - "current_period_end" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "trial_period_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_data_update_params", - "type": "object" - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount": { - "type": "integer" - }, - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The data with which to automatically create a Transfer for each of the invoices." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/quote" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}/accept": { - "post": { - "description": "

Accepts the specified quote.

", - "operationId": "PostQuotesQuoteAccept", - "parameters": [ - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/quote" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}/cancel": { - "post": { - "description": "

Cancels the quote.

", - "operationId": "PostQuotesQuoteCancel", - "parameters": [ - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/quote" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}/computed_upfront_line_items": { - "get": { - "description": "

When retrieving a quote, there is an includable computed.upfront.line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of upfront line items.

", - "operationId": "GetQuotesQuoteComputedUpfrontLineItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "QuotesResourceListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}/finalize": { - "post": { - "description": "

Finalizes the quote.

", - "operationId": "PostQuotesQuoteFinalize", - "parameters": [ - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "A future timestamp on which the quote will be canceled if in `open` or `draft` status. Measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/quote" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}/line_items": { - "get": { - "description": "

When retrieving a quote, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.

", - "operationId": "GetQuotesQuoteLineItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "QuotesResourceListLineItems", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/quotes/{quote}/pdf": { - "get": { - "description": "

Download the PDF for a finalized quote. Explanation for special handling can be found here

", - "operationId": "GetQuotesQuotePdf", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "quote", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/pdf": { - "schema": { - "format": "binary", - "type": "string" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - }, - "servers": [ - { - "url": "https://files.stripe.com/" - } - ] - } - }, - "/v1/radar/early_fraud_warnings": { - "get": { - "description": "

Returns a list of early fraud warnings.

", - "operationId": "GetRadarEarlyFraudWarnings", - "parameters": [ - { - "description": "Only return early fraud warnings for the charge specified by this charge ID.", - "in": "query", - "name": "charge", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return early fraud warnings that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return early fraud warnings for charges that were created by the PaymentIntent specified by this PaymentIntent ID.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/radar.early_fraud_warning" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/radar/early_fraud_warnings", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RadarEarlyFraudWarningList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/radar/early_fraud_warnings/{early_fraud_warning}": { - "get": { - "description": "

Retrieves the details of an early fraud warning that has previously been created.

\n\n

Please refer to the early fraud warning object reference for more details.

", - "operationId": "GetRadarEarlyFraudWarningsEarlyFraudWarning", - "parameters": [ - { - "in": "path", - "name": "early_fraud_warning", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/radar.early_fraud_warning" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/radar/value_list_items": { - "get": { - "description": "

Returns a list of ValueListItem objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetRadarValueListItems", - "parameters": [ - { - "description": "Only return items that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Return items belonging to the parent list whose value matches the specified value (using an \"is like\" match).", - "in": "query", - "name": "value", - "required": false, - "schema": { - "maxLength": 800, - "type": "string" - }, - "style": "form" - }, - { - "description": "Identifier for the parent value list this item belongs to.", - "in": "query", - "name": "value_list", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/radar.value_list_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/radar/value_list_items", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RadarListListItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new ValueListItem object, which is added to the specified parent value list.

", - "operationId": "PostRadarValueListItems", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "value": { - "description": "The value of the item (whose type must match the type of the parent value list).", - "maxLength": 800, - "type": "string" - }, - "value_list": { - "description": "The identifier of the value list which the created item will be added to.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "value", - "value_list" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/radar.value_list_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/radar/value_list_items/{item}": { - "delete": { - "description": "

Deletes a ValueListItem object, removing it from its parent value list.

", - "operationId": "DeleteRadarValueListItemsItem", - "parameters": [ - { - "in": "path", - "name": "item", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_radar.value_list_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a ValueListItem object.

", - "operationId": "GetRadarValueListItemsItem", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "item", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/radar.value_list_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/radar/value_lists": { - "get": { - "description": "

Returns a list of ValueList objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetRadarValueLists", - "parameters": [ - { - "description": "The alias used to reference the value list when writing rules.", - "in": "query", - "name": "alias", - "required": false, - "schema": { - "maxLength": 100, - "type": "string" - }, - "style": "form" - }, - { - "description": "A value contained within a value list - returns all value lists containing this value.", - "in": "query", - "name": "contains", - "required": false, - "schema": { - "maxLength": 800, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return value lists that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/radar.value_list" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/radar/value_lists", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RadarListListList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new ValueList object, which can then be referenced in rules.

", - "operationId": "PostRadarValueLists", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "alias": { - "description": "The name of the value list for use in rules.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "item_type": { - "description": "Type of the items in the value list. One of `card_fingerprint`, `us_bank_account_fingerprint`, `sepa_debit_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, `case_sensitive_string`, or `customer_id`. Use `string` if the item type is unknown or mixed.", - "enum": [ - "card_bin", - "card_fingerprint", - "case_sensitive_string", - "country", - "customer_id", - "email", - "ip_address", - "sepa_debit_fingerprint", - "string", - "us_bank_account_fingerprint" - ], - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "name": { - "description": "The human-readable name of the value list.", - "maxLength": 100, - "type": "string" - } - }, - "required": [ - "alias", - "name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/radar.value_list" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/radar/value_lists/{value_list}": { - "delete": { - "description": "

Deletes a ValueList object, also deleting any items contained within the value list. To be deleted, a value list must not be referenced in any rules.

", - "operationId": "DeleteRadarValueListsValueList", - "parameters": [ - { - "in": "path", - "name": "value_list", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_radar.value_list" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a ValueList object.

", - "operationId": "GetRadarValueListsValueList", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "value_list", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/radar.value_list" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a ValueList object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Note that item_type is immutable.

", - "operationId": "PostRadarValueListsValueList", - "parameters": [ - { - "in": "path", - "name": "value_list", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "alias": { - "description": "The name of the value list for use in rules.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "name": { - "description": "The human-readable name of the value list.", - "maxLength": 100, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/radar.value_list" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/refunds": { - "get": { - "description": "

Returns a list of all refunds you created. We return the refunds in sorted order, with the most recent refunds appearing first. The 10 most recent refunds are always available by default on the Charge object.

", - "operationId": "GetRefunds", - "parameters": [ - { - "description": "Only return refunds for the charge specified by this charge ID.", - "in": "query", - "name": "charge", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return refunds that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return refunds for the PaymentIntent specified by this ID.", - "in": "query", - "name": "payment_intent", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/refund" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/refunds", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "APIMethodRefundList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you create a new refund, you must specify a Charge or a PaymentIntent object on which to create it.

\n\n

Creating a new refund will refund a charge that has previously been created but not yet refunded.\nFunds will be refunded to the credit or debit card that was originally charged.

\n\n

You can optionally refund only part of a charge.\nYou can do so multiple times, until the entire charge has been refunded.

\n\n

Once entirely refunded, a charge can’t be refunded again.\nThis method will raise an error when called on an already-refunded charge,\nor when trying to refund more money than is left on a charge.

", - "operationId": "PostRefunds", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "integer" - }, - "charge": { - "description": "The identifier of the charge to refund.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "Customer whose customer balance to refund from.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "instructions_email": { - "description": "For payment methods without native refund support (e.g., Konbini, PromptPay), use this email from the customer to receive refund instructions.", - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "origin": { - "description": "Origin of the refund", - "enum": [ - "customer_balance" - ], - "type": "string" - }, - "payment_intent": { - "description": "The identifier of the PaymentIntent to refund.", - "maxLength": 5000, - "type": "string" - }, - "reason": { - "description": "String indicating the reason for the refund. If set, possible values are `duplicate`, `fraudulent`, and `requested_by_customer`. If you believe the charge to be fraudulent, specifying `fraudulent` as the reason will add the associated card and email to your [block lists](https://stripe.com/docs/radar/lists), and will also help us improve our fraud detection algorithms.", - "enum": [ - "duplicate", - "fraudulent", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string" - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount).

A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/refunds/{refund}": { - "get": { - "description": "

Retrieves the details of an existing refund.

", - "operationId": "GetRefundsRefund", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the refund that you specify by setting the values of the passed parameters. Any parameters that you don’t provide remain unchanged.

\n\n

This request only accepts metadata as an argument.

", - "operationId": "PostRefundsRefund", - "parameters": [ - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/refunds/{refund}/cancel": { - "post": { - "description": "

Cancels a refund with a status of requires_action.

\n\n

You can’t cancel refunds in other states. Only refunds for payment methods that require customer action can enter the requires_action state.

", - "operationId": "PostRefundsRefundCancel", - "parameters": [ - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reporting/report_runs": { - "get": { - "description": "

Returns a list of Report Runs, with the most recent appearing first.

", - "operationId": "GetReportingReportRuns", - "parameters": [ - { - "description": "Only return Report Runs that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/reporting.report_run" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/reporting/report_runs", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FinancialReportingFinanceReportRunList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new object and begin running the report. (Certain report types require a live-mode API key.)

", - "operationId": "PostReportingReportRuns", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "parameters": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "parameters": { - "description": "Parameters specifying how the report should be run. Different Report Types have different required and optional parameters, listed in the [API Access to Reports](https://stripe.com/docs/reporting/statements/api) documentation.", - "properties": { - "columns": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "connected_account": { - "type": "string" - }, - "currency": { - "type": "string" - }, - "interval_end": { - "format": "unix-time", - "type": "integer" - }, - "interval_start": { - "format": "unix-time", - "type": "integer" - }, - "payout": { - "type": "string" - }, - "reporting_category": { - "enum": [ - "advance", - "advance_funding", - "anticipation_repayment", - "charge", - "charge_failure", - "climate_order_purchase", - "climate_order_refund", - "connect_collection_transfer", - "connect_reserved_funds", - "contribution", - "dispute", - "dispute_reversal", - "fee", - "financing_paydown", - "financing_paydown_reversal", - "financing_payout", - "financing_payout_reversal", - "issuing_authorization_hold", - "issuing_authorization_release", - "issuing_dispute", - "issuing_transaction", - "network_cost", - "other_adjustment", - "partial_capture_reversal", - "payout", - "payout_reversal", - "platform_earning", - "platform_earning_refund", - "refund", - "refund_failure", - "risk_reserved_funds", - "tax", - "topup", - "topup_reversal", - "transfer", - "transfer_reversal", - "unreconciled_customer_funds" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "timezone": { - "enum": [ - "Africa/Abidjan", - "Africa/Accra", - "Africa/Addis_Ababa", - "Africa/Algiers", - "Africa/Asmara", - "Africa/Asmera", - "Africa/Bamako", - "Africa/Bangui", - "Africa/Banjul", - "Africa/Bissau", - "Africa/Blantyre", - "Africa/Brazzaville", - "Africa/Bujumbura", - "Africa/Cairo", - "Africa/Casablanca", - "Africa/Ceuta", - "Africa/Conakry", - "Africa/Dakar", - "Africa/Dar_es_Salaam", - "Africa/Djibouti", - "Africa/Douala", - "Africa/El_Aaiun", - "Africa/Freetown", - "Africa/Gaborone", - "Africa/Harare", - "Africa/Johannesburg", - "Africa/Juba", - "Africa/Kampala", - "Africa/Khartoum", - "Africa/Kigali", - "Africa/Kinshasa", - "Africa/Lagos", - "Africa/Libreville", - "Africa/Lome", - "Africa/Luanda", - "Africa/Lubumbashi", - "Africa/Lusaka", - "Africa/Malabo", - "Africa/Maputo", - "Africa/Maseru", - "Africa/Mbabane", - "Africa/Mogadishu", - "Africa/Monrovia", - "Africa/Nairobi", - "Africa/Ndjamena", - "Africa/Niamey", - "Africa/Nouakchott", - "Africa/Ouagadougou", - "Africa/Porto-Novo", - "Africa/Sao_Tome", - "Africa/Timbuktu", - "Africa/Tripoli", - "Africa/Tunis", - "Africa/Windhoek", - "America/Adak", - "America/Anchorage", - "America/Anguilla", - "America/Antigua", - "America/Araguaina", - "America/Argentina/Buenos_Aires", - "America/Argentina/Catamarca", - "America/Argentina/ComodRivadavia", - "America/Argentina/Cordoba", - "America/Argentina/Jujuy", - "America/Argentina/La_Rioja", - "America/Argentina/Mendoza", - "America/Argentina/Rio_Gallegos", - "America/Argentina/Salta", - "America/Argentina/San_Juan", - "America/Argentina/San_Luis", - "America/Argentina/Tucuman", - "America/Argentina/Ushuaia", - "America/Aruba", - "America/Asuncion", - "America/Atikokan", - "America/Atka", - "America/Bahia", - "America/Bahia_Banderas", - "America/Barbados", - "America/Belem", - "America/Belize", - "America/Blanc-Sablon", - "America/Boa_Vista", - "America/Bogota", - "America/Boise", - "America/Buenos_Aires", - "America/Cambridge_Bay", - "America/Campo_Grande", - "America/Cancun", - "America/Caracas", - "America/Catamarca", - "America/Cayenne", - "America/Cayman", - "America/Chicago", - "America/Chihuahua", - "America/Ciudad_Juarez", - "America/Coral_Harbour", - "America/Cordoba", - "America/Costa_Rica", - "America/Creston", - "America/Cuiaba", - "America/Curacao", - "America/Danmarkshavn", - "America/Dawson", - "America/Dawson_Creek", - "America/Denver", - "America/Detroit", - "America/Dominica", - "America/Edmonton", - "America/Eirunepe", - "America/El_Salvador", - "America/Ensenada", - "America/Fort_Nelson", - "America/Fort_Wayne", - "America/Fortaleza", - "America/Glace_Bay", - "America/Godthab", - "America/Goose_Bay", - "America/Grand_Turk", - "America/Grenada", - "America/Guadeloupe", - "America/Guatemala", - "America/Guayaquil", - "America/Guyana", - "America/Halifax", - "America/Havana", - "America/Hermosillo", - "America/Indiana/Indianapolis", - "America/Indiana/Knox", - "America/Indiana/Marengo", - "America/Indiana/Petersburg", - "America/Indiana/Tell_City", - "America/Indiana/Vevay", - "America/Indiana/Vincennes", - "America/Indiana/Winamac", - "America/Indianapolis", - "America/Inuvik", - "America/Iqaluit", - "America/Jamaica", - "America/Jujuy", - "America/Juneau", - "America/Kentucky/Louisville", - "America/Kentucky/Monticello", - "America/Knox_IN", - "America/Kralendijk", - "America/La_Paz", - "America/Lima", - "America/Los_Angeles", - "America/Louisville", - "America/Lower_Princes", - "America/Maceio", - "America/Managua", - "America/Manaus", - "America/Marigot", - "America/Martinique", - "America/Matamoros", - "America/Mazatlan", - "America/Mendoza", - "America/Menominee", - "America/Merida", - "America/Metlakatla", - "America/Mexico_City", - "America/Miquelon", - "America/Moncton", - "America/Monterrey", - "America/Montevideo", - "America/Montreal", - "America/Montserrat", - "America/Nassau", - "America/New_York", - "America/Nipigon", - "America/Nome", - "America/Noronha", - "America/North_Dakota/Beulah", - "America/North_Dakota/Center", - "America/North_Dakota/New_Salem", - "America/Nuuk", - "America/Ojinaga", - "America/Panama", - "America/Pangnirtung", - "America/Paramaribo", - "America/Phoenix", - "America/Port-au-Prince", - "America/Port_of_Spain", - "America/Porto_Acre", - "America/Porto_Velho", - "America/Puerto_Rico", - "America/Punta_Arenas", - "America/Rainy_River", - "America/Rankin_Inlet", - "America/Recife", - "America/Regina", - "America/Resolute", - "America/Rio_Branco", - "America/Rosario", - "America/Santa_Isabel", - "America/Santarem", - "America/Santiago", - "America/Santo_Domingo", - "America/Sao_Paulo", - "America/Scoresbysund", - "America/Shiprock", - "America/Sitka", - "America/St_Barthelemy", - "America/St_Johns", - "America/St_Kitts", - "America/St_Lucia", - "America/St_Thomas", - "America/St_Vincent", - "America/Swift_Current", - "America/Tegucigalpa", - "America/Thule", - "America/Thunder_Bay", - "America/Tijuana", - "America/Toronto", - "America/Tortola", - "America/Vancouver", - "America/Virgin", - "America/Whitehorse", - "America/Winnipeg", - "America/Yakutat", - "America/Yellowknife", - "Antarctica/Casey", - "Antarctica/Davis", - "Antarctica/DumontDUrville", - "Antarctica/Macquarie", - "Antarctica/Mawson", - "Antarctica/McMurdo", - "Antarctica/Palmer", - "Antarctica/Rothera", - "Antarctica/South_Pole", - "Antarctica/Syowa", - "Antarctica/Troll", - "Antarctica/Vostok", - "Arctic/Longyearbyen", - "Asia/Aden", - "Asia/Almaty", - "Asia/Amman", - "Asia/Anadyr", - "Asia/Aqtau", - "Asia/Aqtobe", - "Asia/Ashgabat", - "Asia/Ashkhabad", - "Asia/Atyrau", - "Asia/Baghdad", - "Asia/Bahrain", - "Asia/Baku", - "Asia/Bangkok", - "Asia/Barnaul", - "Asia/Beirut", - "Asia/Bishkek", - "Asia/Brunei", - "Asia/Calcutta", - "Asia/Chita", - "Asia/Choibalsan", - "Asia/Chongqing", - "Asia/Chungking", - "Asia/Colombo", - "Asia/Dacca", - "Asia/Damascus", - "Asia/Dhaka", - "Asia/Dili", - "Asia/Dubai", - "Asia/Dushanbe", - "Asia/Famagusta", - "Asia/Gaza", - "Asia/Harbin", - "Asia/Hebron", - "Asia/Ho_Chi_Minh", - "Asia/Hong_Kong", - "Asia/Hovd", - "Asia/Irkutsk", - "Asia/Istanbul", - "Asia/Jakarta", - "Asia/Jayapura", - "Asia/Jerusalem", - "Asia/Kabul", - "Asia/Kamchatka", - "Asia/Karachi", - "Asia/Kashgar", - "Asia/Kathmandu", - "Asia/Katmandu", - "Asia/Khandyga", - "Asia/Kolkata", - "Asia/Krasnoyarsk", - "Asia/Kuala_Lumpur", - "Asia/Kuching", - "Asia/Kuwait", - "Asia/Macao", - "Asia/Macau", - "Asia/Magadan", - "Asia/Makassar", - "Asia/Manila", - "Asia/Muscat", - "Asia/Nicosia", - "Asia/Novokuznetsk", - "Asia/Novosibirsk", - "Asia/Omsk", - "Asia/Oral", - "Asia/Phnom_Penh", - "Asia/Pontianak", - "Asia/Pyongyang", - "Asia/Qatar", - "Asia/Qostanay", - "Asia/Qyzylorda", - "Asia/Rangoon", - "Asia/Riyadh", - "Asia/Saigon", - "Asia/Sakhalin", - "Asia/Samarkand", - "Asia/Seoul", - "Asia/Shanghai", - "Asia/Singapore", - "Asia/Srednekolymsk", - "Asia/Taipei", - "Asia/Tashkent", - "Asia/Tbilisi", - "Asia/Tehran", - "Asia/Tel_Aviv", - "Asia/Thimbu", - "Asia/Thimphu", - "Asia/Tokyo", - "Asia/Tomsk", - "Asia/Ujung_Pandang", - "Asia/Ulaanbaatar", - "Asia/Ulan_Bator", - "Asia/Urumqi", - "Asia/Ust-Nera", - "Asia/Vientiane", - "Asia/Vladivostok", - "Asia/Yakutsk", - "Asia/Yangon", - "Asia/Yekaterinburg", - "Asia/Yerevan", - "Atlantic/Azores", - "Atlantic/Bermuda", - "Atlantic/Canary", - "Atlantic/Cape_Verde", - "Atlantic/Faeroe", - "Atlantic/Faroe", - "Atlantic/Jan_Mayen", - "Atlantic/Madeira", - "Atlantic/Reykjavik", - "Atlantic/South_Georgia", - "Atlantic/St_Helena", - "Atlantic/Stanley", - "Australia/ACT", - "Australia/Adelaide", - "Australia/Brisbane", - "Australia/Broken_Hill", - "Australia/Canberra", - "Australia/Currie", - "Australia/Darwin", - "Australia/Eucla", - "Australia/Hobart", - "Australia/LHI", - "Australia/Lindeman", - "Australia/Lord_Howe", - "Australia/Melbourne", - "Australia/NSW", - "Australia/North", - "Australia/Perth", - "Australia/Queensland", - "Australia/South", - "Australia/Sydney", - "Australia/Tasmania", - "Australia/Victoria", - "Australia/West", - "Australia/Yancowinna", - "Brazil/Acre", - "Brazil/DeNoronha", - "Brazil/East", - "Brazil/West", - "CET", - "CST6CDT", - "Canada/Atlantic", - "Canada/Central", - "Canada/Eastern", - "Canada/Mountain", - "Canada/Newfoundland", - "Canada/Pacific", - "Canada/Saskatchewan", - "Canada/Yukon", - "Chile/Continental", - "Chile/EasterIsland", - "Cuba", - "EET", - "EST", - "EST5EDT", - "Egypt", - "Eire", - "Etc/GMT", - "Etc/GMT+0", - "Etc/GMT+1", - "Etc/GMT+10", - "Etc/GMT+11", - "Etc/GMT+12", - "Etc/GMT+2", - "Etc/GMT+3", - "Etc/GMT+4", - "Etc/GMT+5", - "Etc/GMT+6", - "Etc/GMT+7", - "Etc/GMT+8", - "Etc/GMT+9", - "Etc/GMT-0", - "Etc/GMT-1", - "Etc/GMT-10", - "Etc/GMT-11", - "Etc/GMT-12", - "Etc/GMT-13", - "Etc/GMT-14", - "Etc/GMT-2", - "Etc/GMT-3", - "Etc/GMT-4", - "Etc/GMT-5", - "Etc/GMT-6", - "Etc/GMT-7", - "Etc/GMT-8", - "Etc/GMT-9", - "Etc/GMT0", - "Etc/Greenwich", - "Etc/UCT", - "Etc/UTC", - "Etc/Universal", - "Etc/Zulu", - "Europe/Amsterdam", - "Europe/Andorra", - "Europe/Astrakhan", - "Europe/Athens", - "Europe/Belfast", - "Europe/Belgrade", - "Europe/Berlin", - "Europe/Bratislava", - "Europe/Brussels", - "Europe/Bucharest", - "Europe/Budapest", - "Europe/Busingen", - "Europe/Chisinau", - "Europe/Copenhagen", - "Europe/Dublin", - "Europe/Gibraltar", - "Europe/Guernsey", - "Europe/Helsinki", - "Europe/Isle_of_Man", - "Europe/Istanbul", - "Europe/Jersey", - "Europe/Kaliningrad", - "Europe/Kiev", - "Europe/Kirov", - "Europe/Kyiv", - "Europe/Lisbon", - "Europe/Ljubljana", - "Europe/London", - "Europe/Luxembourg", - "Europe/Madrid", - "Europe/Malta", - "Europe/Mariehamn", - "Europe/Minsk", - "Europe/Monaco", - "Europe/Moscow", - "Europe/Nicosia", - "Europe/Oslo", - "Europe/Paris", - "Europe/Podgorica", - "Europe/Prague", - "Europe/Riga", - "Europe/Rome", - "Europe/Samara", - "Europe/San_Marino", - "Europe/Sarajevo", - "Europe/Saratov", - "Europe/Simferopol", - "Europe/Skopje", - "Europe/Sofia", - "Europe/Stockholm", - "Europe/Tallinn", - "Europe/Tirane", - "Europe/Tiraspol", - "Europe/Ulyanovsk", - "Europe/Uzhgorod", - "Europe/Vaduz", - "Europe/Vatican", - "Europe/Vienna", - "Europe/Vilnius", - "Europe/Volgograd", - "Europe/Warsaw", - "Europe/Zagreb", - "Europe/Zaporozhye", - "Europe/Zurich", - "Factory", - "GB", - "GB-Eire", - "GMT", - "GMT+0", - "GMT-0", - "GMT0", - "Greenwich", - "HST", - "Hongkong", - "Iceland", - "Indian/Antananarivo", - "Indian/Chagos", - "Indian/Christmas", - "Indian/Cocos", - "Indian/Comoro", - "Indian/Kerguelen", - "Indian/Mahe", - "Indian/Maldives", - "Indian/Mauritius", - "Indian/Mayotte", - "Indian/Reunion", - "Iran", - "Israel", - "Jamaica", - "Japan", - "Kwajalein", - "Libya", - "MET", - "MST", - "MST7MDT", - "Mexico/BajaNorte", - "Mexico/BajaSur", - "Mexico/General", - "NZ", - "NZ-CHAT", - "Navajo", - "PRC", - "PST8PDT", - "Pacific/Apia", - "Pacific/Auckland", - "Pacific/Bougainville", - "Pacific/Chatham", - "Pacific/Chuuk", - "Pacific/Easter", - "Pacific/Efate", - "Pacific/Enderbury", - "Pacific/Fakaofo", - "Pacific/Fiji", - "Pacific/Funafuti", - "Pacific/Galapagos", - "Pacific/Gambier", - "Pacific/Guadalcanal", - "Pacific/Guam", - "Pacific/Honolulu", - "Pacific/Johnston", - "Pacific/Kanton", - "Pacific/Kiritimati", - "Pacific/Kosrae", - "Pacific/Kwajalein", - "Pacific/Majuro", - "Pacific/Marquesas", - "Pacific/Midway", - "Pacific/Nauru", - "Pacific/Niue", - "Pacific/Norfolk", - "Pacific/Noumea", - "Pacific/Pago_Pago", - "Pacific/Palau", - "Pacific/Pitcairn", - "Pacific/Pohnpei", - "Pacific/Ponape", - "Pacific/Port_Moresby", - "Pacific/Rarotonga", - "Pacific/Saipan", - "Pacific/Samoa", - "Pacific/Tahiti", - "Pacific/Tarawa", - "Pacific/Tongatapu", - "Pacific/Truk", - "Pacific/Wake", - "Pacific/Wallis", - "Pacific/Yap", - "Poland", - "Portugal", - "ROC", - "ROK", - "Singapore", - "Turkey", - "UCT", - "US/Alaska", - "US/Aleutian", - "US/Arizona", - "US/Central", - "US/East-Indiana", - "US/Eastern", - "US/Hawaii", - "US/Indiana-Starke", - "US/Michigan", - "US/Mountain", - "US/Pacific", - "US/Pacific-New", - "US/Samoa", - "UTC", - "Universal", - "W-SU", - "WET", - "Zulu" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "run_parameter_specs", - "type": "object" - }, - "report_type": { - "description": "The ID of the [report type](https://stripe.com/docs/reporting/statements/api#report-types) to run, such as `\"balance.summary.1\"`.", - "type": "string" - } - }, - "required": [ - "report_type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reporting.report_run" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reporting/report_runs/{report_run}": { - "get": { - "description": "

Retrieves the details of an existing Report Run.

", - "operationId": "GetReportingReportRunsReportRun", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "report_run", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reporting.report_run" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reporting/report_types": { - "get": { - "description": "

Returns a full list of Report Types.

", - "operationId": "GetReportingReportTypes", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/reporting.report_type" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "FinancialReportingFinanceReportTypeList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reporting/report_types/{report_type}": { - "get": { - "description": "

Retrieves the details of a Report Type. (Certain report types require a live-mode API key.)

", - "operationId": "GetReportingReportTypesReportType", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "report_type", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reporting.report_type" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reviews": { - "get": { - "description": "

Returns a list of Review objects that have open set to true. The objects are sorted in descending order by creation date, with the most recently created object appearing first.

", - "operationId": "GetReviews", - "parameters": [ - { - "description": "Only return reviews that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/review" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "RadarReviewList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reviews/{review}": { - "get": { - "description": "

Retrieves a Review object.

", - "operationId": "GetReviewsReview", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "review", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/review" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/reviews/{review}/approve": { - "post": { - "description": "

Approves a Review object, closing it and removing it from the list of reviews.

", - "operationId": "PostReviewsReviewApprove", - "parameters": [ - { - "in": "path", - "name": "review", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/review" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/setup_attempts": { - "get": { - "description": "

Returns a list of SetupAttempts that associate with a provided SetupIntent.

", - "operationId": "GetSetupAttempts", - "parameters": [ - { - "description": "A filter on the list, based on the object `created` field. The value\ncan be a string with an integer Unix timestamp or a\ndictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return SetupAttempts created by the SetupIntent specified by\nthis ID.", - "in": "query", - "name": "setup_intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/setup_attempt" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/setup_attempts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentFlowsSetupIntentSetupAttemptList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/setup_intents": { - "get": { - "description": "

Returns a list of SetupIntents.

", - "operationId": "GetSetupIntents", - "parameters": [ - { - "description": "If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.\n\nIt can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.", - "in": "query", - "name": "attach_to_self", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return SetupIntents for the customer specified by this customer ID.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return SetupIntents that associate with the specified payment method.", - "in": "query", - "name": "payment_method", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/setup_intent" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/setup_intents", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "PaymentFlowsSetupIntentList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a SetupIntent object.

\n\n

After you create the SetupIntent, attach a payment method and confirm\nit to collect any required permissions to charge the payment method later.

", - "operationId": "PostSetupIntents", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "automatic_payment_methods": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "flow_directions": { - "explode": true, - "style": "deepObject" - }, - "mandate_data": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - }, - "single_use": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "attach_to_self": { - "description": "If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.\n\nIt can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.", - "type": "boolean" - }, - "automatic_payment_methods": { - "description": "When you enable this parameter, this SetupIntent accepts payment methods that you enable in the Dashboard and that are compatible with its other parameters.", - "properties": { - "allow_redirects": { - "enum": [ - "always", - "never" - ], - "type": "string" - }, - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_payment_methods_param", - "type": "object" - }, - "confirm": { - "description": "Set to `true` to attempt to confirm this SetupIntent immediately. This parameter defaults to `false`. If a card is the attached payment method, you can provide a `return_url` in case further authentication is necessary.", - "type": "boolean" - }, - "confirmation_token": { - "description": "ID of the ConfirmationToken used to confirm this SetupIntent.\n\nIf the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.", - "maxLength": 5000, - "type": "string" - }, - "customer": { - "description": "ID of the Customer this SetupIntent belongs to, if one exists.\n\nIf present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 1000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "flow_directions": { - "description": "Indicates the directions of money movement for which this payment method is intended to be used.\n\nInclude `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.", - "items": { - "enum": [ - "inbound", - "outbound" - ], - "type": "string" - }, - "type": "array" - }, - "mandate_data": { - "anyOf": [ - { - "properties": { - "customer_acceptance": { - "properties": { - "accepted_at": { - "format": "unix-time", - "type": "integer" - }, - "offline": { - "properties": {}, - "title": "offline_param", - "type": "object" - }, - "online": { - "properties": { - "ip_address": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "ip_address", - "user_agent" - ], - "title": "online_param", - "type": "object" - }, - "type": { - "enum": [ - "offline", - "online" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "customer_acceptance_param", - "type": "object" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "secret_key_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "This hash contains details about the mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm)." - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "on_behalf_of": { - "description": "The Stripe account ID created for this SetupIntent.", - "type": "string" - }, - "payment_method": { - "description": "ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_configuration": { - "description": "The ID of the payment method configuration to use with this SetupIntent.", - "maxLength": 100, - "type": "string" - }, - "payment_method_data": { - "description": "When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method)\nvalue in the SetupIntent.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "payment_method_options": { - "description": "Payment method-specific configuration for this SetupIntent.", - "properties": { - "acss_debit": { - "properties": { - "currency": { - "enum": [ - "cad", - "usd" - ], - "type": "string" - }, - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_for": { - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "setup_intent_payment_method_options_mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "amazon_pay": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "card": { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "interval": { - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "reference": { - "maxLength": 80, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "currency", - "interval", - "reference", - "start_date" - ], - "title": "setup_intent_mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "three_d_secure": { - "properties": { - "ares_trans_status": { - "enum": [ - "A", - "C", - "I", - "N", - "R", - "U", - "Y" - ], - "type": "string" - }, - "cryptogram": { - "maxLength": 5000, - "type": "string" - }, - "electronic_commerce_indicator": { - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "network_options": { - "properties": { - "cartes_bancaires": { - "properties": { - "cb_avalgo": { - "enum": [ - "0", - "1", - "2", - "3", - "4", - "A" - ], - "type": "string" - }, - "cb_exemption": { - "maxLength": 4, - "type": "string" - }, - "cb_score": { - "type": "integer" - } - }, - "required": [ - "cb_avalgo" - ], - "title": "cartes_bancaires_network_options_param", - "type": "object" - } - }, - "title": "network_options_param", - "type": "object" - }, - "requestor_challenge_indicator": { - "maxLength": 2, - "type": "string" - }, - "transaction_id": { - "maxLength": 5000, - "type": "string" - }, - "version": { - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - } - }, - "title": "setup_intent_param", - "type": "object" - }, - "card_present": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "paypal": { - "properties": { - "billing_agreement_id": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "mandate_options": { - "properties": {}, - "title": "payment_method_options_mandate_options_param", - "type": "object" - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "us_bank_account": { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "collection_method": { - "enum": [ - "", - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "networks": { - "properties": { - "requested": { - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "networks_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "The list of payment method types (for example, card) that this SetupIntent can use. If you don't provide this, it defaults to [\"card\"].", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "return_url": { - "description": "The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. To redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm).", - "type": "string" - }, - "single_use": { - "description": "If you populate this hash, this SetupIntent generates a `single_use` mandate after successful completion.", - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "setup_intent_single_use_params", - "type": "object" - }, - "usage": { - "description": "Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session`.", - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "use_stripe_sdk": { - "description": "Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/setup_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/setup_intents/{intent}": { - "get": { - "description": "

Retrieves the details of a SetupIntent that has previously been created.

\n\n

Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string.

\n\n

When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the SetupIntent object reference for more details.

", - "operationId": "GetSetupIntentsIntent", - "parameters": [ - { - "description": "The client secret of the SetupIntent. We require this string if you use a publishable key to retrieve the SetupIntent.", - "in": "query", - "name": "client_secret", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/setup_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a SetupIntent object.

", - "operationId": "PostSetupIntentsIntent", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "flow_directions": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "payment_method_types": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "attach_to_self": { - "description": "If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.\n\nIt can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.", - "type": "boolean" - }, - "customer": { - "description": "ID of the Customer this SetupIntent belongs to, if one exists.\n\nIf present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 1000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "flow_directions": { - "description": "Indicates the directions of money movement for which this payment method is intended to be used.\n\nInclude `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.", - "items": { - "enum": [ - "inbound", - "outbound" - ], - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "payment_method": { - "description": "ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. To unset this field to null, pass in an empty string.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_configuration": { - "description": "The ID of the payment method configuration to use with this SetupIntent.", - "maxLength": 100, - "type": "string" - }, - "payment_method_data": { - "description": "When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method)\nvalue in the SetupIntent.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "payment_method_options": { - "description": "Payment method-specific configuration for this SetupIntent.", - "properties": { - "acss_debit": { - "properties": { - "currency": { - "enum": [ - "cad", - "usd" - ], - "type": "string" - }, - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_for": { - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "setup_intent_payment_method_options_mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "amazon_pay": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "card": { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "interval": { - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "reference": { - "maxLength": 80, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "currency", - "interval", - "reference", - "start_date" - ], - "title": "setup_intent_mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "three_d_secure": { - "properties": { - "ares_trans_status": { - "enum": [ - "A", - "C", - "I", - "N", - "R", - "U", - "Y" - ], - "type": "string" - }, - "cryptogram": { - "maxLength": 5000, - "type": "string" - }, - "electronic_commerce_indicator": { - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "network_options": { - "properties": { - "cartes_bancaires": { - "properties": { - "cb_avalgo": { - "enum": [ - "0", - "1", - "2", - "3", - "4", - "A" - ], - "type": "string" - }, - "cb_exemption": { - "maxLength": 4, - "type": "string" - }, - "cb_score": { - "type": "integer" - } - }, - "required": [ - "cb_avalgo" - ], - "title": "cartes_bancaires_network_options_param", - "type": "object" - } - }, - "title": "network_options_param", - "type": "object" - }, - "requestor_challenge_indicator": { - "maxLength": 2, - "type": "string" - }, - "transaction_id": { - "maxLength": 5000, - "type": "string" - }, - "version": { - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - } - }, - "title": "setup_intent_param", - "type": "object" - }, - "card_present": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "paypal": { - "properties": { - "billing_agreement_id": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "mandate_options": { - "properties": {}, - "title": "payment_method_options_mandate_options_param", - "type": "object" - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "us_bank_account": { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "collection_method": { - "enum": [ - "", - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "networks": { - "properties": { - "requested": { - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "networks_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "payment_method_types": { - "description": "The list of payment method types (for example, card) that this SetupIntent can set up. If you don't provide this array, it defaults to [\"card\"].", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/setup_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/setup_intents/{intent}/cancel": { - "post": { - "description": "

You can cancel a SetupIntent object when it’s in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.

\n\n

After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can’t cancel the SetupIntent for a Checkout Session. Expire the Checkout Session instead.

", - "operationId": "PostSetupIntentsIntentCancel", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cancellation_reason": { - "description": "Reason for canceling this SetupIntent. Possible values are: `abandoned`, `requested_by_customer`, or `duplicate`", - "enum": [ - "abandoned", - "duplicate", - "requested_by_customer" - ], - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/setup_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/setup_intents/{intent}/confirm": { - "post": { - "description": "

Confirm that your customer intends to set up the current or\nprovided payment method. For example, you would confirm a SetupIntent\nwhen a customer hits the “Save” button on a payment method management\npage on your website.

\n\n

If the selected payment method does not require any additional\nsteps from the customer, the SetupIntent will transition to the\nsucceeded status.

\n\n

Otherwise, it will transition to the requires_action status and\nsuggest additional actions via next_action. If setup fails,\nthe SetupIntent will transition to the\nrequires_payment_method status or the canceled status if the\nconfirmation limit is reached.

", - "operationId": "PostSetupIntentsIntentConfirm", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "mandate_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "payment_method_options": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "client_secret": { - "description": "The client secret of the SetupIntent.", - "maxLength": 5000, - "type": "string" - }, - "confirmation_token": { - "description": "ID of the ConfirmationToken used to confirm this SetupIntent.\n\nIf the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "mandate_data": { - "anyOf": [ - { - "properties": { - "customer_acceptance": { - "properties": { - "accepted_at": { - "format": "unix-time", - "type": "integer" - }, - "offline": { - "properties": {}, - "title": "offline_param", - "type": "object" - }, - "online": { - "properties": { - "ip_address": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "ip_address", - "user_agent" - ], - "title": "online_param", - "type": "object" - }, - "type": { - "enum": [ - "offline", - "online" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "customer_acceptance_param", - "type": "object" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "secret_key_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - }, - { - "description": "This hash contains details about the Mandate to create", - "properties": { - "customer_acceptance": { - "properties": { - "online": { - "properties": { - "ip_address": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "online_param", - "type": "object" - }, - "type": { - "enum": [ - "online" - ], - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "online", - "type" - ], - "title": "customer_acceptance_param", - "type": "object" - } - }, - "required": [ - "customer_acceptance" - ], - "title": "client_key_param", - "type": "object" - } - ] - }, - "payment_method": { - "description": "ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_data": { - "description": "When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method)\nvalue in the SetupIntent.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "payment_method_options": { - "description": "Payment method-specific configuration for this SetupIntent.", - "properties": { - "acss_debit": { - "properties": { - "currency": { - "enum": [ - "cad", - "usd" - ], - "type": "string" - }, - "mandate_options": { - "properties": { - "custom_mandate_url": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "default_for": { - "items": { - "enum": [ - "invoice", - "subscription" - ], - "type": "string" - }, - "type": "array" - }, - "interval_description": { - "maxLength": 500, - "type": "string" - }, - "payment_schedule": { - "enum": [ - "combined", - "interval", - "sporadic" - ], - "type": "string" - }, - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "setup_intent_payment_method_options_mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "amazon_pay": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "card": { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "interval": { - "enum": [ - "day", - "month", - "sporadic", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - }, - "reference": { - "maxLength": 80, - "type": "string" - }, - "start_date": { - "format": "unix-time", - "type": "integer" - }, - "supported_types": { - "items": { - "enum": [ - "india" - ], - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "amount", - "amount_type", - "currency", - "interval", - "reference", - "start_date" - ], - "title": "setup_intent_mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "three_d_secure": { - "properties": { - "ares_trans_status": { - "enum": [ - "A", - "C", - "I", - "N", - "R", - "U", - "Y" - ], - "type": "string" - }, - "cryptogram": { - "maxLength": 5000, - "type": "string" - }, - "electronic_commerce_indicator": { - "enum": [ - "01", - "02", - "05", - "06", - "07" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "network_options": { - "properties": { - "cartes_bancaires": { - "properties": { - "cb_avalgo": { - "enum": [ - "0", - "1", - "2", - "3", - "4", - "A" - ], - "type": "string" - }, - "cb_exemption": { - "maxLength": 4, - "type": "string" - }, - "cb_score": { - "type": "integer" - } - }, - "required": [ - "cb_avalgo" - ], - "title": "cartes_bancaires_network_options_param", - "type": "object" - } - }, - "title": "network_options_param", - "type": "object" - }, - "requestor_challenge_indicator": { - "maxLength": 2, - "type": "string" - }, - "transaction_id": { - "maxLength": 5000, - "type": "string" - }, - "version": { - "enum": [ - "1.0.2", - "2.1.0", - "2.2.0" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - } - }, - "title": "setup_intent_param", - "type": "object" - }, - "card_present": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "paypal": { - "properties": { - "billing_agreement_id": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "mandate_options": { - "properties": {}, - "title": "payment_method_options_mandate_options_param", - "type": "object" - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - }, - "us_bank_account": { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "title": "linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "return_url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "linked_account_options_param", - "type": "object" - }, - "mandate_options": { - "properties": { - "collection_method": { - "enum": [ - "", - "paper" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "networks": { - "properties": { - "requested": { - "items": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "networks_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "setup_intent_payment_method_options_param", - "type": "object" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - "return_url": { - "description": "The URL to redirect your customer back to after they authenticate on the payment method's app or site.\nIf you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.\nThis parameter is only used for cards and other redirect-based payment methods.", - "type": "string" - }, - "use_stripe_sdk": { - "description": "Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/setup_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/setup_intents/{intent}/verify_microdeposits": { - "post": { - "description": "

Verifies microdeposits on a SetupIntent object.

", - "operationId": "PostSetupIntentsIntentVerifyMicrodeposits", - "parameters": [ - { - "in": "path", - "name": "intent", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "amounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amounts": { - "description": "Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account.", - "items": { - "type": "integer" - }, - "type": "array" - }, - "client_secret": { - "description": "The client secret of the SetupIntent.", - "maxLength": 5000, - "type": "string" - }, - "descriptor_code": { - "description": "A six-character code starting with SM present in the microdeposit sent to the bank account.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/setup_intent" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/shipping_rates": { - "get": { - "description": "

Returns a list of your shipping rates.

", - "operationId": "GetShippingRates", - "parameters": [ - { - "description": "Only return shipping rates that are active or inactive.", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return shipping rates for the given currency.", - "in": "query", - "name": "currency", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/shipping_rate" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/shipping_rates", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ShippingResourcesShippingRateList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new shipping rate object.

", - "operationId": "PostShippingRates", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "delivery_estimate": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "fixed_amount": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "delivery_estimate": { - "description": "The estimated range for how long shipping will take, meant to be displayable to the customer. This will appear on CheckoutSessions.", - "properties": { - "maximum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - }, - "minimum": { - "properties": { - "unit": { - "enum": [ - "business_day", - "day", - "hour", - "month", - "week" - ], - "type": "string" - }, - "value": { - "type": "integer" - } - }, - "required": [ - "unit", - "value" - ], - "title": "delivery_estimate_bound", - "type": "object" - } - }, - "title": "delivery_estimate", - "type": "object" - }, - "display_name": { - "description": "The name of the shipping rate, meant to be displayable to the customer. This will appear on CheckoutSessions.", - "maxLength": 100, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fixed_amount": { - "description": "Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`.", - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "currency_options": { - "additionalProperties": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "required": [ - "amount" - ], - "title": "currency_option", - "type": "object" - }, - "type": "object" - } - }, - "required": [ - "amount", - "currency" - ], - "title": "fixed_amount", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "tax_behavior": { - "description": "Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "tax_code": { - "description": "A [tax code](https://stripe.com/docs/tax/tax-categories) ID. The Shipping tax code is `txcd_92010001`.", - "type": "string" - }, - "type": { - "description": "The type of calculation to use on the shipping rate.", - "enum": [ - "fixed_amount" - ], - "type": "string" - } - }, - "required": [ - "display_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/shipping_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/shipping_rates/{shipping_rate_token}": { - "get": { - "description": "

Returns the shipping rate object with the given ID.

", - "operationId": "GetShippingRatesShippingRateToken", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "shipping_rate_token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/shipping_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing shipping rate object.

", - "operationId": "PostShippingRatesShippingRateToken", - "parameters": [ - { - "in": "path", - "name": "shipping_rate_token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "fixed_amount": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Whether the shipping rate can be used for new purchases. Defaults to `true`.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fixed_amount": { - "description": "Describes a fixed amount to charge for shipping. Must be present if type is `fixed_amount`.", - "properties": { - "currency_options": { - "additionalProperties": { - "properties": { - "amount": { - "type": "integer" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "title": "currency_option_update", - "type": "object" - }, - "type": "object" - } - }, - "title": "fixed_amount_update", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "tax_behavior": { - "description": "Specifies whether the rate is considered inclusive of taxes or exclusive of taxes. One of `inclusive`, `exclusive`, or `unspecified`.", - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/shipping_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sigma/scheduled_query_runs": { - "get": { - "description": "

Returns a list of scheduled query runs.

", - "operationId": "GetSigmaScheduledQueryRuns", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/scheduled_query_run" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/sigma/scheduled_query_runs", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SigmaScheduledQueryRunList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sigma/scheduled_query_runs/{scheduled_query_run}": { - "get": { - "description": "

Retrieves the details of an scheduled query run.

", - "operationId": "GetSigmaScheduledQueryRunsScheduledQueryRun", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "scheduled_query_run", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/scheduled_query_run" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sources": { - "post": { - "description": "

Creates a new source object.

", - "operationId": "PostSources", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "mandate": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "owner": { - "explode": true, - "style": "deepObject" - }, - "receiver": { - "explode": true, - "style": "deepObject" - }, - "redirect": { - "explode": true, - "style": "deepObject" - }, - "source_order": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources. Not supported for `receiver` type sources, where charge amount may not be specified until funds land.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO code for the currency](https://stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready.", - "type": "string" - }, - "customer": { - "description": "The `Customer` to whom the original source is attached to. Must be set when the original source is not a `Source` (e.g., `Card`).", - "maxLength": 500, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "flow": { - "description": "The authentication `flow` of the source to create. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`. It is generally inferred unless a type supports multiple flows.", - "enum": [ - "code_verification", - "none", - "receiver", - "redirect" - ], - "maxLength": 5000, - "type": "string" - }, - "mandate": { - "description": "Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status.", - "properties": { - "acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "offline": { - "properties": { - "contact_email": { - "type": "string" - } - }, - "required": [ - "contact_email" - ], - "title": "mandate_offline_acceptance_params", - "type": "object" - }, - "online": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "mandate_online_acceptance_params", - "type": "object" - }, - "status": { - "enum": [ - "accepted", - "pending", - "refused", - "revoked" - ], - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "offline", - "online" - ], - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "mandate_acceptance_params", - "type": "object" - }, - "amount": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "currency": { - "type": "string" - }, - "interval": { - "enum": [ - "one_time", - "scheduled", - "variable" - ], - "maxLength": 5000, - "type": "string" - }, - "notification_method": { - "enum": [ - "deprecated_none", - "email", - "manual", - "none", - "stripe_email" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "mandate_params", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "original_source": { - "description": "The source to share.", - "maxLength": 5000, - "type": "string" - }, - "owner": { - "description": "Information about the owner of the payment instrument that may be used or required by particular source types.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "source_address", - "type": "object" - }, - "email": { - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "owner", - "type": "object" - }, - "receiver": { - "description": "Optional parameters for the receiver flow. Can be set only if the source is a receiver (`flow` is `receiver`).", - "properties": { - "refund_attributes_method": { - "enum": [ - "email", - "manual", - "none" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "receiver_params", - "type": "object" - }, - "redirect": { - "description": "Parameters required for the redirect flow. Required if the source is authenticated by a redirect (`flow` is `redirect`).", - "properties": { - "return_url": { - "type": "string" - } - }, - "required": [ - "return_url" - ], - "title": "redirect_params", - "type": "object" - }, - "source_order": { - "description": "Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it.", - "properties": { - "items": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 1000, - "type": "string" - }, - "parent": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "type": { - "enum": [ - "discount", - "shipping", - "sku", - "tax" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "order_item_specs", - "type": "object" - }, - "type": "array" - }, - "shipping": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "line1" - ], - "title": "address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address" - ], - "title": "order_shipping", - "type": "object" - } - }, - "title": "shallow_order_specs", - "type": "object" - }, - "statement_descriptor": { - "description": "An arbitrary string to be displayed on your customer's statement. As an example, if your website is `RunClub` and the item you're charging for is a race ticket, you may want to specify a `statement_descriptor` of `RunClub 5K race ticket.` While many payment types will display this information, some may not display it at all.", - "maxLength": 5000, - "type": "string" - }, - "token": { - "description": "An optional token used to create the source. When passed, token properties will override source parameters.", - "maxLength": 5000, - "type": "string" - }, - "type": { - "description": "The `type` of the source to create. Required unless `customer` and `original_source` are specified (see the [Cloning card Sources](https://stripe.com/docs/sources/connect#cloning-card-sources) guide)", - "maxLength": 5000, - "type": "string" - }, - "usage": { - "enum": [ - "reusable", - "single_use" - ], - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sources/{source}": { - "get": { - "description": "

Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information.

", - "operationId": "GetSourcesSource", - "parameters": [ - { - "description": "The client secret of the source. Required if a publishable key is used to retrieve the source.", - "in": "query", - "name": "client_secret", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "source", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

\n\n

This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our payment method guides for more detail.

", - "operationId": "PostSourcesSource", - "parameters": [ - { - "in": "path", - "name": "source", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "mandate": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "owner": { - "explode": true, - "style": "deepObject" - }, - "source_order": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount associated with the source.", - "type": "integer" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "mandate": { - "description": "Information about a mandate possibility attached to a source object (generally for bank debits) as well as its acceptance status.", - "properties": { - "acceptance": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "offline": { - "properties": { - "contact_email": { - "type": "string" - } - }, - "required": [ - "contact_email" - ], - "title": "mandate_offline_acceptance_params", - "type": "object" - }, - "online": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "mandate_online_acceptance_params", - "type": "object" - }, - "status": { - "enum": [ - "accepted", - "pending", - "refused", - "revoked" - ], - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "offline", - "online" - ], - "maxLength": 5000, - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "status" - ], - "title": "mandate_acceptance_params", - "type": "object" - }, - "amount": { - "anyOf": [ - { - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "currency": { - "type": "string" - }, - "interval": { - "enum": [ - "one_time", - "scheduled", - "variable" - ], - "maxLength": 5000, - "type": "string" - }, - "notification_method": { - "enum": [ - "deprecated_none", - "email", - "manual", - "none", - "stripe_email" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "mandate_params", - "type": "object" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "owner": { - "description": "Information about the owner of the payment instrument that may be used or required by particular source types.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "source_address", - "type": "object" - }, - "email": { - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "owner", - "type": "object" - }, - "source_order": { - "description": "Information about the items and shipping associated with the source. Required for transactional credit (for example Klarna) sources before you can charge it.", - "properties": { - "items": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "currency": { - "type": "string" - }, - "description": { - "maxLength": 1000, - "type": "string" - }, - "parent": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "type": { - "enum": [ - "discount", - "shipping", - "sku", - "tax" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "order_item_specs", - "type": "object" - }, - "type": "array" - }, - "shipping": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "line1" - ], - "title": "address", - "type": "object" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "tracking_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "address" - ], - "title": "order_shipping", - "type": "object" - } - }, - "title": "order_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sources/{source}/mandate_notifications/{mandate_notification}": { - "get": { - "description": "

Retrieves a new Source MandateNotification.

", - "operationId": "GetSourcesSourceMandateNotificationsMandateNotification", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "mandate_notification", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "source", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/source_mandate_notification" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sources/{source}/source_transactions": { - "get": { - "description": "

List source transactions for a given source.

", - "operationId": "GetSourcesSourceSourceTransactions", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "in": "path", - "name": "source", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/source_transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "ApmsSourcesSourceTransactionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sources/{source}/source_transactions/{source_transaction}": { - "get": { - "description": "

Retrieve an existing source transaction object. Supply the unique source ID from a source creation request and the source transaction ID and Stripe will return the corresponding up-to-date source object information.

", - "operationId": "GetSourcesSourceSourceTransactionsSourceTransaction", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "source", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "source_transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/source_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/sources/{source}/verify": { - "post": { - "description": "

Verify a given source.

", - "operationId": "PostSourcesSourceVerify", - "parameters": [ - { - "in": "path", - "name": "source", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "values": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "values": { - "description": "The values needed to verify the source.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "values" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/source" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_items": { - "get": { - "description": "

Returns a list of your subscription items for a given subscription.

", - "operationId": "GetSubscriptionItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "The ID of the subscription whose items will be retrieved.", - "in": "query", - "name": "subscription", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/subscription_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/subscription_items", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SubscriptionsItemsSubscriptionItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Adds a new item to an existing subscription. No existing items will be changed or replaced.

", - "operationId": "PostSubscriptionItems", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "billing_thresholds": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "price_data": { - "explode": true, - "style": "deepObject" - }, - "tax_rates": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the subscription item." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "payment_behavior": { - "description": "Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.\n\nUse `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method.\n\nUse `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes).\n\nUse `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more.", - "enum": [ - "allow_incomplete", - "default_incomplete", - "error_if_incomplete", - "pending_if_incomplete" - ], - "type": "string" - }, - "price": { - "description": "The ID of the price object.", - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "description": "Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline.", - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "description": "If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint.", - "format": "unix-time", - "type": "integer" - }, - "quantity": { - "description": "The quantity you'd like to apply to the subscription item you're creating.", - "type": "integer" - }, - "subscription": { - "description": "The identifier of the subscription to modify.", - "maxLength": 5000, - "type": "string" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates." - } - }, - "required": [ - "subscription" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_items/{item}": { - "delete": { - "description": "

Deletes an item from the subscription. Removing a subscription item from a subscription will not cancel the subscription.

", - "operationId": "DeleteSubscriptionItemsItem", - "parameters": [ - { - "in": "path", - "name": "item", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": { - "clear_usage": { - "description": "Delete all usage for the given subscription item. Allowed only when the current plan's `usage_type` is `metered`.", - "type": "boolean" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "description": "If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint.", - "format": "unix-time", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_subscription_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the subscription item with the given ID.

", - "operationId": "GetSubscriptionItemsItem", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "item", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the plan or quantity of an item on a current subscription.

", - "operationId": "PostSubscriptionItemsItem", - "parameters": [ - { - "in": "path", - "name": "item", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "billing_thresholds": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "price_data": { - "explode": true, - "style": "deepObject" - }, - "tax_rates": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. When updating, pass an empty string to remove previously-defined thresholds." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the subscription item." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "off_session": { - "description": "Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session).", - "type": "boolean" - }, - "payment_behavior": { - "description": "Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.\n\nUse `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method.\n\nUse `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes).\n\nUse `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more.", - "enum": [ - "allow_incomplete", - "default_incomplete", - "error_if_incomplete", - "pending_if_incomplete" - ], - "type": "string" - }, - "price": { - "description": "The ID of the price object. One of `price` or `price_data` is required. When changing a subscription item's price, `quantity` is set to 1 unless a `quantity` parameter is provided.", - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "description": "Data used to generate a new [Price](https://stripe.com/docs/api/prices) object inline. One of `price` or `price_data` is required.", - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "description": "If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply the same proration that was previewed with the [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint.", - "format": "unix-time", - "type": "integer" - }, - "quantity": { - "description": "The quantity you'd like to apply to the subscription item you're creating.", - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A list of [Tax Rate](https://stripe.com/docs/api/tax_rates) ids. These Tax Rates will override the [`default_tax_rates`](https://stripe.com/docs/api/subscriptions/create#create_subscription-default_tax_rates) on the Subscription. When updating, pass an empty string to remove previously-defined tax rates." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_item" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_items/{subscription_item}/usage_record_summaries": { - "get": { - "description": "

For the specified subscription item, returns a list of summary objects. Each object in the list provides usage information that’s been summarized from multiple usage records and over a subscription billing period (e.g., 15 usage records in the month of September).

\n\n

The list is sorted in reverse-chronological order (newest first). The first list item represents the most current usage period that hasn’t ended yet. Since new usage records can still be added, the returned summary information for the subscription item’s ID should be seen as unstable until the subscription billing period ends.

", - "operationId": "GetSubscriptionItemsSubscriptionItemUsageRecordSummaries", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "in": "path", - "name": "subscription_item", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/usage_record_summary" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "UsageEventsResourceUsageRecordSummaryList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_items/{subscription_item}/usage_records": { - "post": { - "description": "

Creates a usage record for a specified subscription item and date, and fills it with a quantity.

\n\n

Usage records provide quantity information that Stripe uses to track how much a customer is using your service. With usage information and the pricing model set up by the metered billing plan, Stripe helps you send accurate invoices to your customers.

\n\n

The default calculation for usage is to add up all the quantity values of the usage records within a billing period. You can change this default behavior with the billing plan’s aggregate_usage parameter. When there is more than one usage record with the same timestamp, Stripe adds the quantity values together. In most cases, this is the desired resolution, however, you can change this behavior with the action parameter.

\n\n

The default pricing model for metered billing is per-unit pricing. For finer granularity, you can configure metered billing to have a tiered pricing model.

", - "operationId": "PostSubscriptionItemsSubscriptionItemUsageRecords", - "parameters": [ - { - "in": "path", - "name": "subscription_item", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "timestamp": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "action": { - "description": "Valid values are `increment` (default) or `set`. When using `increment` the specified `quantity` will be added to the usage at the specified timestamp. The `set` action will overwrite the usage quantity at that timestamp. If the subscription has [billing thresholds](https://stripe.com/docs/api/subscriptions/object#subscription_object-billing_thresholds), `increment` is the only allowed value.", - "enum": [ - "increment", - "set" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "quantity": { - "description": "The usage quantity for the specified timestamp.", - "type": "integer" - }, - "timestamp": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "The timestamp for the usage event. This timestamp must be within the current billing period of the subscription of the provided `subscription_item`, and must not be in the future. When passing `\"now\"`, Stripe records usage for the current time. Default is `\"now\"` if a value is not provided." - } - }, - "required": [ - "quantity" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/usage_record" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_schedules": { - "get": { - "description": "

Retrieves the list of your subscription schedules.

", - "operationId": "GetSubscriptionSchedules", - "parameters": [ - { - "description": "Only return subscription schedules that were created canceled the given date interval.", - "explode": true, - "in": "query", - "name": "canceled_at", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return subscription schedules that completed during the given date interval.", - "explode": true, - "in": "query", - "name": "completed_at", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return subscription schedules that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return subscription schedules for the given customer.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return subscription schedules that were released during the given date interval.", - "explode": true, - "in": "query", - "name": "released_at", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return subscription schedules that have not started yet.", - "in": "query", - "name": "scheduled", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/subscription_schedule" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/subscription_schedules", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SubscriptionSchedulesResourceScheduleList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.

", - "operationId": "PostSubscriptionSchedules", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "default_settings": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "phases": { - "explode": true, - "style": "deepObject" - }, - "start_date": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer": { - "description": "The identifier of the customer to create the subscription schedule for.", - "maxLength": 5000, - "type": "string" - }, - "default_settings": { - "description": "Object representing the subscription schedule's default settings.", - "properties": { - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "subscription_schedule_default_settings_param", - "type": "object" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "default_settings_params", - "type": "object" - }, - "end_behavior": { - "description": "Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.", - "enum": [ - "cancel", - "none", - "release", - "renew" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "from_subscription": { - "description": "Migrate an existing subscription to be managed by a subscription schedule. If this parameter is set, a subscription schedule will be created using the subscription's item(s), set to auto-renew using the subscription's interval. When using this parameter, other parameters (such as phase values) cannot be set. To create a subscription schedule with other modifications, we recommend making two separate API calls.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "phases": { - "description": "List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase.", - "items": { - "properties": { - "add_invoice_items": { - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "end_date": { - "format": "unix-time", - "type": "integer" - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings", - "type": "object" - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "configuration_item_params", - "type": "object" - }, - "type": "array" - }, - "iterations": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial": { - "type": "boolean" - }, - "trial_end": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "items" - ], - "title": "phase_configuration_params", - "type": "object" - }, - "type": "array" - }, - "start_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ], - "description": "When the subscription schedule starts. We recommend using `now` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_schedule" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_schedules/{schedule}": { - "get": { - "description": "

Retrieves the details of an existing subscription schedule. You only need to supply the unique subscription schedule identifier that was returned upon subscription schedule creation.

", - "operationId": "GetSubscriptionSchedulesSchedule", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "schedule", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_schedule" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing subscription schedule.

", - "operationId": "PostSubscriptionSchedulesSchedule", - "parameters": [ - { - "in": "path", - "name": "schedule", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "default_settings": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "phases": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "default_settings": { - "description": "Object representing the subscription schedule's default settings.", - "properties": { - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "subscription_schedule_default_settings_param", - "type": "object" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "default_settings_params", - "type": "object" - }, - "end_behavior": { - "description": "Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` or `cancel` with the default being `release`. `release` will end the subscription schedule and keep the underlying subscription running. `cancel` will end the subscription schedule and cancel the underlying subscription.", - "enum": [ - "cancel", - "none", - "release", - "renew" - ], - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "phases": { - "description": "List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the `end_date` of one phase will always equal the `start_date` of the next phase. Note that past phases can be omitted.", - "items": { - "properties": { - "add_invoice_items": { - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "type": "number" - }, - "automatic_tax": { - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "enum": [ - "automatic", - "phase_start" - ], - "type": "string" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "collection_method": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "default_payment_method": { - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "end_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "invoice_settings": { - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "days_until_due": { - "type": "integer" - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings", - "type": "object" - }, - "items": { - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "configuration_item_params", - "type": "object" - }, - "type": "array" - }, - "iterations": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "on_behalf_of": { - "type": "string" - }, - "proration_behavior": { - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "start_date": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - }, - "transfer_data": { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial": { - "type": "boolean" - }, - "trial_end": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - } - ] - } - }, - "required": [ - "items" - ], - "title": "phase_configuration_params", - "type": "object" - }, - "type": "array" - }, - "proration_behavior": { - "description": "If the update changes the current phase, indicates whether the changes should be prorated. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_schedule" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_schedules/{schedule}/cancel": { - "post": { - "description": "

Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active.

", - "operationId": "PostSubscriptionSchedulesScheduleCancel", - "parameters": [ - { - "in": "path", - "name": "schedule", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_now": { - "description": "If the subscription schedule is `active`, indicates if a final invoice will be generated that contains any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true`.", - "type": "boolean" - }, - "prorate": { - "description": "If the subscription schedule is `active`, indicates if the cancellation should be prorated. Defaults to `true`.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_schedule" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscription_schedules/{schedule}/release": { - "post": { - "description": "

Releases the subscription schedule immediately, which will stop scheduling of its phases, but leave any existing subscription in place. A schedule can only be released if its status is not_started or active. If the subscription schedule is currently associated with a subscription, releasing it will remove its subscription property and set the subscription’s ID to the released_subscription property.

", - "operationId": "PostSubscriptionSchedulesScheduleRelease", - "parameters": [ - { - "in": "path", - "name": "schedule", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "preserve_cancel_date": { - "description": "Keep any cancellation on the subscription that the schedule has set", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription_schedule" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscriptions": { - "get": { - "description": "

By default, returns a list of subscriptions that have not been canceled. In order to list canceled subscriptions, specify status=canceled.

", - "operationId": "GetSubscriptions", - "parameters": [ - { - "description": "Filter subscriptions by their automatic tax settings.", - "explode": true, - "in": "query", - "name": "automatic_tax", - "required": false, - "schema": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_filter_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "The collection method of the subscriptions to retrieve. Either `charge_automatically` or `send_invoice`.", - "in": "query", - "name": "collection_method", - "required": false, - "schema": { - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return subscriptions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "explode": true, - "in": "query", - "name": "current_period_end", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "explode": true, - "in": "query", - "name": "current_period_start", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "The ID of the customer whose subscriptions will be retrieved.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Filter for subscriptions that contain this recurring price ID.", - "in": "query", - "name": "price", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The status of the subscriptions to retrieve. Passing in a value of `canceled` will return all canceled subscriptions, including those belonging to deleted customers. Pass `ended` to find subscriptions that are canceled and subscriptions that are expired due to [incomplete payment](https://stripe.com/docs/billing/subscriptions/overview#subscription-statuses). Passing in a value of `all` will return subscriptions of all statuses. If no value is supplied, all subscriptions that have not been canceled are returned.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "all", - "canceled", - "ended", - "incomplete", - "incomplete_expired", - "past_due", - "paused", - "trialing", - "unpaid" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "Filter for subscriptions that are associated with the specified test clock. The response will not include subscriptions with test clocks if this and the customer parameter is not set.", - "in": "query", - "name": "test_clock", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/subscription" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/subscriptions", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SubscriptionsSubscriptionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new subscription on an existing customer. Each customer can have up to 500 active or scheduled subscriptions.

\n\n

When you create a subscription with collection_method=charge_automatically, the first invoice is finalized as part of the request.\nThe payment_behavior parameter determines the exact behavior of the initial payment.

\n\n

To start subscriptions where the first invoice always begins in a draft status, use subscription schedules instead.\nSchedules provide the flexibility to model more complex billing configurations that change over time.

", - "operationId": "PostSubscriptions", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "add_invoice_items": { - "explode": true, - "style": "deepObject" - }, - "application_fee_percent": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "billing_cycle_anchor_config": { - "explode": true, - "style": "deepObject" - }, - "billing_thresholds": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "on_behalf_of": { - "explode": true, - "style": "deepObject" - }, - "payment_settings": { - "explode": true, - "style": "deepObject" - }, - "pending_invoice_item_interval": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - }, - "trial_end": { - "explode": true, - "style": "deepObject" - }, - "trial_settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "add_invoice_items": { - "description": "A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items.", - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions)." - }, - "automatic_tax": { - "description": "Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "backdate_start_date": { - "description": "For new subscriptions, a past timestamp to backdate the subscription's start date to. If set, the first invoice will contain a proration for the timespan between the start date and the current time. Can be combined with trials and the billing cycle anchor.", - "format": "unix-time", - "type": "integer" - }, - "billing_cycle_anchor": { - "description": "A future timestamp in UTC format to anchor the subscription's [billing cycle](https://stripe.com/docs/subscriptions/billing-cycle). The anchor is the reference point that aligns future billing cycle dates. It sets the day of week for `week` intervals, the day of month for `month` and `year` intervals, and the month of year for `year` intervals.", - "format": "unix-time", - "type": "integer", - "x-stripeBypassValidation": true - }, - "billing_cycle_anchor_config": { - "description": "Mutually exclusive with billing_cycle_anchor and only valid with monthly and yearly price intervals. When provided, the billing_cycle_anchor is set to the next occurence of the day_of_month at the hour, minute, and second UTC.", - "properties": { - "day_of_month": { - "type": "integer" - }, - "hour": { - "type": "integer" - }, - "minute": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "second": { - "type": "integer" - } - }, - "required": [ - "day_of_month" - ], - "title": "billing_cycle_anchor_config_param", - "type": "object" - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds." - }, - "cancel_at": { - "description": "A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period.", - "format": "unix-time", - "type": "integer" - }, - "cancel_at_period_end": { - "description": "Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.", - "type": "boolean" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "description": "The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "The identifier of the customer to subscribe.", - "maxLength": 5000, - "type": "string" - }, - "days_until_due": { - "description": "Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`.", - "type": "integer" - }, - "default_payment_method": { - "description": "ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "maxLength": 5000, - "type": "string" - }, - "default_source": { - "description": "ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "maxLength": 5000, - "type": "string" - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription." - }, - "description": { - "description": "The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs.", - "maxLength": 500, - "type": "string" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_settings": { - "description": "All invoices will be billed using the specified settings.", - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings_param", - "type": "object" - }, - "items": { - "description": "A list of up to 20 subscription items, each with an attached price.", - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_create_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "off_session": { - "description": "Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session).", - "type": "boolean" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account on behalf of which to charge, for each of the subscription's invoices." - }, - "payment_behavior": { - "description": "Only applies to subscriptions with `collection_method=charge_automatically`.\n\nUse `allow_incomplete` to create Subscriptions with `status=incomplete` if the first invoice can't be paid. Creating Subscriptions with this status allows you to manage scenarios where additional customer actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.\n\nUse `default_incomplete` to create Subscriptions with `status=incomplete` when the first invoice requires payment, otherwise start as active. Subscriptions transition to `status=active` when successfully confirming the PaymentIntent on the first invoice. This allows simpler management of scenarios where additional customer actions are needed to pay a subscription’s invoice, such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method. If the PaymentIntent is not confirmed within 23 hours Subscriptions transition to `status=incomplete_expired`, which is a terminal state.\n\nUse `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's first invoice can't be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further customer action is needed, this parameter doesn't create a Subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more.\n\n`pending_if_incomplete` is only used with updates and cannot be passed when creating a Subscription.\n\nSubscriptions with `collection_method=send_invoice` are automatically activated regardless of the first Invoice status.", - "enum": [ - "allow_incomplete", - "default_incomplete", - "error_if_incomplete", - "pending_if_incomplete" - ], - "type": "string" - }, - "payment_settings": { - "description": "Payment settings to pass to invoices created by the subscription.", - "properties": { - "payment_method_options": { - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string" - } - }, - "title": "subscription_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_param", - "type": "object" - }, - "type": { - "type": "string" - } - }, - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "save_default_payment_method": { - "enum": [ - "off", - "on_subscription" - ], - "type": "string" - } - }, - "title": "payment_settings", - "type": "object" - }, - "pending_invoice_item_interval": { - "anyOf": [ - { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "pending_invoice_item_interval_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval." - }, - "promotion_code": { - "description": "The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) resulting from the `billing_cycle_anchor`. If no value is passed, the default is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "transfer_data": { - "description": "If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges.", - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more." - }, - "trial_from_plan": { - "description": "Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "type": "boolean" - }, - "trial_period_days": { - "description": "Integer representing the number of trial period days before the customer is charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "type": "integer" - }, - "trial_settings": { - "description": "Settings related to subscription trials.", - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "required": [ - "customer" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscriptions/search": { - "get": { - "description": "

Search for subscriptions you’ve previously created using Stripe’s Search Query Language.\nDon’t use search in read-after-write flows where strict consistency is necessary. Under normal operating\nconditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up\nto an hour behind during outages. Search functionality is not available to merchants in India.

", - "operationId": "GetSubscriptionsSearch", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for pagination across multiple pages of results. Don't include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.", - "in": "query", - "name": "page", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The search query string. See [search query language](https://stripe.com/docs/search#search-query-language) and the list of supported [query fields for subscriptions](https://stripe.com/docs/search#query-fields-for-subscriptions).", - "in": "query", - "name": "query", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/subscription" - }, - "type": "array" - }, - "has_more": { - "type": "boolean" - }, - "next_page": { - "maxLength": 5000, - "nullable": true, - "type": "string" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value.", - "enum": [ - "search_result" - ], - "type": "string" - }, - "total_count": { - "description": "The total number of objects that match the query, only accurate up to 10,000.", - "type": "integer" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "SearchResult", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscriptions/{subscription_exposed_id}": { - "delete": { - "description": "

Cancels a customer’s subscription immediately. The customer will not be charged again for the subscription.

\n\n

Note, however, that any pending invoice items that you’ve created will still be charged for at the end of the period, unless manually deleted. If you’ve set the subscription to cancel at the end of the period, any pending prorations will also be left in place and collected at the end of the period. But if the subscription is set to cancel immediately, pending prorations will be removed.

\n\n

By default, upon subscription cancellation, Stripe will stop automatic collection of all finalized invoices for the customer. This is intended to prevent unexpected payment attempts after the customer has canceled a subscription. However, you can resume automatic collection of the invoices manually after subscription cancellation to have us proceed. Or, you could check for unpaid invoices before allowing the customer to cancel the subscription at all.

", - "operationId": "DeleteSubscriptionsSubscriptionExposedId", - "parameters": [ - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "cancellation_details": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cancellation_details": { - "description": "Details about why this subscription was cancelled", - "properties": { - "comment": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "feedback": { - "enum": [ - "", - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - } - }, - "title": "cancellation_details_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_now": { - "description": "Will generate a final invoice that invoices for any un-invoiced metered usage and new/pending proration invoice items. Defaults to `true`.", - "type": "boolean" - }, - "prorate": { - "description": "Will generate a proration invoice item that credits remaining unused time until the subscription period end. Defaults to `false`.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the subscription with the given ID.

", - "operationId": "GetSubscriptionsSubscriptionExposedId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing subscription to match the specified parameters.\nWhen changing prices or quantities, we optionally prorate the price we charge next month to make up for any price changes.\nTo preview how the proration is calculated, use the create preview endpoint.

\n\n

By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a 100 price, they’ll be billed 100 immediately. If on May 15 they switch to a 200 price, then on June 1 they’ll be billed 250 (200 for a renewal of her subscription, plus a 50 prorating adjustment for half of the previous month’s 100 difference). Similarly, a downgrade generates a credit that is applied to the next invoice. We also prorate when you make quantity changes.

\n\n

Switching prices does not normally change the billing date or generate an immediate charge unless:

\n\n
    \n
  • The billing interval is changed (for example, from monthly to yearly).
  • \n
  • The subscription moves from free to paid.
  • \n
  • A trial starts or ends.
  • \n
\n\n

In these cases, we apply a credit for the unused time on the previous price, immediately charge the customer using the new price, and reset the billing date. Learn about how Stripe immediately attempts payment for subscription changes.

\n\n

If you want to charge for an upgrade immediately, pass proration_behavior as always_invoice to create prorations, automatically invoice the customer for those proration adjustments, and attempt to collect payment. If you pass create_prorations, the prorations are created but not automatically invoiced. If you want to bill the customer for the prorations before the subscription’s renewal date, you need to manually invoice the customer.

\n\n

If you don’t want to prorate, set the proration_behavior option to none. With this option, the customer is billed 100 on May 1 and 200 on June 1. Similarly, if you set proration_behavior to none when switching between different billing intervals (for example, from monthly to yearly), we don’t generate any credits for the old subscription’s unused time. We still reset the billing date and bill immediately for the new subscription.

\n\n

Updating the quantity on a subscription many times in an hour may result in rate limiting. If you need to bill for a frequently changing quantity, consider integrating usage-based billing instead.

", - "operationId": "PostSubscriptionsSubscriptionExposedId", - "parameters": [ - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "add_invoice_items": { - "explode": true, - "style": "deepObject" - }, - "application_fee_percent": { - "explode": true, - "style": "deepObject" - }, - "automatic_tax": { - "explode": true, - "style": "deepObject" - }, - "billing_thresholds": { - "explode": true, - "style": "deepObject" - }, - "cancel_at": { - "explode": true, - "style": "deepObject" - }, - "cancellation_details": { - "explode": true, - "style": "deepObject" - }, - "default_source": { - "explode": true, - "style": "deepObject" - }, - "default_tax_rates": { - "explode": true, - "style": "deepObject" - }, - "description": { - "explode": true, - "style": "deepObject" - }, - "discounts": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "invoice_settings": { - "explode": true, - "style": "deepObject" - }, - "items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "on_behalf_of": { - "explode": true, - "style": "deepObject" - }, - "pause_collection": { - "explode": true, - "style": "deepObject" - }, - "payment_settings": { - "explode": true, - "style": "deepObject" - }, - "pending_invoice_item_interval": { - "explode": true, - "style": "deepObject" - }, - "transfer_data": { - "explode": true, - "style": "deepObject" - }, - "trial_end": { - "explode": true, - "style": "deepObject" - }, - "trial_settings": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "add_invoice_items": { - "description": "A list of prices and quantities that will generate invoice items appended to the next invoice for this subscription. You may pass up to 20 items.", - "items": { - "properties": { - "discounts": { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product" - ], - "title": "one_time_price_data_with_negative_amounts", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "add_invoice_item_entry", - "type": "object" - }, - "type": "array" - }, - "application_fee_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice total that will be transferred to the application owner's Stripe account. The request must be made by a platform account on a connected account in order to set an application fee percentage. For more information, see the application fees [documentation](https://stripe.com/docs/connect/subscriptions#collecting-fees-on-subscriptions)." - }, - "automatic_tax": { - "description": "Automatic tax settings for this subscription. We recommend you only include this parameter when the existing value is being changed.", - "properties": { - "enabled": { - "type": "boolean" - }, - "liability": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "required": [ - "enabled" - ], - "title": "automatic_tax_config", - "type": "object" - }, - "billing_cycle_anchor": { - "description": "Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).", - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "amount_gte": { - "type": "integer" - }, - "reset_billing_cycle_anchor": { - "type": "boolean" - } - }, - "title": "billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period. Pass an empty string to remove previously-defined thresholds." - }, - "cancel_at": { - "anyOf": [ - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "A timestamp at which the subscription should cancel. If set to a date before the current period ends, this will cause a proration if prorations have been enabled using `proration_behavior`. If set during a future period, this will always cause a proration for that period." - }, - "cancel_at_period_end": { - "description": "Indicate whether this subscription should cancel at the end of the current period (`current_period_end`). Defaults to `false`.", - "type": "boolean" - }, - "cancellation_details": { - "description": "Details about why this subscription was cancelled", - "properties": { - "comment": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "feedback": { - "enum": [ - "", - "customer_service", - "low_quality", - "missing_features", - "other", - "switched_service", - "too_complex", - "too_expensive", - "unused" - ], - "type": "string" - } - }, - "title": "cancellation_details_param", - "type": "object" - }, - "collection_method": { - "description": "Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions and mark the subscription as `active`. Defaults to `charge_automatically`.", - "enum": [ - "charge_automatically", - "send_invoice" - ], - "type": "string" - }, - "coupon": { - "description": "The ID of the coupon to apply to this subscription. A coupon applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "days_until_due": { - "description": "Number of days a customer has to pay invoices generated by this subscription. Valid only for subscriptions where `collection_method` is set to `send_invoice`.", - "type": "integer" - }, - "default_payment_method": { - "description": "ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source).", - "maxLength": 5000, - "type": "string" - }, - "default_source": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "ID of the default payment source for the subscription. It must belong to the customer associated with the subscription and be in a chargeable state. If `default_payment_method` is also set, `default_payment_method` will take precedence. If neither are set, invoices will use the customer's [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/object#customer_object-invoice_settings-default_payment_method) or [default_source](https://stripe.com/docs/api/customers/object#customer_object-default_source)." - }, - "default_tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The tax rates that will apply to any subscription item that does not have `tax_rates` set. Invoices created will have their `default_tax_rates` populated from the subscription. Pass an empty string to remove previously-defined tax rates." - }, - "description": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The subscription's description, meant to be displayable to the customer. Use this field to optionally store an explanation of the subscription for rendering in Stripe surfaces and certain local payment methods UIs." - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The coupons to redeem into discounts for the subscription. If not specified or empty, inherits the discount from the subscription's customer." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "invoice_settings": { - "description": "All invoices will be billed using the specified settings.", - "properties": { - "account_tax_ids": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "issuer": { - "properties": { - "account": { - "type": "string" - }, - "type": { - "enum": [ - "account", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "param", - "type": "object" - } - }, - "title": "invoice_settings_param", - "type": "object" - }, - "items": { - "description": "A list of up to 20 subscription items, each with an attached price.", - "items": { - "properties": { - "billing_thresholds": { - "anyOf": [ - { - "properties": { - "usage_gte": { - "type": "integer" - } - }, - "required": [ - "usage_gte" - ], - "title": "item_billing_thresholds_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "clear_usage": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "discounts": { - "anyOf": [ - { - "items": { - "properties": { - "coupon": { - "maxLength": 5000, - "type": "string" - }, - "discount": { - "maxLength": 5000, - "type": "string" - }, - "promotion_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "discounts_data_param", - "type": "object" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "id": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "price": { - "maxLength": 5000, - "type": "string" - }, - "price_data": { - "properties": { - "currency": { - "type": "string" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "recurring": { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "recurring_adhoc", - "type": "object" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "unspecified" - ], - "type": "string" - }, - "unit_amount": { - "type": "integer" - }, - "unit_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "required": [ - "currency", - "product", - "recurring" - ], - "title": "recurring_price_data", - "type": "object" - }, - "quantity": { - "type": "integer" - }, - "tax_rates": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "subscription_item_update_params", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "off_session": { - "description": "Indicates if a customer is on or off-session while an invoice payment is attempted. Defaults to `false` (on-session).", - "type": "boolean" - }, - "on_behalf_of": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The account on behalf of which to charge, for each of the subscription's invoices." - }, - "pause_collection": { - "anyOf": [ - { - "properties": { - "behavior": { - "enum": [ - "keep_as_draft", - "mark_uncollectible", - "void" - ], - "type": "string" - }, - "resumes_at": { - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "behavior" - ], - "title": "pause_collection_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "If specified, payment collection for this subscription will be paused. Note that the subscription status will be unchanged and will not be updated to `paused`. Learn more about [pausing collection](/billing/subscriptions/pause-payment)." - }, - "payment_behavior": { - "description": "Use `allow_incomplete` to transition the subscription to `status=past_due` if a payment is required but cannot be paid. This allows you to manage scenarios where additional user actions are needed to pay a subscription's invoice. For example, SCA regulation may require 3DS authentication to complete payment. See the [SCA Migration Guide](https://stripe.com/docs/billing/migration/strong-customer-authentication) for Billing to learn more. This is the default behavior.\n\nUse `default_incomplete` to transition the subscription to `status=past_due` when payment is required and await explicit confirmation of the invoice's payment intent. This allows simpler management of scenarios where additional user actions are needed to pay a subscription’s invoice. Such as failed payments, [SCA regulation](https://stripe.com/docs/billing/migration/strong-customer-authentication), or collecting a mandate for a bank debit payment method.\n\nUse `pending_if_incomplete` to update the subscription using [pending updates](https://stripe.com/docs/billing/subscriptions/pending-updates). When you use `pending_if_incomplete` you can only pass the parameters [supported by pending updates](https://stripe.com/docs/billing/pending-updates-reference#supported-attributes).\n\nUse `error_if_incomplete` if you want Stripe to return an HTTP 402 status code if a subscription's invoice cannot be paid. For example, if a payment method requires 3DS authentication due to SCA regulation and further user action is needed, this parameter does not update the subscription and returns an error instead. This was the default behavior for API versions prior to 2019-03-14. See the [changelog](https://stripe.com/docs/upgrades#2019-03-14) to learn more.", - "enum": [ - "allow_incomplete", - "default_incomplete", - "error_if_incomplete", - "pending_if_incomplete" - ], - "type": "string" - }, - "payment_settings": { - "description": "Payment settings to pass to invoices created by the subscription.", - "properties": { - "payment_method_options": { - "properties": { - "acss_debit": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "transaction_type": { - "enum": [ - "business", - "personal" - ], - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "bancontact": { - "anyOf": [ - { - "properties": { - "preferred_language": { - "enum": [ - "de", - "en", - "fr", - "nl" - ], - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "card": { - "anyOf": [ - { - "properties": { - "mandate_options": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_type": { - "enum": [ - "fixed", - "maximum" - ], - "type": "string" - }, - "description": { - "maxLength": 200, - "type": "string" - } - }, - "title": "mandate_options_param", - "type": "object" - }, - "network": { - "enum": [ - "amex", - "cartes_bancaires", - "diners", - "discover", - "eftpos_au", - "interac", - "jcb", - "mastercard", - "unionpay", - "unknown", - "visa" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "request_three_d_secure": { - "enum": [ - "any", - "automatic", - "challenge" - ], - "type": "string" - } - }, - "title": "subscription_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "customer_balance": { - "anyOf": [ - { - "properties": { - "bank_transfer": { - "properties": { - "eu_bank_transfer": { - "properties": { - "country": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "eu_bank_transfer_param", - "type": "object" - }, - "type": { - "type": "string" - } - }, - "title": "bank_transfer_param", - "type": "object" - }, - "funding_type": { - "type": "string" - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "konbini": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "sepa_debit": { - "anyOf": [ - { - "properties": {}, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "us_bank_account": { - "anyOf": [ - { - "properties": { - "financial_connections": { - "properties": { - "filters": { - "properties": { - "account_subcategories": { - "items": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_filters_param", - "type": "object" - }, - "permissions": { - "items": { - "enum": [ - "balances", - "ownership", - "payment_method", - "transactions" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "prefetch": { - "items": { - "enum": [ - "balances", - "ownership", - "transactions" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - } - }, - "title": "invoice_linked_account_options_param", - "type": "object" - }, - "verification_method": { - "enum": [ - "automatic", - "instant", - "microdeposits" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "invoice_payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "payment_method_types": { - "anyOf": [ - { - "items": { - "enum": [ - "ach_credit_transfer", - "ach_debit", - "acss_debit", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "boleto", - "card", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "konbini", - "link", - "multibanco", - "p24", - "paynow", - "paypal", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "us_bank_account", - "wechat_pay" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "save_default_payment_method": { - "enum": [ - "off", - "on_subscription" - ], - "type": "string" - } - }, - "title": "payment_settings", - "type": "object" - }, - "pending_invoice_item_interval": { - "anyOf": [ - { - "properties": { - "interval": { - "enum": [ - "day", - "month", - "week", - "year" - ], - "type": "string" - }, - "interval_count": { - "type": "integer" - } - }, - "required": [ - "interval" - ], - "title": "pending_invoice_item_interval_params", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Specifies an interval for how often to bill for any pending invoice items. It is analogous to calling [Create an invoice](https://stripe.com/docs/api#create_invoice) for the given subscription at the specified interval." - }, - "promotion_code": { - "description": "The promotion code to apply to this subscription. A promotion code applied to a subscription will only affect invoices created for that particular subscription. This field has been deprecated and will be removed in a future API version. Use `discounts` instead.", - "maxLength": 5000, - "type": "string" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "description": "If set, the proration will be calculated as though the subscription was updated at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#upcoming_invoice) endpoint. It can also be used to implement custom proration logic, such as prorating by day instead of by second, by providing the time that you wish to use for proration calculations.", - "format": "unix-time", - "type": "integer" - }, - "transfer_data": { - "anyOf": [ - { - "properties": { - "amount_percent": { - "type": "number" - }, - "destination": { - "type": "string" - } - }, - "required": [ - "destination" - ], - "title": "transfer_data_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "If specified, the funds from the subscription's invoices will be transferred to the destination and the ID of the resulting transfers will be found on the resulting charges. This will be unset if you POST an empty value." - }, - "trial_end": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "Unix timestamp representing the end of the trial period the customer will get before being charged for the first time. This will always overwrite any trials that might apply via a subscribed plan. If set, trial_end will override the default trial period of the plan the customer is being subscribed to. The special value `now` can be provided to end the customer's trial immediately. Can be at most two years from `billing_cycle_anchor`." - }, - "trial_from_plan": { - "description": "Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed. See [Using trial periods on subscriptions](https://stripe.com/docs/billing/subscriptions/trials) to learn more.", - "type": "boolean" - }, - "trial_settings": { - "description": "Settings related to subscription trials.", - "properties": { - "end_behavior": { - "properties": { - "missing_payment_method": { - "enum": [ - "cancel", - "create_invoice", - "pause" - ], - "type": "string" - } - }, - "required": [ - "missing_payment_method" - ], - "title": "end_behavior", - "type": "object" - } - }, - "required": [ - "end_behavior" - ], - "title": "trial_settings_config", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscriptions/{subscription_exposed_id}/discount": { - "delete": { - "description": "

Removes the currently applied discount on a subscription.

", - "operationId": "DeleteSubscriptionsSubscriptionExposedIdDiscount", - "parameters": [ - { - "in": "path", - "name": "subscription_exposed_id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_discount" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/subscriptions/{subscription}/resume": { - "post": { - "description": "

Initiates resumption of a paused subscription, optionally resetting the billing cycle anchor and creating prorations. If a resumption invoice is generated, it must be paid or marked uncollectible before the subscription will be unpaused. If payment succeeds the subscription will become active, and if payment fails the subscription will be past_due. The resumption invoice will void automatically if not paid by the expiration date.

", - "operationId": "PostSubscriptionsSubscriptionResume", - "parameters": [ - { - "in": "path", - "name": "subscription", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "billing_cycle_anchor": { - "description": "Either `now` or `unchanged`. Setting the value to `now` resets the subscription's billing cycle anchor to the current time (in UTC). Setting the value to `unchanged` advances the subscription's billing cycle anchor to the period that surrounds the current time. For more information, see the billing cycle [documentation](https://stripe.com/docs/billing/subscriptions/billing-cycle).", - "enum": [ - "now", - "unchanged" - ], - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "proration_behavior": { - "description": "Determines how to handle [prorations](https://stripe.com/docs/billing/subscriptions/prorations) when the billing cycle changes (e.g., when switching plans, resetting `billing_cycle_anchor=now`, or starting a trial), or if an item's `quantity` changes. The default value is `create_prorations`.", - "enum": [ - "always_invoice", - "create_prorations", - "none" - ], - "type": "string" - }, - "proration_date": { - "description": "If set, the proration will be calculated as though the subscription was resumed at the given time. This can be used to apply exactly the same proration that was previewed with [upcoming invoice](https://stripe.com/docs/api#retrieve_customer_invoice) endpoint.", - "format": "unix-time", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/subscription" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/calculations": { - "post": { - "description": "

Calculates tax based on the input and returns a Tax Calculation object.

", - "operationId": "PostTaxCalculations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "customer_details": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "ship_from_details": { - "explode": true, - "style": "deepObject" - }, - "shipping_cost": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "The ID of an existing customer to use for this calculation. If provided, the customer's address and tax IDs are copied to `customer_details`.", - "maxLength": 5000, - "type": "string" - }, - "customer_details": { - "description": "Details about the customer, including address and tax IDs.", - "properties": { - "address": { - "properties": { - "city": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "line2": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "postal_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "state": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "country" - ], - "title": "postal_address", - "type": "object" - }, - "address_source": { - "enum": [ - "billing", - "shipping" - ], - "type": "string" - }, - "ip_address": { - "type": "string" - }, - "tax_ids": { - "items": { - "properties": { - "type": { - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "title": "data_params", - "type": "object" - }, - "type": "array" - }, - "taxability_override": { - "enum": [ - "customer_exempt", - "none", - "reverse_charge" - ], - "type": "string" - } - }, - "title": "customer_details", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "line_items": { - "description": "A list of items the customer is purchasing.", - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "product": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "reference": { - "maxLength": 500, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - } - }, - "required": [ - "amount" - ], - "title": "calculation_line_item", - "type": "object" - }, - "type": "array" - }, - "ship_from_details": { - "description": "Details about the address from which the goods are being shipped.", - "properties": { - "address": { - "properties": { - "city": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "line2": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "postal_code": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "state": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "country" - ], - "title": "merchant_postal_address", - "type": "object" - } - }, - "required": [ - "address" - ], - "title": "ship_from_details", - "type": "object" - }, - "shipping_cost": { - "description": "Shipping cost details to be used for the calculation.", - "properties": { - "amount": { - "type": "integer" - }, - "shipping_rate": { - "maxLength": 5000, - "type": "string" - }, - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - } - }, - "title": "shipping_cost", - "type": "object" - }, - "tax_date": { - "description": "Timestamp of date at which the tax rules and rates in effect applies for the calculation. Measured in seconds since the Unix epoch. Can be up to 48 hours in the past, and up to 48 hours in the future.", - "type": "integer" - } - }, - "required": [ - "currency", - "line_items" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.calculation" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/calculations/{calculation}": { - "get": { - "description": "

Retrieves a Tax Calculation object, if the calculation hasn’t expired.

", - "operationId": "GetTaxCalculationsCalculation", - "parameters": [ - { - "in": "path", - "name": "calculation", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.calculation" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/calculations/{calculation}/line_items": { - "get": { - "description": "

Retrieves the line items of a tax calculation as a collection, if the calculation hasn’t expired.

", - "operationId": "GetTaxCalculationsCalculationLineItems", - "parameters": [ - { - "in": "path", - "name": "calculation", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 500, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 500, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax.calculation_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/tax/calculations/[^/]+/line_items", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxProductResourceTaxCalculationLineItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/registrations": { - "get": { - "description": "

Returns a list of Tax Registration objects.

", - "operationId": "GetTaxRegistrations", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "The status of the Tax Registration.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "active", - "all", - "expired", - "scheduled" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/tax.registration" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/tax/registrations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxProductRegistrationsResourceTaxRegistrationList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new Tax Registration object.

", - "operationId": "PostTaxRegistrations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "active_from": { - "explode": true, - "style": "deepObject" - }, - "country_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active_from": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "Time at which the Tax Registration becomes active. It can be either `now` to indicate the current time, or a future timestamp measured in seconds since the Unix epoch." - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "country_options": { - "description": "Specific options for a registration in the specified `country`.", - "properties": { - "ae": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "at": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "au": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "be": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "bg": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "bh": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "ca": { - "properties": { - "province_standard": { - "properties": { - "province": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "province" - ], - "title": "province_standard", - "type": "object" - }, - "type": { - "enum": [ - "province_standard", - "simplified", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "canada", - "type": "object" - }, - "ch": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "cl": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "co": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "cy": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "cz": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "de": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "dk": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "ee": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "eg": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "es": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "fi": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "fr": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "gb": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "ge": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "gr": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "hr": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "hu": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "id": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "ie": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "is": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "it": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "jp": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "ke": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "kr": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "kz": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "lt": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "lu": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "lv": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "mt": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "mx": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "my": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "ng": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "nl": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "no": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "nz": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "om": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "pl": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "pt": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "ro": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "sa": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "se": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "sg": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - }, - "si": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "sk": { - "properties": { - "standard": { - "properties": { - "place_of_supply_scheme": { - "enum": [ - "small_seller", - "standard" - ], - "type": "string" - } - }, - "required": [ - "place_of_supply_scheme" - ], - "title": "standard", - "type": "object" - }, - "type": { - "enum": [ - "ioss", - "oss_non_union", - "oss_union", - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "europe", - "type": "object" - }, - "th": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "tr": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "us": { - "properties": { - "local_amusement_tax": { - "properties": { - "jurisdiction": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "jurisdiction" - ], - "title": "local_amusement_tax", - "type": "object" - }, - "local_lease_tax": { - "properties": { - "jurisdiction": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "jurisdiction" - ], - "title": "local_lease_tax", - "type": "object" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "local_amusement_tax", - "local_lease_tax", - "state_communications_tax", - "state_sales_tax" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "state", - "type" - ], - "title": "united_states", - "type": "object" - }, - "vn": { - "properties": { - "type": { - "enum": [ - "simplified" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "simplified", - "type": "object" - }, - "za": { - "properties": { - "type": { - "enum": [ - "standard" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "default", - "type": "object" - } - }, - "title": "country_options", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "description": "If set, the Tax Registration stops being active at this time. If not set, the Tax Registration will be active indefinitely. Timestamp measured in seconds since the Unix epoch.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "active_from", - "country", - "country_options" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.registration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/registrations/{id}": { - "get": { - "description": "

Returns a Tax Registration object.

", - "operationId": "GetTaxRegistrationsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.registration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing Tax Registration object.

\n\n

A registration cannot be deleted after it has been created. If you wish to end a registration you may do so by setting expires_at.

", - "operationId": "PostTaxRegistrationsId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "active_from": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "expires_at": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active_from": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - } - ], - "description": "Time at which the registration becomes active. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch." - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "expires_at": { - "anyOf": [ - { - "enum": [ - "now" - ], - "maxLength": 5000, - "type": "string" - }, - { - "format": "unix-time", - "type": "integer" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "If set, the registration stops being active at this time. If not set, the registration will be active indefinitely. It can be either `now` to indicate the current time, or a timestamp measured in seconds since the Unix epoch." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.registration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/settings": { - "get": { - "description": "

Retrieves Tax Settings for a merchant.

", - "operationId": "GetTaxSettings", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.settings" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates Tax Settings parameters used in tax calculations. All parameters are editable but none can be removed once set.

", - "operationId": "PostTaxSettings", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "defaults": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "head_office": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "defaults": { - "description": "Default configuration to be used on Stripe Tax calculations.", - "properties": { - "tax_behavior": { - "enum": [ - "exclusive", - "inclusive", - "inferred_by_currency" - ], - "type": "string" - }, - "tax_code": { - "type": "string" - } - }, - "title": "defaults_param", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "head_office": { - "description": "The place where your business is located.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "validated_country_address", - "type": "object" - } - }, - "required": [ - "address" - ], - "title": "head_office_param", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.settings" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/transactions/create_from_calculation": { - "post": { - "description": "

Creates a Tax Transaction from a calculation, if that calculation hasn’t expired. Calculations expire after 90 days.

", - "operationId": "PostTaxTransactionsCreateFromCalculation", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "calculation": { - "description": "Tax Calculation ID to be used as input when creating the transaction.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "posted_at": { - "description": "The Unix timestamp representing when the tax liability is assumed or reduced, which determines the liability posting period and handling in tax liability reports. The timestamp must fall within the `tax_date` and the current time, unless the `tax_date` is scheduled in advance. Defaults to the current time.", - "format": "unix-time", - "type": "integer" - }, - "reference": { - "description": "A custom order or sale identifier, such as 'myOrder_123'. Must be unique across all transactions, including reversals.", - "maxLength": 500, - "type": "string" - } - }, - "required": [ - "calculation", - "reference" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/transactions/create_reversal": { - "post": { - "description": "

Partially or fully reverses a previously created Transaction.

", - "operationId": "PostTaxTransactionsCreateReversal", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "line_items": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "shipping_cost": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "flat_amount": { - "description": "A flat amount to reverse across the entire transaction, in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) in negative. This value represents the total amount to refund from the transaction, including taxes.", - "type": "integer" - }, - "line_items": { - "description": "The line item amounts to reverse.", - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "amount_tax": { - "type": "integer" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "original_line_item": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - }, - "reference": { - "maxLength": 500, - "type": "string" - } - }, - "required": [ - "amount", - "amount_tax", - "original_line_item", - "reference" - ], - "title": "transaction_line_item_reversal", - "type": "object" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "mode": { - "description": "If `partial`, the provided line item or shipping cost amounts are reversed. If `full`, the original transaction is fully reversed.", - "enum": [ - "full", - "partial" - ], - "type": "string" - }, - "original_transaction": { - "description": "The ID of the Transaction to partially or fully reverse.", - "maxLength": 5000, - "type": "string" - }, - "reference": { - "description": "A custom identifier for this reversal, such as `myOrder_123-refund_1`, which must be unique across all transactions. The reference helps identify this reversal transaction in exported [tax reports](https://stripe.com/docs/tax/reports).", - "maxLength": 500, - "type": "string" - }, - "shipping_cost": { - "description": "The shipping cost to reverse.", - "properties": { - "amount": { - "type": "integer" - }, - "amount_tax": { - "type": "integer" - } - }, - "required": [ - "amount", - "amount_tax" - ], - "title": "transaction_shipping_cost_reversal", - "type": "object" - } - }, - "required": [ - "mode", - "original_transaction", - "reference" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/transactions/{transaction}": { - "get": { - "description": "

Retrieves a Tax Transaction object.

", - "operationId": "GetTaxTransactionsTransaction", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax/transactions/{transaction}/line_items": { - "get": { - "description": "

Retrieves the line items of a committed standalone transaction as a collection.

", - "operationId": "GetTaxTransactionsTransactionLineItems", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 500, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 500, - "type": "string" - }, - "style": "form" - }, - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax.transaction_line_item" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/tax/transactions/[^/]+/line_items", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxProductResourceTaxTransactionLineItemList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax_codes": { - "get": { - "description": "

A list of all tax codes available to add to Products in order to allow specific tax calculations.

", - "operationId": "GetTaxCodes", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/tax_code" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxProductResourceTaxCodeList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax_codes/{id}": { - "get": { - "description": "

Retrieves the details of an existing tax code. Supply the unique tax code ID and Stripe will return the corresponding tax code information.

", - "operationId": "GetTaxCodesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_code" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax_ids": { - "get": { - "description": "

Returns a list of tax IDs.

", - "operationId": "GetTaxIds", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The account or customer the tax ID belongs to. Defaults to `owner[type]=self`.", - "explode": true, - "in": "query", - "name": "owner", - "required": false, - "schema": { - "properties": { - "account": { - "type": "string" - }, - "customer": { - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "account", - "application", - "customer", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "owner_params", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/tax_id" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxIDsList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new account or customer tax_id object.

", - "operationId": "PostTaxIds", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "owner": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "owner": { - "description": "The account or customer the tax ID belongs to. Defaults to `owner[type]=self`.", - "properties": { - "account": { - "type": "string" - }, - "customer": { - "maxLength": 5000, - "type": "string" - }, - "type": { - "enum": [ - "account", - "application", - "customer", - "self" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "title": "owner_params", - "type": "object" - }, - "type": { - "description": "Type of the tax ID, one of `ad_nrt`, `ae_trn`, `ar_cuit`, `au_abn`, `au_arn`, `bg_uic`, `bh_vat`, `bo_tin`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_gst_hst`, `ca_pst_bc`, `ca_pst_mb`, `ca_pst_sk`, `ca_qst`, `ch_uid`, `ch_vat`, `cl_tin`, `cn_tin`, `co_nit`, `cr_tin`, `de_stn`, `do_rcn`, `ec_ruc`, `eg_tin`, `es_cif`, `eu_oss_vat`, `eu_vat`, `gb_vat`, `ge_vat`, `hk_br`, `hu_tin`, `id_npwp`, `il_vat`, `in_gst`, `is_vat`, `jp_cn`, `jp_rn`, `jp_trn`, `ke_pin`, `kr_brn`, `kz_bin`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `ng_tin`, `no_vat`, `no_voec`, `nz_gst`, `om_vat`, `pe_ruc`, `ph_tin`, `ro_tin`, `rs_pib`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `si_tin`, `sv_nit`, `th_vat`, `tr_tin`, `tw_vat`, `ua_vat`, `us_ein`, `uy_ruc`, `ve_rif`, `vn_tin`, or `za_vat`", - "enum": [ - "ad_nrt", - "ae_trn", - "ar_cuit", - "au_abn", - "au_arn", - "bg_uic", - "bh_vat", - "bo_tin", - "br_cnpj", - "br_cpf", - "ca_bn", - "ca_gst_hst", - "ca_pst_bc", - "ca_pst_mb", - "ca_pst_sk", - "ca_qst", - "ch_uid", - "ch_vat", - "cl_tin", - "cn_tin", - "co_nit", - "cr_tin", - "de_stn", - "do_rcn", - "ec_ruc", - "eg_tin", - "es_cif", - "eu_oss_vat", - "eu_vat", - "gb_vat", - "ge_vat", - "hk_br", - "hu_tin", - "id_npwp", - "il_vat", - "in_gst", - "is_vat", - "jp_cn", - "jp_rn", - "jp_trn", - "ke_pin", - "kr_brn", - "kz_bin", - "li_uid", - "mx_rfc", - "my_frp", - "my_itn", - "my_sst", - "ng_tin", - "no_vat", - "no_voec", - "nz_gst", - "om_vat", - "pe_ruc", - "ph_tin", - "ro_tin", - "rs_pib", - "ru_inn", - "ru_kpp", - "sa_vat", - "sg_gst", - "sg_uen", - "si_tin", - "sv_nit", - "th_vat", - "tr_tin", - "tw_vat", - "ua_vat", - "us_ein", - "uy_ruc", - "ve_rif", - "vn_tin", - "za_vat" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "value": { - "description": "Value of the tax ID.", - "type": "string" - } - }, - "required": [ - "type", - "value" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_id" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax_ids/{id}": { - "delete": { - "description": "

Deletes an existing account or customer tax_id object.

", - "operationId": "DeleteTaxIdsId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_tax_id" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves an account or customer tax_id object.

", - "operationId": "GetTaxIdsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_id" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax_rates": { - "get": { - "description": "

Returns a list of your tax rates. Tax rates are returned sorted by creation date, with the most recently created tax rates appearing first.

", - "operationId": "GetTaxRates", - "parameters": [ - { - "description": "Optional flag to filter by tax rates that are either active or inactive (archived).", - "in": "query", - "name": "active", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "Optional range for filtering created date.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Optional flag to filter by tax rates that are inclusive (or those that are not inclusive).", - "in": "query", - "name": "inclusive", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/tax_rate" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/tax_rates", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TaxRatesList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new tax rate.

", - "operationId": "PostTaxRates", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.", - "type": "boolean" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.", - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "description": "The display name of the tax rate, which will be shown to users.", - "maxLength": 50, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "inclusive": { - "description": "This specifies if the tax rate is inclusive or exclusive.", - "type": "boolean" - }, - "jurisdiction": { - "description": "The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.", - "maxLength": 50, - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "percentage": { - "description": "This represents the tax rate percent out of 100.", - "type": "number" - }, - "state": { - "description": "[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, \"NY\" for New York, United States.", - "maxLength": 2, - "type": "string" - }, - "tax_type": { - "description": "The high-level tax type, such as `vat` or `sales_tax`.", - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "display_name", - "inclusive", - "percentage" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tax_rates/{tax_rate}": { - "get": { - "description": "

Retrieves a tax rate with the given ID

", - "operationId": "GetTaxRatesTaxRate", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "tax_rate", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates an existing tax rate.

", - "operationId": "PostTaxRatesTaxRate", - "parameters": [ - { - "in": "path", - "name": "tax_rate", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "active": { - "description": "Flag determining whether the tax rate is active or inactive (archived). Inactive tax rates cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.", - "type": "boolean" - }, - "country": { - "description": "Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.", - "maxLength": 5000, - "type": "string" - }, - "display_name": { - "description": "The display name of the tax rate, which will be shown to users.", - "maxLength": 50, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "jurisdiction": { - "description": "The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.", - "maxLength": 50, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "state": { - "description": "[ISO 3166-2 subdivision code](https://en.wikipedia.org/wiki/ISO_3166-2:US), without country prefix. For example, \"NY\" for New York, United States.", - "maxLength": 2, - "type": "string" - }, - "tax_type": { - "description": "The high-level tax type, such as `vat` or `sales_tax`.", - "enum": [ - "amusement_tax", - "communications_tax", - "gst", - "hst", - "igst", - "jct", - "lease_tax", - "pst", - "qst", - "rst", - "sales_tax", - "vat" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/tax_rate" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/configurations": { - "get": { - "description": "

Returns a list of Configuration objects.

", - "operationId": "GetTerminalConfigurations", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "if present, only return the account default or non-default configurations.", - "in": "query", - "name": "is_account_default", - "required": false, - "schema": { - "type": "boolean" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/terminal.configuration" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/terminal/configurations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TerminalConfigurationConfigurationList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new Configuration object.

", - "operationId": "PostTerminalConfigurations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bbpos_wisepos_e": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "offline": { - "explode": true, - "style": "deepObject" - }, - "reboot_window": { - "explode": true, - "style": "deepObject" - }, - "stripe_s700": { - "explode": true, - "style": "deepObject" - }, - "tipping": { - "explode": true, - "style": "deepObject" - }, - "verifone_p400": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bbpos_wisepos_e": { - "description": "An object containing device type specific settings for BBPOS WisePOS E readers", - "properties": { - "splashscreen": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "bbpos_wise_pose", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Name of the configuration", - "maxLength": 100, - "type": "string" - }, - "offline": { - "anyOf": [ - { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "offline", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Configurations for collecting transactions offline." - }, - "reboot_window": { - "description": "Reboot time settings for readers that support customized reboot time configuration.", - "properties": { - "end_hour": { - "type": "integer" - }, - "start_hour": { - "type": "integer" - } - }, - "required": [ - "end_hour", - "start_hour" - ], - "title": "reboot_window", - "type": "object" - }, - "stripe_s700": { - "description": "An object containing device type specific settings for Stripe S700 readers", - "properties": { - "splashscreen": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "stripe_s700", - "type": "object" - }, - "tipping": { - "anyOf": [ - { - "properties": { - "aud": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "cad": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "chf": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "czk": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "dkk": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "eur": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "gbp": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "hkd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "myr": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "nok": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "nzd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "sek": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "sgd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "usd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - } - }, - "title": "tipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Tipping configurations for readers supporting on-reader tips" - }, - "verifone_p400": { - "description": "An object containing device type specific settings for Verifone P400 readers", - "properties": { - "splashscreen": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "verifone_p400", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/configurations/{configuration}": { - "delete": { - "description": "

Deletes a Configuration object.

", - "operationId": "DeleteTerminalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_terminal.configuration" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a Configuration object.

", - "operationId": "GetTerminalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal.configuration" - }, - { - "$ref": "#/components/schemas/deleted_terminal.configuration" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a new Configuration object.

", - "operationId": "PostTerminalConfigurationsConfiguration", - "parameters": [ - { - "in": "path", - "name": "configuration", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "bbpos_wisepos_e": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "offline": { - "explode": true, - "style": "deepObject" - }, - "reboot_window": { - "explode": true, - "style": "deepObject" - }, - "stripe_s700": { - "explode": true, - "style": "deepObject" - }, - "tipping": { - "explode": true, - "style": "deepObject" - }, - "verifone_p400": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "bbpos_wisepos_e": { - "anyOf": [ - { - "properties": { - "splashscreen": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "bbpos_wise_pose", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "An object containing device type specific settings for BBPOS WisePOS E readers" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "name": { - "description": "Name of the configuration", - "maxLength": 100, - "type": "string" - }, - "offline": { - "anyOf": [ - { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "title": "offline", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Configurations for collecting transactions offline." - }, - "reboot_window": { - "anyOf": [ - { - "properties": { - "end_hour": { - "type": "integer" - }, - "start_hour": { - "type": "integer" - } - }, - "required": [ - "end_hour", - "start_hour" - ], - "title": "reboot_window", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Reboot time settings for readers that support customized reboot time configuration." - }, - "stripe_s700": { - "anyOf": [ - { - "properties": { - "splashscreen": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "stripe_s700", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "An object containing device type specific settings for Stripe S700 readers" - }, - "tipping": { - "anyOf": [ - { - "properties": { - "aud": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "cad": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "chf": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "czk": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "dkk": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "eur": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "gbp": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "hkd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "myr": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "nok": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "nzd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "sek": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "sgd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - }, - "usd": { - "properties": { - "fixed_amounts": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "percentages": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "smart_tip_threshold": { - "type": "integer" - } - }, - "title": "currency_specific_config", - "type": "object" - } - }, - "title": "tipping", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Tipping configurations for readers supporting on-reader tips" - }, - "verifone_p400": { - "anyOf": [ - { - "properties": { - "splashscreen": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "verifone_p400", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "An object containing device type specific settings for Verifone P400 readers" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal.configuration" - }, - { - "$ref": "#/components/schemas/deleted_terminal.configuration" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/connection_tokens": { - "post": { - "description": "

To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token.

", - "operationId": "PostTerminalConnectionTokens", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "location": { - "description": "The id of the location that this connection token is scoped to. If specified the connection token will only be usable with readers assigned to that location, otherwise the connection token will be usable with all readers. Note that location scoping only applies to internet-connected readers. For more details, see [the docs on scoping connection tokens](https://docs.stripe.com/terminal/fleet/locations-and-zones?dashboard-or-api=api#connection-tokens).", - "maxLength": 5000, - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.connection_token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/locations": { - "get": { - "description": "

Returns a list of Location objects.

", - "operationId": "GetTerminalLocations", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/terminal.location" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/terminal/locations", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TerminalLocationLocationList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new Location object.\nFor further details, including which address fields are required in each country, see the Manage locations guide.

", - "operationId": "PostTerminalLocations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "address": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "address": { - "description": "The full address of the location.", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "create_location_address_param", - "type": "object" - }, - "configuration_overrides": { - "description": "The ID of a configuration that will be used to customize all readers in this location.", - "maxLength": 1000, - "type": "string" - }, - "display_name": { - "description": "A name for the location.", - "maxLength": 1000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "required": [ - "address", - "display_name" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.location" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/locations/{location}": { - "delete": { - "description": "

Deletes a Location object.

", - "operationId": "DeleteTerminalLocationsLocation", - "parameters": [ - { - "in": "path", - "name": "location", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_terminal.location" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a Location object.

", - "operationId": "GetTerminalLocationsLocation", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "location", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal.location" - }, - { - "$ref": "#/components/schemas/deleted_terminal.location" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a Location object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostTerminalLocationsLocation", - "parameters": [ - { - "in": "path", - "name": "location", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "address": { - "explode": true, - "style": "deepObject" - }, - "configuration_overrides": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "address": { - "description": "The full address of the location. If you're updating the `address` field, avoid changing the `country`. If you need to modify the `country` field, create a new `Location` object and re-register any existing readers to that location.", - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "configuration_overrides": { - "anyOf": [ - { - "maxLength": 1000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The ID of a configuration that will be used to customize all readers in this location." - }, - "display_name": { - "description": "A name for the location.", - "maxLength": 1000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal.location" - }, - { - "$ref": "#/components/schemas/deleted_terminal.location" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers": { - "get": { - "description": "

Returns a list of Reader objects.

", - "operationId": "GetTerminalReaders", - "parameters": [ - { - "description": "Filters readers by device type", - "in": "query", - "name": "device_type", - "required": false, - "schema": { - "enum": [ - "bbpos_chipper2x", - "bbpos_wisepad3", - "bbpos_wisepos_e", - "mobile_phone_reader", - "simulated_wisepos_e", - "stripe_m2", - "stripe_s700", - "verifone_P400" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A location ID to filter the response list to only readers at the specific location", - "in": "query", - "name": "location", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Filters readers by serial number", - "in": "query", - "name": "serial_number", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A status filter to filter readers to only offline or online readers", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "offline", - "online" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "A list of readers", - "items": { - "$ref": "#/components/schemas/terminal.reader" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TerminalReaderRetrieveReader", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new Reader object.

", - "operationId": "PostTerminalReaders", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "label": { - "description": "Custom label given to the reader for easier identification. If no label is specified, the registration code will be used.", - "maxLength": 5000, - "type": "string" - }, - "location": { - "description": "The location to assign the reader to.", - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "registration_code": { - "description": "A code generated by the reader used for registering to an account.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "registration_code" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers/{reader}": { - "delete": { - "description": "

Deletes a Reader object.

", - "operationId": "DeleteTerminalReadersReader", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a Reader object.

", - "operationId": "GetTerminalReadersReader", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal.reader" - }, - { - "$ref": "#/components/schemas/deleted_terminal.reader" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates a Reader object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

", - "operationId": "PostTerminalReadersReader", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "label": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "label": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "The new label of the reader." - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/terminal.reader" - }, - { - "$ref": "#/components/schemas/deleted_terminal.reader" - } - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers/{reader}/cancel_action": { - "post": { - "description": "

Cancels the current reader action.

", - "operationId": "PostTerminalReadersReaderCancelAction", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers/{reader}/process_payment_intent": { - "post": { - "description": "

Initiates a payment flow on a Reader.

", - "operationId": "PostTerminalReadersReaderProcessPaymentIntent", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "process_config": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "payment_intent": { - "description": "PaymentIntent ID", - "maxLength": 5000, - "type": "string" - }, - "process_config": { - "description": "Configuration overrides", - "properties": { - "enable_customer_cancellation": { - "type": "boolean" - }, - "skip_tipping": { - "type": "boolean" - }, - "tipping": { - "properties": { - "amount_eligible": { - "type": "integer" - } - }, - "title": "tipping_config", - "type": "object" - } - }, - "title": "process_config", - "type": "object" - } - }, - "required": [ - "payment_intent" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers/{reader}/process_setup_intent": { - "post": { - "description": "

Initiates a setup intent flow on a Reader.

", - "operationId": "PostTerminalReadersReaderProcessSetupIntent", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "process_config": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "customer_consent_collected": { - "description": "Customer Consent Collected", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "process_config": { - "description": "Configuration overrides", - "properties": { - "enable_customer_cancellation": { - "type": "boolean" - } - }, - "title": "process_setup_config", - "type": "object" - }, - "setup_intent": { - "description": "SetupIntent ID", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "customer_consent_collected", - "setup_intent" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers/{reader}/refund_payment": { - "post": { - "description": "

Initiates a refund on a Reader

", - "operationId": "PostTerminalReadersReaderRefundPayment", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "refund_payment_config": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer in __cents__ representing how much of this charge to refund.", - "type": "integer" - }, - "charge": { - "description": "ID of the Charge to refund.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "payment_intent": { - "description": "ID of the PaymentIntent to refund.", - "maxLength": 5000, - "type": "string" - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when refunding this charge. If a full charge refund is given, the full application fee will be refunded. Otherwise, the application fee will be refunded in an amount proportional to the amount of the charge refunded. An application fee can be refunded only by the application that created the charge.", - "type": "boolean" - }, - "refund_payment_config": { - "description": "Configuration overrides", - "properties": { - "enable_customer_cancellation": { - "type": "boolean" - } - }, - "title": "refund_payment_config", - "type": "object" - }, - "reverse_transfer": { - "description": "Boolean indicating whether the transfer should be reversed when refunding this charge. The transfer will be reversed proportionally to the amount being refunded (either the entire or partial amount). A transfer can be reversed only by the application that created the charge.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/terminal/readers/{reader}/set_reader_display": { - "post": { - "description": "

Sets reader display to show cart details.

", - "operationId": "PostTerminalReadersReaderSetReaderDisplay", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "cart": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "cart": { - "description": "Cart", - "properties": { - "currency": { - "type": "string" - }, - "line_items": { - "items": { - "properties": { - "amount": { - "type": "integer" - }, - "description": { - "maxLength": 5000, - "type": "string" - }, - "quantity": { - "type": "integer" - } - }, - "required": [ - "amount", - "description", - "quantity" - ], - "title": "line_item", - "type": "object" - }, - "type": "array" - }, - "tax": { - "type": "integer" - }, - "total": { - "type": "integer" - } - }, - "required": [ - "currency", - "line_items", - "total" - ], - "title": "cart", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "type": { - "description": "Type", - "enum": [ - "cart" - ], - "type": "string" - } - }, - "required": [ - "type" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/confirmation_tokens": { - "post": { - "description": "

Creates a test mode Confirmation Token server side for your integration tests.

", - "operationId": "PostTestHelpersConfirmationTokens", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "shipping": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "payment_method": { - "description": "ID of an existing PaymentMethod.", - "maxLength": 5000, - "type": "string" - }, - "payment_method_data": { - "description": "If provided, this hash will be used to create a PaymentMethod.", - "properties": { - "acss_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "institution_number": { - "maxLength": 5000, - "type": "string" - }, - "transit_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "institution_number", - "transit_number" - ], - "title": "payment_method_param", - "type": "object" - }, - "affirm": { - "properties": {}, - "title": "param", - "type": "object" - }, - "afterpay_clearpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "alipay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "allow_redisplay": { - "enum": [ - "always", - "limited", - "unspecified" - ], - "type": "string" - }, - "amazon_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "au_becs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "bsb_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "bsb_number" - ], - "title": "param", - "type": "object" - }, - "bacs_debit": { - "properties": { - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "sort_code": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "bancontact": { - "properties": {}, - "title": "param", - "type": "object" - }, - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "blik": { - "properties": {}, - "title": "param", - "type": "object" - }, - "boleto": { - "properties": { - "tax_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "tax_id" - ], - "title": "param", - "type": "object" - }, - "cashapp": { - "properties": {}, - "title": "param", - "type": "object" - }, - "customer_balance": { - "properties": {}, - "title": "param", - "type": "object" - }, - "eps": { - "properties": { - "bank": { - "enum": [ - "arzte_und_apotheker_bank", - "austrian_anadi_bank_ag", - "bank_austria", - "bankhaus_carl_spangler", - "bankhaus_schelhammer_und_schattera_ag", - "bawag_psk_ag", - "bks_bank_ag", - "brull_kallmus_bank_ag", - "btv_vier_lander_bank", - "capital_bank_grawe_gruppe_ag", - "deutsche_bank_ag", - "dolomitenbank", - "easybank_ag", - "erste_bank_und_sparkassen", - "hypo_alpeadriabank_international_ag", - "hypo_bank_burgenland_aktiengesellschaft", - "hypo_noe_lb_fur_niederosterreich_u_wien", - "hypo_oberosterreich_salzburg_steiermark", - "hypo_tirol_bank_ag", - "hypo_vorarlberg_bank_ag", - "marchfelder_bank", - "oberbank_ag", - "raiffeisen_bankengruppe_osterreich", - "schoellerbank_ag", - "sparda_bank_wien", - "volksbank_gruppe", - "volkskreditbank_ag", - "vr_bank_braunau" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "fpx": { - "properties": { - "bank": { - "enum": [ - "affin_bank", - "agrobank", - "alliance_bank", - "ambank", - "bank_islam", - "bank_muamalat", - "bank_of_china", - "bank_rakyat", - "bsn", - "cimb", - "deutsche_bank", - "hong_leong_bank", - "hsbc", - "kfh", - "maybank2e", - "maybank2u", - "ocbc", - "pb_enterprise", - "public_bank", - "rhb", - "standard_chartered", - "uob" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "bank" - ], - "title": "param", - "type": "object" - }, - "giropay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "grabpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "ideal": { - "properties": { - "bank": { - "enum": [ - "abn_amro", - "asn_bank", - "bunq", - "handelsbanken", - "ing", - "knab", - "moneyou", - "n26", - "nn", - "rabobank", - "regiobank", - "revolut", - "sns_bank", - "triodos_bank", - "van_lanschot", - "yoursafe" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "param", - "type": "object" - }, - "interac_present": { - "properties": {}, - "title": "param", - "type": "object" - }, - "klarna": { - "properties": { - "dob": { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth", - "type": "object" - } - }, - "title": "param", - "type": "object" - }, - "konbini": { - "properties": {}, - "title": "param", - "type": "object" - }, - "link": { - "properties": {}, - "title": "param", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "mobilepay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "multibanco": { - "properties": {}, - "title": "param", - "type": "object" - }, - "oxxo": { - "properties": {}, - "title": "param", - "type": "object" - }, - "p24": { - "properties": { - "bank": { - "enum": [ - "alior_bank", - "bank_millennium", - "bank_nowy_bfg_sa", - "bank_pekao_sa", - "banki_spbdzielcze", - "blik", - "bnp_paribas", - "boz", - "citi_handlowy", - "credit_agricole", - "envelobank", - "etransfer_pocztowy24", - "getin_bank", - "ideabank", - "ing", - "inteligo", - "mbank_mtransfer", - "nest_przelew", - "noble_pay", - "pbac_z_ipko", - "plus_bank", - "santander_przelew24", - "tmobile_usbugi_bankowe", - "toyota_bank", - "velobank", - "volkswagen_bank" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "title": "param", - "type": "object" - }, - "paynow": { - "properties": {}, - "title": "param", - "type": "object" - }, - "paypal": { - "properties": {}, - "title": "param", - "type": "object" - }, - "pix": { - "properties": {}, - "title": "param", - "type": "object" - }, - "promptpay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "radar_options": { - "properties": { - "session": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "radar_options_with_hidden_options", - "type": "object" - }, - "revolut_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "sepa_debit": { - "properties": { - "iban": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "iban" - ], - "title": "param", - "type": "object" - }, - "sofort": { - "properties": { - "country": { - "enum": [ - "AT", - "BE", - "DE", - "ES", - "IT", - "NL" - ], - "type": "string" - } - }, - "required": [ - "country" - ], - "title": "param", - "type": "object" - }, - "swish": { - "properties": {}, - "title": "param", - "type": "object" - }, - "twint": { - "properties": {}, - "title": "param", - "type": "object" - }, - "type": { - "enum": [ - "acss_debit", - "affirm", - "afterpay_clearpay", - "alipay", - "amazon_pay", - "au_becs_debit", - "bacs_debit", - "bancontact", - "blik", - "boleto", - "cashapp", - "customer_balance", - "eps", - "fpx", - "giropay", - "grabpay", - "ideal", - "klarna", - "konbini", - "link", - "mobilepay", - "multibanco", - "oxxo", - "p24", - "paynow", - "paypal", - "pix", - "promptpay", - "revolut_pay", - "sepa_debit", - "sofort", - "swish", - "twint", - "us_bank_account", - "wechat_pay", - "zip" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - }, - "wechat_pay": { - "properties": {}, - "title": "param", - "type": "object" - }, - "zip": { - "properties": {}, - "title": "param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data_params", - "type": "object" - }, - "return_url": { - "description": "Return URL used to confirm the Intent.", - "type": "string" - }, - "setup_future_usage": { - "description": "Indicates that you intend to make future payments with this ConfirmationToken's payment method.\n\nThe presence of this property will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete.", - "enum": [ - "off_session", - "on_session" - ], - "type": "string" - }, - "shipping": { - "description": "Shipping information for this ConfirmationToken.", - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "optional_fields_address", - "type": "object" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "required": [ - "address", - "name" - ], - "title": "recipient_shipping_with_optional_fields_address", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/confirmation_token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/customers/{customer}/fund_cash_balance": { - "post": { - "description": "

Create an incoming testmode bank transfer

", - "operationId": "PostTestHelpersCustomersCustomerFundCashBalance", - "parameters": [ - { - "in": "path", - "name": "customer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount to be used for this test cash balance transaction. A positive integer representing how much to fund in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to fund $1.00 or 100 to fund ¥100, a zero-decimal currency).", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "reference": { - "description": "A description of the test funding. This simulates free-text references supplied by customers when making bank transfers to their cash balance. You can use this to test how Stripe's [reconciliation algorithm](https://stripe.com/docs/payments/customer-balance/reconciliation) applies to different user inputs.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/customer_cash_balance_transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/authorizations": { - "post": { - "description": "

Create a test-mode authorization.

", - "operationId": "PostTestHelpersIssuingAuthorizations", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "amount_details": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "fleet": { - "explode": true, - "style": "deepObject" - }, - "fuel": { - "explode": true, - "style": "deepObject" - }, - "merchant_data": { - "explode": true, - "style": "deepObject" - }, - "network_data": { - "explode": true, - "style": "deepObject" - }, - "verification_data": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The total amount to attempt to authorize. This amount is in the provided currency, or defaults to the card's currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "amount_details": { - "description": "Detailed breakdown of amount components. These amounts are denominated in `currency` and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "properties": { - "atm_fee": { - "type": "integer" - }, - "cashback_amount": { - "type": "integer" - } - }, - "title": "amount_details_specs", - "type": "object" - }, - "authorization_method": { - "description": "How the card details were provided. Defaults to online.", - "enum": [ - "chip", - "contactless", - "keyed_in", - "online", - "swipe" - ], - "type": "string" - }, - "card": { - "description": "Card associated with this authorization.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "The currency of the authorization. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "fleet": { - "description": "Fleet-specific information for authorizations using Fleet cards.", - "properties": { - "cardholder_prompt_data": { - "properties": { - "driver_id": { - "maxLength": 5000, - "type": "string" - }, - "odometer": { - "type": "integer" - }, - "unspecified_id": { - "maxLength": 5000, - "type": "string" - }, - "user_id": { - "maxLength": 5000, - "type": "string" - }, - "vehicle_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_cardholder_prompt_data_specs", - "type": "object" - }, - "purchase_type": { - "enum": [ - "fuel_and_non_fuel_purchase", - "fuel_purchase", - "non_fuel_purchase" - ], - "maxLength": 5000, - "type": "string" - }, - "reported_breakdown": { - "properties": { - "fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_fuel_specs", - "type": "object" - }, - "non_fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_non_fuel_specs", - "type": "object" - }, - "tax": { - "properties": { - "local_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "national_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_tax_specs", - "type": "object" - } - }, - "title": "fleet_reported_breakdown_specs", - "type": "object" - }, - "service_type": { - "enum": [ - "full_service", - "non_fuel_transaction", - "self_service" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_testmode_authorization_specs", - "type": "object" - }, - "fuel": { - "description": "Information about fuel that was purchased with this transaction.", - "properties": { - "industry_product_code": { - "maxLength": 5000, - "type": "string" - }, - "quantity_decimal": { - "format": "decimal", - "type": "string" - }, - "type": { - "enum": [ - "diesel", - "other", - "unleaded_plus", - "unleaded_regular", - "unleaded_super" - ], - "maxLength": 5000, - "type": "string" - }, - "unit": { - "enum": [ - "charging_minute", - "imperial_gallon", - "kilogram", - "kilowatt_hour", - "liter", - "other", - "pound", - "us_gallon" - ], - "maxLength": 5000, - "type": "string" - }, - "unit_cost_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fuel_specs", - "type": "object" - }, - "is_amount_controllable": { - "description": "If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization.", - "type": "boolean" - }, - "merchant_data": { - "description": "Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened.", - "properties": { - "category": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "network_id": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "terminal_id": { - "maxLength": 5000, - "type": "string" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "merchant_data_specs", - "type": "object" - }, - "network_data": { - "description": "Details about the authorization, such as identifiers, set by the card network.", - "properties": { - "acquiring_institution_id": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "network_data_specs", - "type": "object" - }, - "verification_data": { - "description": "Verifications that Stripe performed on information that the cardholder provided to the merchant.", - "properties": { - "address_line1_check": { - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "address_postal_code_check": { - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "authentication_exemption": { - "properties": { - "claimed_by": { - "enum": [ - "acquirer", - "issuer" - ], - "type": "string" - }, - "type": { - "enum": [ - "low_value_transaction", - "transaction_risk_analysis", - "unknown" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "claimed_by", - "type" - ], - "title": "authentication_exemption_specs", - "type": "object" - }, - "cvc_check": { - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "expiry_check": { - "enum": [ - "match", - "mismatch", - "not_provided" - ], - "type": "string" - }, - "three_d_secure": { - "properties": { - "result": { - "enum": [ - "attempt_acknowledged", - "authenticated", - "failed", - "required" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "result" - ], - "title": "three_d_secure_specs", - "type": "object" - } - }, - "title": "verification_data_specs", - "type": "object" - }, - "wallet": { - "description": "The digital wallet used for this transaction. One of `apple_pay`, `google_pay`, or `samsung_pay`. Will populate as `null` when no digital wallet was utilized.", - "enum": [ - "apple_pay", - "google_pay", - "samsung_pay" - ], - "type": "string" - } - }, - "required": [ - "amount", - "card" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/authorizations/{authorization}/capture": { - "post": { - "description": "

Capture a test-mode authorization.

", - "operationId": "PostTestHelpersIssuingAuthorizationsAuthorizationCapture", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "purchase_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "capture_amount": { - "description": "The amount to capture from the authorization. If not provided, the full amount of the authorization will be captured. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "close_authorization": { - "description": "Whether to close the authorization after capture. Defaults to true. Set to false to enable multi-capture flows.", - "type": "boolean" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "purchase_details": { - "description": "Additional purchase information that is optionally provided by the merchant.", - "properties": { - "fleet": { - "properties": { - "cardholder_prompt_data": { - "properties": { - "driver_id": { - "maxLength": 5000, - "type": "string" - }, - "odometer": { - "type": "integer" - }, - "unspecified_id": { - "maxLength": 5000, - "type": "string" - }, - "user_id": { - "maxLength": 5000, - "type": "string" - }, - "vehicle_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_cardholder_prompt_data_specs", - "type": "object" - }, - "purchase_type": { - "enum": [ - "fuel_and_non_fuel_purchase", - "fuel_purchase", - "non_fuel_purchase" - ], - "maxLength": 5000, - "type": "string" - }, - "reported_breakdown": { - "properties": { - "fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_fuel_specs", - "type": "object" - }, - "non_fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_non_fuel_specs", - "type": "object" - }, - "tax": { - "properties": { - "local_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "national_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_tax_specs", - "type": "object" - } - }, - "title": "fleet_reported_breakdown_specs", - "type": "object" - }, - "service_type": { - "enum": [ - "full_service", - "non_fuel_transaction", - "self_service" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_specs", - "type": "object" - }, - "flight": { - "properties": { - "departure_at": { - "format": "unix-time", - "type": "integer" - }, - "passenger_name": { - "maxLength": 5000, - "type": "string" - }, - "refundable": { - "type": "boolean" - }, - "segments": { - "items": { - "properties": { - "arrival_airport_code": { - "maxLength": 3, - "type": "string" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "departure_airport_code": { - "maxLength": 3, - "type": "string" - }, - "flight_number": { - "maxLength": 5000, - "type": "string" - }, - "service_class": { - "maxLength": 5000, - "type": "string" - }, - "stopover_allowed": { - "type": "boolean" - } - }, - "title": "flight_segment_specs", - "type": "object" - }, - "type": "array" - }, - "travel_agency": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "flight_specs", - "type": "object" - }, - "fuel": { - "properties": { - "industry_product_code": { - "maxLength": 5000, - "type": "string" - }, - "quantity_decimal": { - "format": "decimal", - "type": "string" - }, - "type": { - "enum": [ - "diesel", - "other", - "unleaded_plus", - "unleaded_regular", - "unleaded_super" - ], - "maxLength": 5000, - "type": "string" - }, - "unit": { - "enum": [ - "charging_minute", - "imperial_gallon", - "kilogram", - "kilowatt_hour", - "liter", - "other", - "pound", - "us_gallon" - ], - "maxLength": 5000, - "type": "string" - }, - "unit_cost_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fuel_specs", - "type": "object" - }, - "lodging": { - "properties": { - "check_in_at": { - "format": "unix-time", - "type": "integer" - }, - "nights": { - "type": "integer" - } - }, - "title": "lodging_specs", - "type": "object" - }, - "receipt": { - "items": { - "properties": { - "description": { - "maxLength": 26, - "type": "string" - }, - "quantity": { - "format": "decimal", - "type": "string" - }, - "total": { - "type": "integer" - }, - "unit_cost": { - "type": "integer" - } - }, - "title": "receipt_specs", - "type": "object" - }, - "type": "array" - }, - "reference": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "purchase_details_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/authorizations/{authorization}/expire": { - "post": { - "description": "

Expire a test-mode Authorization.

", - "operationId": "PostTestHelpersIssuingAuthorizationsAuthorizationExpire", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount": { - "post": { - "description": "

Finalize the amount on an Authorization prior to capture, when the initial authorization was for an estimated amount.

", - "operationId": "PostTestHelpersIssuingAuthorizationsAuthorizationFinalizeAmount", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "fleet": { - "explode": true, - "style": "deepObject" - }, - "fuel": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "final_amount": { - "description": "The final authorization amount that will be captured by the merchant. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "fleet": { - "description": "Fleet-specific information for authorizations using Fleet cards.", - "properties": { - "cardholder_prompt_data": { - "properties": { - "driver_id": { - "maxLength": 5000, - "type": "string" - }, - "odometer": { - "type": "integer" - }, - "unspecified_id": { - "maxLength": 5000, - "type": "string" - }, - "user_id": { - "maxLength": 5000, - "type": "string" - }, - "vehicle_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_cardholder_prompt_data_specs", - "type": "object" - }, - "purchase_type": { - "enum": [ - "fuel_and_non_fuel_purchase", - "fuel_purchase", - "non_fuel_purchase" - ], - "maxLength": 5000, - "type": "string" - }, - "reported_breakdown": { - "properties": { - "fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_fuel_specs", - "type": "object" - }, - "non_fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_non_fuel_specs", - "type": "object" - }, - "tax": { - "properties": { - "local_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "national_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_tax_specs", - "type": "object" - } - }, - "title": "fleet_reported_breakdown_specs", - "type": "object" - }, - "service_type": { - "enum": [ - "full_service", - "non_fuel_transaction", - "self_service" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_specs", - "type": "object" - }, - "fuel": { - "description": "Information about fuel that was purchased with this transaction.", - "properties": { - "industry_product_code": { - "maxLength": 5000, - "type": "string" - }, - "quantity_decimal": { - "format": "decimal", - "type": "string" - }, - "type": { - "enum": [ - "diesel", - "other", - "unleaded_plus", - "unleaded_regular", - "unleaded_super" - ], - "maxLength": 5000, - "type": "string" - }, - "unit": { - "enum": [ - "charging_minute", - "imperial_gallon", - "kilogram", - "kilowatt_hour", - "liter", - "other", - "pound", - "us_gallon" - ], - "maxLength": 5000, - "type": "string" - }, - "unit_cost_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fuel_specs", - "type": "object" - } - }, - "required": [ - "final_amount" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/authorizations/{authorization}/increment": { - "post": { - "description": "

Increment a test-mode Authorization.

", - "operationId": "PostTestHelpersIssuingAuthorizationsAuthorizationIncrement", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "increment_amount": { - "description": "The amount to increment the authorization by. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "is_amount_controllable": { - "description": "If set `true`, you may provide [amount](https://stripe.com/docs/api/issuing/authorizations/approve#approve_issuing_authorization-amount) to control how much to hold for the authorization.", - "type": "boolean" - } - }, - "required": [ - "increment_amount" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/authorizations/{authorization}/reverse": { - "post": { - "description": "

Reverse a test-mode Authorization.

", - "operationId": "PostTestHelpersIssuingAuthorizationsAuthorizationReverse", - "parameters": [ - { - "in": "path", - "name": "authorization", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "reverse_amount": { - "description": "The amount to reverse from the authorization. If not provided, the full amount of the authorization will be reversed. This amount is in the authorization currency and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.authorization" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/cards/{card}/shipping/deliver": { - "post": { - "description": "

Updates the shipping status of the specified Issuing Card object to delivered.

", - "operationId": "PostTestHelpersIssuingCardsCardShippingDeliver", - "parameters": [ - { - "in": "path", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/cards/{card}/shipping/fail": { - "post": { - "description": "

Updates the shipping status of the specified Issuing Card object to failure.

", - "operationId": "PostTestHelpersIssuingCardsCardShippingFail", - "parameters": [ - { - "in": "path", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/cards/{card}/shipping/return": { - "post": { - "description": "

Updates the shipping status of the specified Issuing Card object to returned.

", - "operationId": "PostTestHelpersIssuingCardsCardShippingReturn", - "parameters": [ - { - "in": "path", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/cards/{card}/shipping/ship": { - "post": { - "description": "

Updates the shipping status of the specified Issuing Card object to shipped.

", - "operationId": "PostTestHelpersIssuingCardsCardShippingShip", - "parameters": [ - { - "in": "path", - "name": "card", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.card" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate": { - "post": { - "description": "

Updates the status of the specified testmode personalization design object to active.

", - "operationId": "PostTestHelpersIssuingPersonalizationDesignsPersonalizationDesignActivate", - "parameters": [ - { - "in": "path", - "name": "personalization_design", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.personalization_design" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate": { - "post": { - "description": "

Updates the status of the specified testmode personalization design object to inactive.

", - "operationId": "PostTestHelpersIssuingPersonalizationDesignsPersonalizationDesignDeactivate", - "parameters": [ - { - "in": "path", - "name": "personalization_design", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.personalization_design" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject": { - "post": { - "description": "

Updates the status of the specified testmode personalization design object to rejected.

", - "operationId": "PostTestHelpersIssuingPersonalizationDesignsPersonalizationDesignReject", - "parameters": [ - { - "in": "path", - "name": "personalization_design", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "rejection_reasons": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "rejection_reasons": { - "description": "The reason(s) the personalization design was rejected.", - "properties": { - "card_logo": { - "items": { - "enum": [ - "geographic_location", - "inappropriate", - "network_name", - "non_binary_image", - "non_fiat_currency", - "other", - "other_entity", - "promotional_material" - ], - "type": "string" - }, - "type": "array" - }, - "carrier_text": { - "items": { - "enum": [ - "geographic_location", - "inappropriate", - "network_name", - "non_fiat_currency", - "other", - "other_entity", - "promotional_material" - ], - "type": "string" - }, - "type": "array" - } - }, - "title": "rejection_reasons_param", - "type": "object" - } - }, - "required": [ - "rejection_reasons" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.personalization_design" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/transactions/create_force_capture": { - "post": { - "description": "

Allows the user to capture an arbitrary amount, also known as a forced capture.

", - "operationId": "PostTestHelpersIssuingTransactionsCreateForceCapture", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "merchant_data": { - "explode": true, - "style": "deepObject" - }, - "purchase_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The total amount to attempt to capture. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "card": { - "description": "Card associated with this transaction.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "The currency of the capture. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "merchant_data": { - "description": "Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened.", - "properties": { - "category": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "network_id": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "terminal_id": { - "maxLength": 5000, - "type": "string" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "merchant_data_specs", - "type": "object" - }, - "purchase_details": { - "description": "Additional purchase information that is optionally provided by the merchant.", - "properties": { - "fleet": { - "properties": { - "cardholder_prompt_data": { - "properties": { - "driver_id": { - "maxLength": 5000, - "type": "string" - }, - "odometer": { - "type": "integer" - }, - "unspecified_id": { - "maxLength": 5000, - "type": "string" - }, - "user_id": { - "maxLength": 5000, - "type": "string" - }, - "vehicle_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_cardholder_prompt_data_specs", - "type": "object" - }, - "purchase_type": { - "enum": [ - "fuel_and_non_fuel_purchase", - "fuel_purchase", - "non_fuel_purchase" - ], - "maxLength": 5000, - "type": "string" - }, - "reported_breakdown": { - "properties": { - "fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_fuel_specs", - "type": "object" - }, - "non_fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_non_fuel_specs", - "type": "object" - }, - "tax": { - "properties": { - "local_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "national_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_tax_specs", - "type": "object" - } - }, - "title": "fleet_reported_breakdown_specs", - "type": "object" - }, - "service_type": { - "enum": [ - "full_service", - "non_fuel_transaction", - "self_service" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_specs", - "type": "object" - }, - "flight": { - "properties": { - "departure_at": { - "format": "unix-time", - "type": "integer" - }, - "passenger_name": { - "maxLength": 5000, - "type": "string" - }, - "refundable": { - "type": "boolean" - }, - "segments": { - "items": { - "properties": { - "arrival_airport_code": { - "maxLength": 3, - "type": "string" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "departure_airport_code": { - "maxLength": 3, - "type": "string" - }, - "flight_number": { - "maxLength": 5000, - "type": "string" - }, - "service_class": { - "maxLength": 5000, - "type": "string" - }, - "stopover_allowed": { - "type": "boolean" - } - }, - "title": "flight_segment_specs", - "type": "object" - }, - "type": "array" - }, - "travel_agency": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "flight_specs", - "type": "object" - }, - "fuel": { - "properties": { - "industry_product_code": { - "maxLength": 5000, - "type": "string" - }, - "quantity_decimal": { - "format": "decimal", - "type": "string" - }, - "type": { - "enum": [ - "diesel", - "other", - "unleaded_plus", - "unleaded_regular", - "unleaded_super" - ], - "maxLength": 5000, - "type": "string" - }, - "unit": { - "enum": [ - "charging_minute", - "imperial_gallon", - "kilogram", - "kilowatt_hour", - "liter", - "other", - "pound", - "us_gallon" - ], - "maxLength": 5000, - "type": "string" - }, - "unit_cost_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fuel_specs", - "type": "object" - }, - "lodging": { - "properties": { - "check_in_at": { - "format": "unix-time", - "type": "integer" - }, - "nights": { - "type": "integer" - } - }, - "title": "lodging_specs", - "type": "object" - }, - "receipt": { - "items": { - "properties": { - "description": { - "maxLength": 26, - "type": "string" - }, - "quantity": { - "format": "decimal", - "type": "string" - }, - "total": { - "type": "integer" - }, - "unit_cost": { - "type": "integer" - } - }, - "title": "receipt_specs", - "type": "object" - }, - "type": "array" - }, - "reference": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "purchase_details_specs", - "type": "object" - } - }, - "required": [ - "amount", - "card" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/transactions/create_unlinked_refund": { - "post": { - "description": "

Allows the user to refund an arbitrary amount, also known as a unlinked refund.

", - "operationId": "PostTestHelpersIssuingTransactionsCreateUnlinkedRefund", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "merchant_data": { - "explode": true, - "style": "deepObject" - }, - "purchase_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - }, - "card": { - "description": "Card associated with this unlinked refund transaction.", - "maxLength": 5000, - "type": "string" - }, - "currency": { - "description": "The currency of the unlinked refund. If not provided, defaults to the currency of the card. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "merchant_data": { - "description": "Details about the seller (grocery store, e-commerce website, etc.) where the card authorization happened.", - "properties": { - "category": { - "enum": [ - "ac_refrigeration_repair", - "accounting_bookkeeping_services", - "advertising_services", - "agricultural_cooperative", - "airlines_air_carriers", - "airports_flying_fields", - "ambulance_services", - "amusement_parks_carnivals", - "antique_reproductions", - "antique_shops", - "aquariums", - "architectural_surveying_services", - "art_dealers_and_galleries", - "artists_supply_and_craft_shops", - "auto_and_home_supply_stores", - "auto_body_repair_shops", - "auto_paint_shops", - "auto_service_shops", - "automated_cash_disburse", - "automated_fuel_dispensers", - "automobile_associations", - "automotive_parts_and_accessories_stores", - "automotive_tire_stores", - "bail_and_bond_payments", - "bakeries", - "bands_orchestras", - "barber_and_beauty_shops", - "betting_casino_gambling", - "bicycle_shops", - "billiard_pool_establishments", - "boat_dealers", - "boat_rentals_and_leases", - "book_stores", - "books_periodicals_and_newspapers", - "bowling_alleys", - "bus_lines", - "business_secretarial_schools", - "buying_shopping_services", - "cable_satellite_and_other_pay_television_and_radio", - "camera_and_photographic_supply_stores", - "candy_nut_and_confectionery_stores", - "car_and_truck_dealers_new_used", - "car_and_truck_dealers_used_only", - "car_rental_agencies", - "car_washes", - "carpentry_services", - "carpet_upholstery_cleaning", - "caterers", - "charitable_and_social_service_organizations_fundraising", - "chemicals_and_allied_products", - "child_care_services", - "childrens_and_infants_wear_stores", - "chiropodists_podiatrists", - "chiropractors", - "cigar_stores_and_stands", - "civic_social_fraternal_associations", - "cleaning_and_maintenance", - "clothing_rental", - "colleges_universities", - "commercial_equipment", - "commercial_footwear", - "commercial_photography_art_and_graphics", - "commuter_transport_and_ferries", - "computer_network_services", - "computer_programming", - "computer_repair", - "computer_software_stores", - "computers_peripherals_and_software", - "concrete_work_services", - "construction_materials", - "consulting_public_relations", - "correspondence_schools", - "cosmetic_stores", - "counseling_services", - "country_clubs", - "courier_services", - "court_costs", - "credit_reporting_agencies", - "cruise_lines", - "dairy_products_stores", - "dance_hall_studios_schools", - "dating_escort_services", - "dentists_orthodontists", - "department_stores", - "detective_agencies", - "digital_goods_applications", - "digital_goods_games", - "digital_goods_large_volume", - "digital_goods_media", - "direct_marketing_catalog_merchant", - "direct_marketing_combination_catalog_and_retail_merchant", - "direct_marketing_inbound_telemarketing", - "direct_marketing_insurance_services", - "direct_marketing_other", - "direct_marketing_outbound_telemarketing", - "direct_marketing_subscription", - "direct_marketing_travel", - "discount_stores", - "doctors", - "door_to_door_sales", - "drapery_window_covering_and_upholstery_stores", - "drinking_places", - "drug_stores_and_pharmacies", - "drugs_drug_proprietaries_and_druggist_sundries", - "dry_cleaners", - "durable_goods", - "duty_free_stores", - "eating_places_restaurants", - "educational_services", - "electric_razor_stores", - "electric_vehicle_charging", - "electrical_parts_and_equipment", - "electrical_services", - "electronics_repair_shops", - "electronics_stores", - "elementary_secondary_schools", - "emergency_services_gcas_visa_use_only", - "employment_temp_agencies", - "equipment_rental", - "exterminating_services", - "family_clothing_stores", - "fast_food_restaurants", - "financial_institutions", - "fines_government_administrative_entities", - "fireplace_fireplace_screens_and_accessories_stores", - "floor_covering_stores", - "florists", - "florists_supplies_nursery_stock_and_flowers", - "freezer_and_locker_meat_provisioners", - "fuel_dealers_non_automotive", - "funeral_services_crematories", - "furniture_home_furnishings_and_equipment_stores_except_appliances", - "furniture_repair_refinishing", - "furriers_and_fur_shops", - "general_services", - "gift_card_novelty_and_souvenir_shops", - "glass_paint_and_wallpaper_stores", - "glassware_crystal_stores", - "golf_courses_public", - "government_licensed_horse_dog_racing_us_region_only", - "government_licensed_online_casions_online_gambling_us_region_only", - "government_owned_lotteries_non_us_region", - "government_owned_lotteries_us_region_only", - "government_services", - "grocery_stores_supermarkets", - "hardware_equipment_and_supplies", - "hardware_stores", - "health_and_beauty_spas", - "hearing_aids_sales_and_supplies", - "heating_plumbing_a_c", - "hobby_toy_and_game_shops", - "home_supply_warehouse_stores", - "hospitals", - "hotels_motels_and_resorts", - "household_appliance_stores", - "industrial_supplies", - "information_retrieval_services", - "insurance_default", - "insurance_underwriting_premiums", - "intra_company_purchases", - "jewelry_stores_watches_clocks_and_silverware_stores", - "landscaping_services", - "laundries", - "laundry_cleaning_services", - "legal_services_attorneys", - "luggage_and_leather_goods_stores", - "lumber_building_materials_stores", - "manual_cash_disburse", - "marinas_service_and_supplies", - "marketplaces", - "masonry_stonework_and_plaster", - "massage_parlors", - "medical_and_dental_labs", - "medical_dental_ophthalmic_and_hospital_equipment_and_supplies", - "medical_services", - "membership_organizations", - "mens_and_boys_clothing_and_accessories_stores", - "mens_womens_clothing_stores", - "metal_service_centers", - "miscellaneous_apparel_and_accessory_shops", - "miscellaneous_auto_dealers", - "miscellaneous_business_services", - "miscellaneous_food_stores", - "miscellaneous_general_merchandise", - "miscellaneous_general_services", - "miscellaneous_home_furnishing_specialty_stores", - "miscellaneous_publishing_and_printing", - "miscellaneous_recreation_services", - "miscellaneous_repair_shops", - "miscellaneous_specialty_retail", - "mobile_home_dealers", - "motion_picture_theaters", - "motor_freight_carriers_and_trucking", - "motor_homes_dealers", - "motor_vehicle_supplies_and_new_parts", - "motorcycle_shops_and_dealers", - "motorcycle_shops_dealers", - "music_stores_musical_instruments_pianos_and_sheet_music", - "news_dealers_and_newsstands", - "non_fi_money_orders", - "non_fi_stored_value_card_purchase_load", - "nondurable_goods", - "nurseries_lawn_and_garden_supply_stores", - "nursing_personal_care", - "office_and_commercial_furniture", - "opticians_eyeglasses", - "optometrists_ophthalmologist", - "orthopedic_goods_prosthetic_devices", - "osteopaths", - "package_stores_beer_wine_and_liquor", - "paints_varnishes_and_supplies", - "parking_lots_garages", - "passenger_railways", - "pawn_shops", - "pet_shops_pet_food_and_supplies", - "petroleum_and_petroleum_products", - "photo_developing", - "photographic_photocopy_microfilm_equipment_and_supplies", - "photographic_studios", - "picture_video_production", - "piece_goods_notions_and_other_dry_goods", - "plumbing_heating_equipment_and_supplies", - "political_organizations", - "postal_services_government_only", - "precious_stones_and_metals_watches_and_jewelry", - "professional_services", - "public_warehousing_and_storage", - "quick_copy_repro_and_blueprint", - "railroads", - "real_estate_agents_and_managers_rentals", - "record_stores", - "recreational_vehicle_rentals", - "religious_goods_stores", - "religious_organizations", - "roofing_siding_sheet_metal", - "secretarial_support_services", - "security_brokers_dealers", - "service_stations", - "sewing_needlework_fabric_and_piece_goods_stores", - "shoe_repair_hat_cleaning", - "shoe_stores", - "small_appliance_repair", - "snowmobile_dealers", - "special_trade_services", - "specialty_cleaning", - "sporting_goods_stores", - "sporting_recreation_camps", - "sports_and_riding_apparel_stores", - "sports_clubs_fields", - "stamp_and_coin_stores", - "stationary_office_supplies_printing_and_writing_paper", - "stationery_stores_office_and_school_supply_stores", - "swimming_pools_sales", - "t_ui_travel_germany", - "tailors_alterations", - "tax_payments_government_agencies", - "tax_preparation_services", - "taxicabs_limousines", - "telecommunication_equipment_and_telephone_sales", - "telecommunication_services", - "telegraph_services", - "tent_and_awning_shops", - "testing_laboratories", - "theatrical_ticket_agencies", - "timeshares", - "tire_retreading_and_repair", - "tolls_bridge_fees", - "tourist_attractions_and_exhibits", - "towing_services", - "trailer_parks_campgrounds", - "transportation_services", - "travel_agencies_tour_operators", - "truck_stop_iteration", - "truck_utility_trailer_rentals", - "typesetting_plate_making_and_related_services", - "typewriter_stores", - "u_s_federal_government_agencies_or_departments", - "uniforms_commercial_clothing", - "used_merchandise_and_secondhand_stores", - "utilities", - "variety_stores", - "veterinary_services", - "video_amusement_game_supplies", - "video_game_arcades", - "video_tape_rental_stores", - "vocational_trade_schools", - "watch_jewelry_repair", - "welding_repair", - "wholesale_clubs", - "wig_and_toupee_stores", - "wires_money_orders", - "womens_accessory_and_specialty_shops", - "womens_ready_to_wear_stores", - "wrecking_and_salvage_yards" - ], - "maxLength": 5000, - "type": "string" - }, - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "network_id": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "terminal_id": { - "maxLength": 5000, - "type": "string" - }, - "url": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "merchant_data_specs", - "type": "object" - }, - "purchase_details": { - "description": "Additional purchase information that is optionally provided by the merchant.", - "properties": { - "fleet": { - "properties": { - "cardholder_prompt_data": { - "properties": { - "driver_id": { - "maxLength": 5000, - "type": "string" - }, - "odometer": { - "type": "integer" - }, - "unspecified_id": { - "maxLength": 5000, - "type": "string" - }, - "user_id": { - "maxLength": 5000, - "type": "string" - }, - "vehicle_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_cardholder_prompt_data_specs", - "type": "object" - }, - "purchase_type": { - "enum": [ - "fuel_and_non_fuel_purchase", - "fuel_purchase", - "non_fuel_purchase" - ], - "maxLength": 5000, - "type": "string" - }, - "reported_breakdown": { - "properties": { - "fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_fuel_specs", - "type": "object" - }, - "non_fuel": { - "properties": { - "gross_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_non_fuel_specs", - "type": "object" - }, - "tax": { - "properties": { - "local_amount_decimal": { - "format": "decimal", - "type": "string" - }, - "national_amount_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fleet_reported_breakdown_tax_specs", - "type": "object" - } - }, - "title": "fleet_reported_breakdown_specs", - "type": "object" - }, - "service_type": { - "enum": [ - "full_service", - "non_fuel_transaction", - "self_service" - ], - "maxLength": 5000, - "type": "string" - } - }, - "title": "fleet_specs", - "type": "object" - }, - "flight": { - "properties": { - "departure_at": { - "format": "unix-time", - "type": "integer" - }, - "passenger_name": { - "maxLength": 5000, - "type": "string" - }, - "refundable": { - "type": "boolean" - }, - "segments": { - "items": { - "properties": { - "arrival_airport_code": { - "maxLength": 3, - "type": "string" - }, - "carrier": { - "maxLength": 5000, - "type": "string" - }, - "departure_airport_code": { - "maxLength": 3, - "type": "string" - }, - "flight_number": { - "maxLength": 5000, - "type": "string" - }, - "service_class": { - "maxLength": 5000, - "type": "string" - }, - "stopover_allowed": { - "type": "boolean" - } - }, - "title": "flight_segment_specs", - "type": "object" - }, - "type": "array" - }, - "travel_agency": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "flight_specs", - "type": "object" - }, - "fuel": { - "properties": { - "industry_product_code": { - "maxLength": 5000, - "type": "string" - }, - "quantity_decimal": { - "format": "decimal", - "type": "string" - }, - "type": { - "enum": [ - "diesel", - "other", - "unleaded_plus", - "unleaded_regular", - "unleaded_super" - ], - "maxLength": 5000, - "type": "string" - }, - "unit": { - "enum": [ - "charging_minute", - "imperial_gallon", - "kilogram", - "kilowatt_hour", - "liter", - "other", - "pound", - "us_gallon" - ], - "maxLength": 5000, - "type": "string" - }, - "unit_cost_decimal": { - "format": "decimal", - "type": "string" - } - }, - "title": "fuel_specs", - "type": "object" - }, - "lodging": { - "properties": { - "check_in_at": { - "format": "unix-time", - "type": "integer" - }, - "nights": { - "type": "integer" - } - }, - "title": "lodging_specs", - "type": "object" - }, - "receipt": { - "items": { - "properties": { - "description": { - "maxLength": 26, - "type": "string" - }, - "quantity": { - "format": "decimal", - "type": "string" - }, - "total": { - "type": "integer" - }, - "unit_cost": { - "type": "integer" - } - }, - "title": "receipt_specs", - "type": "object" - }, - "type": "array" - }, - "reference": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "purchase_details_specs", - "type": "object" - } - }, - "required": [ - "amount", - "card" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/issuing/transactions/{transaction}/refund": { - "post": { - "description": "

Refund a test-mode Transaction.

", - "operationId": "PostTestHelpersIssuingTransactionsTransactionRefund", - "parameters": [ - { - "in": "path", - "name": "transaction", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "refund_amount": { - "description": "The total amount to attempt to refund. This amount is in the provided currency, or defaults to the cards currency, and in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal).", - "type": "integer" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issuing.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/refunds/{refund}/expire": { - "post": { - "description": "

Expire a refund with a status of requires_action.

", - "operationId": "PostTestHelpersRefundsRefundExpire", - "parameters": [ - { - "in": "path", - "name": "refund", - "required": true, - "schema": { - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/refund" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/terminal/readers/{reader}/present_payment_method": { - "post": { - "description": "

Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction.

", - "operationId": "PostTestHelpersTerminalReadersReaderPresentPaymentMethod", - "parameters": [ - { - "in": "path", - "name": "reader", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "card_present": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "interac_present": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount_tip": { - "description": "Simulated on-reader tip amount.", - "type": "integer" - }, - "card_present": { - "description": "Simulated data for the card_present payment method.", - "properties": { - "number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "card_present", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "interac_present": { - "description": "Simulated data for the interac_present payment method.", - "properties": { - "number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "interac_present", - "type": "object" - }, - "type": { - "description": "Simulated payment type.", - "enum": [ - "card_present", - "interac_present" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/terminal.reader" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/test_clocks": { - "get": { - "description": "

Returns a list of your test clocks.

", - "operationId": "GetTestHelpersTestClocks", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/test_helpers.test_clock" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/test_helpers/test_clocks", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "BillingClocksResourceBillingClockList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new test clock that can be attached to new customers and quotes.

", - "operationId": "PostTestHelpersTestClocks", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "frozen_time": { - "description": "The initial frozen time for this test clock.", - "format": "unix-time", - "type": "integer" - }, - "name": { - "description": "The name for this test clock.", - "maxLength": 300, - "type": "string" - } - }, - "required": [ - "frozen_time" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/test_clocks/{test_clock}": { - "delete": { - "description": "

Deletes a test clock.

", - "operationId": "DeleteTestHelpersTestClocksTestClock", - "parameters": [ - { - "in": "path", - "name": "test_clock", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_test_helpers.test_clock" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves a test clock.

", - "operationId": "GetTestHelpersTestClocksTestClock", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "test_clock", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/test_clocks/{test_clock}/advance": { - "post": { - "description": "

Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready.

", - "operationId": "PostTestHelpersTestClocksTestClockAdvance", - "parameters": [ - { - "in": "path", - "name": "test_clock", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "frozen_time": { - "description": "The time to advance the test clock. Must be after the test clock's current frozen time. Cannot be more than two intervals in the future from the shortest subscription in this test clock. If there are no subscriptions in this test clock, it cannot be more than two years in the future.", - "format": "unix-time", - "type": "integer" - } - }, - "required": [ - "frozen_time" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/test_helpers.test_clock" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/inbound_transfers/{id}/fail": { - "post": { - "description": "

Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryInboundTransfersIdFail", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "failure_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "failure_details": { - "description": "Details about a failed InboundTransfer.", - "properties": { - "code": { - "enum": [ - "account_closed", - "account_frozen", - "bank_account_restricted", - "bank_ownership_changed", - "debit_not_authorized", - "incorrect_account_holder_address", - "incorrect_account_holder_name", - "incorrect_account_holder_tax_id", - "insufficient_funds", - "invalid_account_number", - "invalid_currency", - "no_account", - "other" - ], - "type": "string" - } - }, - "title": "failure_details_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/inbound_transfers/{id}/return": { - "post": { - "description": "

Marks the test mode InboundTransfer object as returned and links the InboundTransfer to a ReceivedDebit. The InboundTransfer must already be in the succeeded state.

", - "operationId": "PostTestHelpersTreasuryInboundTransfersIdReturn", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed": { - "post": { - "description": "

Transitions a test mode created InboundTransfer to the succeeded status. The InboundTransfer must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryInboundTransfersIdSucceed", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_payments/{id}": { - "post": { - "description": "

Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the canceled or failed states.

", - "operationId": "PostTestHelpersTreasuryOutboundPaymentsId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "tracking_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "tracking_details": { - "description": "Details about network-specific tracking information.", - "properties": { - "ach": { - "properties": { - "trace_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "trace_id" - ], - "title": "ach_tracking_details_params", - "type": "object" - }, - "type": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "us_domestic_wire": { - "properties": { - "imad": { - "maxLength": 5000, - "type": "string" - }, - "omad": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "us_domestic_wire_tracking_details_params", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "tracking_details_params", - "type": "object" - } - }, - "required": [ - "tracking_details" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_payments/{id}/fail": { - "post": { - "description": "

Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryOutboundPaymentsIdFail", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_payments/{id}/post": { - "post": { - "description": "

Transitions a test mode created OutboundPayment to the posted status. The OutboundPayment must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryOutboundPaymentsIdPost", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_payments/{id}/return": { - "post": { - "description": "

Transitions a test mode created OutboundPayment to the returned status. The OutboundPayment must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryOutboundPaymentsIdReturn", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "returned_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "returned_details": { - "description": "Optional hash to set the return code.", - "properties": { - "code": { - "enum": [ - "account_closed", - "account_frozen", - "bank_account_restricted", - "bank_ownership_changed", - "declined", - "incorrect_account_holder_name", - "invalid_account_number", - "invalid_currency", - "no_account", - "other" - ], - "type": "string" - } - }, - "title": "returned_details_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}": { - "post": { - "description": "

Updates a test mode created OutboundTransfer with tracking details. The OutboundTransfer must not be cancelable, and cannot be in the canceled or failed states.

", - "operationId": "PostTestHelpersTreasuryOutboundTransfersOutboundTransfer", - "parameters": [ - { - "in": "path", - "name": "outbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "tracking_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "tracking_details": { - "description": "Details about network-specific tracking information.", - "properties": { - "ach": { - "properties": { - "trace_id": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "trace_id" - ], - "title": "ach_tracking_details_params", - "type": "object" - }, - "type": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - }, - "us_domestic_wire": { - "properties": { - "imad": { - "maxLength": 5000, - "type": "string" - }, - "omad": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "us_domestic_wire_tracking_details_params", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "tracking_details_params", - "type": "object" - } - }, - "required": [ - "tracking_details" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail": { - "post": { - "description": "

Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryOutboundTransfersOutboundTransferFail", - "parameters": [ - { - "in": "path", - "name": "outbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post": { - "post": { - "description": "

Transitions a test mode created OutboundTransfer to the posted status. The OutboundTransfer must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryOutboundTransfersOutboundTransferPost", - "parameters": [ - { - "in": "path", - "name": "outbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return": { - "post": { - "description": "

Transitions a test mode created OutboundTransfer to the returned status. The OutboundTransfer must already be in the processing state.

", - "operationId": "PostTestHelpersTreasuryOutboundTransfersOutboundTransferReturn", - "parameters": [ - { - "in": "path", - "name": "outbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "returned_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "returned_details": { - "description": "Details about a returned OutboundTransfer.", - "properties": { - "code": { - "enum": [ - "account_closed", - "account_frozen", - "bank_account_restricted", - "bank_ownership_changed", - "declined", - "incorrect_account_holder_name", - "invalid_account_number", - "invalid_currency", - "no_account", - "other" - ], - "type": "string" - } - }, - "title": "returned_details_params", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/received_credits": { - "post": { - "description": "

Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can’t directly create ReceivedCredits initiated by third parties.

", - "operationId": "PostTestHelpersTreasuryReceivedCredits", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "initiating_payment_method_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount (in cents) to be transferred.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_account": { - "description": "The FinancialAccount to send funds to.", - "type": "string" - }, - "initiating_payment_method_details": { - "description": "Initiating payment method details for the object.", - "properties": { - "type": { - "enum": [ - "us_bank_account" - ], - "type": "string" - }, - "us_bank_account": { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "us_bank_account_source_params", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "source_params", - "type": "object" - }, - "network": { - "description": "Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type.", - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "financial_account", - "network" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.received_credit" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/test_helpers/treasury/received_debits": { - "post": { - "description": "

Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can’t directly create ReceivedDebits initiated by third parties.

", - "operationId": "PostTestHelpersTreasuryReceivedDebits", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "initiating_payment_method_details": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount (in cents) to be transferred.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_account": { - "description": "The FinancialAccount to pull funds from.", - "type": "string" - }, - "initiating_payment_method_details": { - "description": "Initiating payment method details for the object.", - "properties": { - "type": { - "enum": [ - "us_bank_account" - ], - "type": "string" - }, - "us_bank_account": { - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "us_bank_account_source_params", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "source_params", - "type": "object" - }, - "network": { - "description": "Specifies the network rails to be used. If not set, will default to the PaymentMethod's preferred network. See the [docs](https://stripe.com/docs/treasury/money-movement/timelines) to learn more about money movement timelines for each network type.", - "enum": [ - "ach" - ], - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "financial_account", - "network" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.received_debit" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tokens": { - "post": { - "description": "

Creates a single-use token that represents a bank account’s details.\nYou can use this token with any API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a connected account where controller.requirement_collection is application, which includes Custom accounts.

", - "operationId": "PostTokens", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "account": { - "explode": true, - "style": "deepObject" - }, - "bank_account": { - "explode": true, - "style": "deepObject" - }, - "card": { - "explode": true, - "style": "deepObject" - }, - "cvc_update": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "person": { - "explode": true, - "style": "deepObject" - }, - "pii": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "account": { - "description": "Information for the account this token represents.", - "properties": { - "business_type": { - "enum": [ - "company", - "government_entity", - "individual", - "non_profit" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "company": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "directors_provided": { - "type": "boolean" - }, - "executives_provided": { - "type": "boolean" - }, - "export_license_id": { - "maxLength": 5000, - "type": "string" - }, - "export_purpose_code": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "name_kana": { - "maxLength": 100, - "type": "string" - }, - "name_kanji": { - "maxLength": 100, - "type": "string" - }, - "owners_provided": { - "type": "boolean" - }, - "ownership_declaration": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "company_ownership_declaration", - "type": "object" - }, - "ownership_declaration_shown_and_signed": { - "type": "boolean" - }, - "phone": { - "maxLength": 5000, - "type": "string" - }, - "registration_number": { - "maxLength": 5000, - "type": "string" - }, - "structure": { - "enum": [ - "", - "free_zone_establishment", - "free_zone_llc", - "government_instrumentality", - "governmental_unit", - "incorporated_non_profit", - "incorporated_partnership", - "limited_liability_partnership", - "llc", - "multi_member_llc", - "private_company", - "private_corporation", - "private_partnership", - "public_company", - "public_corporation", - "public_partnership", - "registered_charity", - "single_member_llc", - "sole_establishment", - "sole_proprietorship", - "tax_exempt_government_instrumentality", - "unincorporated_association", - "unincorporated_non_profit", - "unincorporated_partnership" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "tax_id": { - "maxLength": 5000, - "type": "string" - }, - "tax_id_registrar": { - "maxLength": 5000, - "type": "string" - }, - "vat_id": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "verification_document_specs", - "type": "object" - } - }, - "title": "verification_specs", - "type": "object" - } - }, - "title": "connect_js_account_token_company_specs", - "type": "object" - }, - "individual": { - "properties": { - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "type": "string" - }, - "first_name": { - "maxLength": 100, - "type": "string" - }, - "first_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 300, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "gender": { - "type": "string" - }, - "id_number": { - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "maxLength": 100, - "type": "string" - }, - "last_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "type": "string" - }, - "political_exposure": { - "enum": [ - "existing", - "none" - ], - "type": "string" - }, - "registered_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "individual_relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "maxLength": 5000, - "type": "string" - }, - "verification": { - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "title": "individual_specs", - "type": "object" - }, - "tos_shown_and_accepted": { - "type": "boolean" - } - }, - "title": "connect_js_account_token_specs", - "type": "object" - }, - "bank_account": { - "description": "The bank account this token will represent.", - "properties": { - "account_holder_name": { - "maxLength": 5000, - "type": "string" - }, - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "maxLength": 5000, - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "futsu", - "savings", - "toza" - ], - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "type": "string" - }, - "payment_method": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "account_number", - "country" - ], - "title": "token_create_bank_account", - "type": "object", - "x-stripeBypassValidation": true - }, - "card": { - "anyOf": [ - { - "properties": { - "address_city": { - "maxLength": 5000, - "type": "string" - }, - "address_country": { - "maxLength": 5000, - "type": "string" - }, - "address_line1": { - "maxLength": 5000, - "type": "string" - }, - "address_line2": { - "maxLength": 5000, - "type": "string" - }, - "address_state": { - "maxLength": 5000, - "type": "string" - }, - "address_zip": { - "maxLength": 5000, - "type": "string" - }, - "currency": { - "maxLength": 5000, - "type": "string" - }, - "cvc": { - "maxLength": 5000, - "type": "string" - }, - "exp_month": { - "maxLength": 5000, - "type": "string" - }, - "exp_year": { - "maxLength": 5000, - "type": "string" - }, - "name": { - "maxLength": 5000, - "type": "string" - }, - "networks": { - "properties": { - "preferred": { - "enum": [ - "cartes_bancaires", - "mastercard", - "visa" - ], - "type": "string" - } - }, - "title": "networks_param_specs", - "type": "object" - }, - "number": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "exp_month", - "exp_year", - "number" - ], - "title": "credit_card_specs", - "type": "object" - }, - { - "maxLength": 5000, - "type": "string" - } - ], - "description": "The card this token will represent. If you also pass in a customer, the card must be the ID of a card belonging to the customer. Otherwise, if you do not pass in a customer, this is a dictionary containing a user's credit card details, with the options described below.", - "x-stripeBypassValidation": true - }, - "customer": { - "description": "Create a token for the customer, which is owned by the application's account. You can only use this with an [OAuth access token](https://stripe.com/docs/connect/standard-accounts) or [Stripe-Account header](https://stripe.com/docs/connect/authentication). Learn more about [cloning saved payment methods](https://stripe.com/docs/connect/cloning-saved-payment-methods).", - "maxLength": 5000, - "type": "string" - }, - "cvc_update": { - "description": "The updated CVC value this token represents.", - "properties": { - "cvc": { - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "cvc" - ], - "title": "cvc_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "person": { - "description": "Information for the person this token represents.", - "properties": { - "additional_tos_acceptances": { - "properties": { - "account": { - "properties": { - "date": { - "format": "unix-time", - "type": "integer" - }, - "ip": { - "type": "string" - }, - "user_agent": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "settings_terms_of_service_specs", - "type": "object" - } - }, - "title": "person_additional_tos_acceptances_specs", - "type": "object" - }, - "address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "legal_entity_and_kyc_address_specs", - "type": "object" - }, - "address_kana": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kana_specs", - "type": "object" - }, - "address_kanji": { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - }, - "town": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "japan_address_kanji_specs", - "type": "object" - }, - "dob": { - "anyOf": [ - { - "properties": { - "day": { - "type": "integer" - }, - "month": { - "type": "integer" - }, - "year": { - "type": "integer" - } - }, - "required": [ - "day", - "month", - "year" - ], - "title": "date_of_birth_specs", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "documents": { - "properties": { - "company_authorization": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "passport": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - }, - "visa": { - "properties": { - "files": { - "items": { - "anyOf": [ - { - "maxLength": 500, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "type": "array" - } - }, - "title": "documents_param", - "type": "object" - } - }, - "title": "person_documents_specs", - "type": "object" - }, - "email": { - "type": "string" - }, - "first_name": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "first_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "full_name_aliases": { - "anyOf": [ - { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "gender": { - "type": "string" - }, - "id_number": { - "maxLength": 5000, - "type": "string" - }, - "id_number_secondary": { - "maxLength": 5000, - "type": "string" - }, - "last_name": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kana": { - "maxLength": 5000, - "type": "string" - }, - "last_name_kanji": { - "maxLength": 5000, - "type": "string" - }, - "maiden_name": { - "maxLength": 5000, - "type": "string" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "nationality": { - "maxLength": 5000, - "type": "string" - }, - "phone": { - "type": "string" - }, - "political_exposure": { - "maxLength": 5000, - "type": "string" - }, - "registered_address": { - "properties": { - "city": { - "maxLength": 100, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 200, - "type": "string" - }, - "line2": { - "maxLength": 200, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "address_specs", - "type": "object" - }, - "relationship": { - "properties": { - "director": { - "type": "boolean" - }, - "executive": { - "type": "boolean" - }, - "legal_guardian": { - "type": "boolean" - }, - "owner": { - "type": "boolean" - }, - "percent_ownership": { - "anyOf": [ - { - "type": "number" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "representative": { - "type": "boolean" - }, - "title": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "relationship_specs", - "type": "object" - }, - "ssn_last_4": { - "type": "string" - }, - "verification": { - "properties": { - "additional_document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - }, - "document": { - "properties": { - "back": { - "maxLength": 500, - "type": "string" - }, - "front": { - "maxLength": 500, - "type": "string" - } - }, - "title": "person_verification_document_specs", - "type": "object" - } - }, - "title": "person_verification_specs", - "type": "object" - } - }, - "title": "person_token_specs", - "type": "object" - }, - "pii": { - "description": "The PII this token represents.", - "properties": { - "id_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "pii_token_specs", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/tokens/{token}": { - "get": { - "description": "

Retrieves the token with the given ID.

", - "operationId": "GetTokensToken", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "token", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/token" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/topups": { - "get": { - "description": "

Returns a list of top-ups.

", - "operationId": "GetTopups", - "parameters": [ - { - "description": "A positive integer representing how much to transfer.", - "explode": true, - "in": "query", - "name": "amount", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return top-ups that have the given status. One of `canceled`, `failed`, `pending` or `succeeded`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "failed", - "pending", - "succeeded" - ], - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/topup" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/topups", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TopupList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Top up the balance of an account

", - "operationId": "PostTopups", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer representing how much to transfer.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "source": { - "description": "The ID of a source to transfer funds from. For most users, this should be left unspecified which will use the bank account that was set up in the dashboard for the specified currency. In test mode, this can be a test bank token (see [Testing Top-ups](https://stripe.com/docs/connect/testing#testing-top-ups)).", - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor": { - "description": "Extra information about a top-up for the source's bank statement. Limited to 15 ASCII characters.", - "maxLength": 15, - "type": "string" - }, - "transfer_group": { - "description": "A string that identifies this top-up as part of a group.", - "type": "string" - } - }, - "required": [ - "amount", - "currency" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/topup" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/topups/{topup}": { - "get": { - "description": "

Retrieves the details of a top-up that has previously been created. Supply the unique top-up ID that was returned from your previous request, and Stripe will return the corresponding top-up information.

", - "operationId": "GetTopupsTopup", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "topup", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/topup" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the metadata of a top-up. Other top-up details are not editable by design.

", - "operationId": "PostTopupsTopup", - "parameters": [ - { - "in": "path", - "name": "topup", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/topup" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/topups/{topup}/cancel": { - "post": { - "description": "

Cancels a top-up. Only pending top-ups can be canceled.

", - "operationId": "PostTopupsTopupCancel", - "parameters": [ - { - "in": "path", - "name": "topup", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/topup" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/transfers": { - "get": { - "description": "

Returns a list of existing transfers sent to connected accounts. The transfers are returned in sorted order, with the most recently created transfers appearing first.

", - "operationId": "GetTransfers", - "parameters": [ - { - "description": "Only return transfers that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return transfers for the destination specified by this account ID.", - "in": "query", - "name": "destination", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return transfers with the specified transfer group.", - "in": "query", - "name": "transfer_group", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/transfer" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/transfers", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TransferList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

To send funds from your Stripe account to a connected account, you create a new transfer object. Your Stripe balance must be able to cover the transfer amount, or you’ll receive an “Insufficient Funds” error.

", - "operationId": "PostTransfers", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer in cents (or local equivalent) representing how much to transfer.", - "type": "integer" - }, - "currency": { - "description": "3-letter [ISO code for currency](https://stripe.com/docs/payouts).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "destination": { - "description": "The ID of a connected Stripe account. See the Connect documentation for details.", - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "source_transaction": { - "description": "You can use this parameter to transfer funds from a charge before they are added to your available balance. A pending balance will transfer immediately but the funds will not become available until the original charge becomes available. [See the Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-availability) for details.", - "type": "string" - }, - "source_type": { - "description": "The source balance to use for this transfer. One of `bank_account`, `card`, or `fpx`. For most users, this will default to `card`.", - "enum": [ - "bank_account", - "card", - "fpx" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "transfer_group": { - "description": "A string that identifies this transaction as part of a group. See the [Connect documentation](https://stripe.com/docs/connect/separate-charges-and-transfers#transfer-options) for details.", - "type": "string" - } - }, - "required": [ - "currency", - "destination" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/transfers/{id}/reversals": { - "get": { - "description": "

You can see a list of the reversals belonging to a specific transfer. Note that the 10 most recent reversals are always available by default on the transfer object. If you need more than those 10, you can use this API method and the limit and starting_after parameters to page through additional reversals.

", - "operationId": "GetTransfersIdReversals", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/transfer_reversal" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TransferReversalList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

When you create a new reversal, you must specify a transfer to create it on.

\n\n

When reversing transfers, you can optionally reverse part of the transfer. You can do so as many times as you wish until the entire transfer has been reversed.

\n\n

Once entirely reversed, a transfer can’t be reversed again. This method will return an error when called on an already-reversed transfer, or when trying to reverse more money than is left on a transfer.

", - "operationId": "PostTransfersIdReversals", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "A positive integer in cents (or local equivalent) representing how much of this transfer to reverse. Can only reverse up to the unreversed amount remaining of the transfer. Partial transfer reversals are only allowed for transfers to Stripe Accounts. Defaults to the entire transfer amount.", - "type": "integer" - }, - "description": { - "description": "An arbitrary string which you can attach to a reversal object. This will be unset if you POST an empty value.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "refund_application_fee": { - "description": "Boolean indicating whether the application fee should be refunded when reversing this transfer. If a full transfer reversal is given, the full application fee will be refunded. Otherwise, the application fee will be refunded with an amount proportional to the amount of the transfer reversed.", - "type": "boolean" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/transfer_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/transfers/{transfer}": { - "get": { - "description": "

Retrieves the details of an existing transfer. Supply the unique transfer ID from either a transfer creation request or the transfer list, and Stripe will return the corresponding transfer information.

", - "operationId": "GetTransfersTransfer", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified transfer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

\n\n

This request accepts only metadata as an argument.

", - "operationId": "PostTransfersTransfer", - "parameters": [ - { - "in": "path", - "name": "transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/transfers/{transfer}/reversals/{id}": { - "get": { - "description": "

By default, you can see the 10 most recent reversals stored directly on the transfer object, but you can also retrieve details about a specific reversal stored on the transfer.

", - "operationId": "GetTransfersTransferReversalsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/transfer_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the specified reversal by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

\n\n

This request only accepts metadata and description as arguments.

", - "operationId": "PostTransfersTransferReversalsId", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "in": "path", - "name": "transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/transfer_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/credit_reversals": { - "get": { - "description": "

Returns a list of CreditReversals.

", - "operationId": "GetTreasuryCreditReversals", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return CreditReversals for the ReceivedCredit ID.", - "in": "query", - "name": "received_credit", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return CreditReversals for a given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "posted", - "processing" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.credit_reversal" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryReceivedCreditsResourceCreditReversalList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Reverses a ReceivedCredit and creates a CreditReversal object.

", - "operationId": "PostTreasuryCreditReversals", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "received_credit": { - "description": "The ReceivedCredit to reverse.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "received_credit" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.credit_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/credit_reversals/{credit_reversal}": { - "get": { - "description": "

Retrieves the details of an existing CreditReversal by passing the unique CreditReversal ID from either the CreditReversal creation request or CreditReversal list

", - "operationId": "GetTreasuryCreditReversalsCreditReversal", - "parameters": [ - { - "in": "path", - "name": "credit_reversal", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.credit_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/debit_reversals": { - "get": { - "description": "

Returns a list of DebitReversals.

", - "operationId": "GetTreasuryDebitReversals", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return DebitReversals for the ReceivedDebit ID.", - "in": "query", - "name": "received_debit", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return DebitReversals for a given resolution.", - "in": "query", - "name": "resolution", - "required": false, - "schema": { - "enum": [ - "lost", - "won" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return DebitReversals for a given status.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "completed", - "processing" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.debit_reversal" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryReceivedDebitsResourceDebitReversalList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Reverses a ReceivedDebit and creates a DebitReversal object.

", - "operationId": "PostTreasuryDebitReversals", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "received_debit": { - "description": "The ReceivedDebit to reverse.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "received_debit" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.debit_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/debit_reversals/{debit_reversal}": { - "get": { - "description": "

Retrieves a DebitReversal object.

", - "operationId": "GetTreasuryDebitReversalsDebitReversal", - "parameters": [ - { - "in": "path", - "name": "debit_reversal", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.debit_reversal" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/financial_accounts": { - "get": { - "description": "

Returns a list of FinancialAccounts.

", - "operationId": "GetTreasuryFinancialAccounts", - "parameters": [ - { - "description": "Only return FinancialAccounts that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "An object ID cursor for use in pagination.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit ranging from 1 to 100 (defaults to 10).", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "An object ID cursor for use in pagination.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/treasury.financial_account" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/treasury/financial_accounts", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryFinancialAccountsResourceFinancialAccountList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates a new FinancialAccount. For now, each connected account can only have one FinancialAccount.

", - "operationId": "PostTreasuryFinancialAccounts", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "platform_restrictions": { - "explode": true, - "style": "deepObject" - }, - "supported_currencies": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "Encodes whether a FinancialAccount has access to a particular feature. Stripe or the platform can control features via the requested field.", - "properties": { - "card_issuing": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "deposit_insurance": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "financial_addresses": { - "properties": { - "aba": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "aba_access", - "type": "object" - } - }, - "title": "financial_addresses", - "type": "object" - }, - "inbound_transfers": { - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - } - }, - "title": "inbound_transfers", - "type": "object" - }, - "intra_stripe_flows": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "outbound_payments": { - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - }, - "us_domestic_wire": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - } - }, - "title": "outbound_payments", - "type": "object" - }, - "outbound_transfers": { - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - }, - "us_domestic_wire": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - } - }, - "title": "outbound_transfers", - "type": "object" - } - }, - "title": "feature_access", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "platform_restrictions": { - "description": "The set of functionalities that the platform can restrict on the FinancialAccount.", - "properties": { - "inbound_flows": { - "enum": [ - "restricted", - "unrestricted" - ], - "type": "string" - }, - "outbound_flows": { - "enum": [ - "restricted", - "unrestricted" - ], - "type": "string" - } - }, - "title": "platform_restrictions", - "type": "object" - }, - "supported_currencies": { - "description": "The currencies the FinancialAccount can hold a balance in.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "supported_currencies" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.financial_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/financial_accounts/{financial_account}": { - "get": { - "description": "

Retrieves the details of a FinancialAccount.

", - "operationId": "GetTreasuryFinancialAccountsFinancialAccount", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "financial_account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.financial_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the details of a FinancialAccount.

", - "operationId": "PostTreasuryFinancialAccountsFinancialAccount", - "parameters": [ - { - "in": "path", - "name": "financial_account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "features": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - }, - "platform_restrictions": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "features": { - "description": "Encodes whether a FinancialAccount has access to a particular feature, with a status enum and associated `status_details`. Stripe or the platform may control features via the requested field.", - "properties": { - "card_issuing": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "deposit_insurance": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "financial_addresses": { - "properties": { - "aba": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "aba_access", - "type": "object" - } - }, - "title": "financial_addresses", - "type": "object" - }, - "inbound_transfers": { - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - } - }, - "title": "inbound_transfers", - "type": "object" - }, - "intra_stripe_flows": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "outbound_payments": { - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - }, - "us_domestic_wire": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - } - }, - "title": "outbound_payments", - "type": "object" - }, - "outbound_transfers": { - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - }, - "us_domestic_wire": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - } - }, - "title": "outbound_transfers", - "type": "object" - } - }, - "title": "feature_access", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "platform_restrictions": { - "description": "The set of functionalities that the platform can restrict on the FinancialAccount.", - "properties": { - "inbound_flows": { - "enum": [ - "restricted", - "unrestricted" - ], - "type": "string" - }, - "outbound_flows": { - "enum": [ - "restricted", - "unrestricted" - ], - "type": "string" - } - }, - "title": "platform_restrictions", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.financial_account" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/financial_accounts/{financial_account}/features": { - "get": { - "description": "

Retrieves Features information associated with the FinancialAccount.

", - "operationId": "GetTreasuryFinancialAccountsFinancialAccountFeatures", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "financial_account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.financial_account_features" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the Features associated with a FinancialAccount.

", - "operationId": "PostTreasuryFinancialAccountsFinancialAccountFeatures", - "parameters": [ - { - "in": "path", - "name": "financial_account", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "card_issuing": { - "explode": true, - "style": "deepObject" - }, - "deposit_insurance": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "financial_addresses": { - "explode": true, - "style": "deepObject" - }, - "inbound_transfers": { - "explode": true, - "style": "deepObject" - }, - "intra_stripe_flows": { - "explode": true, - "style": "deepObject" - }, - "outbound_payments": { - "explode": true, - "style": "deepObject" - }, - "outbound_transfers": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "card_issuing": { - "description": "Encodes the FinancialAccount's ability to be used with the Issuing product, including attaching cards to and drawing funds from the FinancialAccount.", - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "deposit_insurance": { - "description": "Represents whether this FinancialAccount is eligible for deposit insurance. Various factors determine the insurance amount.", - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_addresses": { - "description": "Contains Features that add FinancialAddresses to the FinancialAccount.", - "properties": { - "aba": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "aba_access", - "type": "object" - } - }, - "title": "financial_addresses", - "type": "object" - }, - "inbound_transfers": { - "description": "Contains settings related to adding funds to a FinancialAccount from another Account with the same owner.", - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - } - }, - "title": "inbound_transfers", - "type": "object" - }, - "intra_stripe_flows": { - "description": "Represents the ability for the FinancialAccount to send money to, or receive money from other FinancialAccounts (for example, via OutboundPayment).", - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - }, - "outbound_payments": { - "description": "Includes Features related to initiating money movement out of the FinancialAccount to someone else's bucket of money.", - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - }, - "us_domestic_wire": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - } - }, - "title": "outbound_payments", - "type": "object" - }, - "outbound_transfers": { - "description": "Contains a Feature and settings related to moving money out of the FinancialAccount into another Account with the same owner.", - "properties": { - "ach": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access_with_ach_details", - "type": "object" - }, - "us_domestic_wire": { - "properties": { - "requested": { - "type": "boolean" - } - }, - "required": [ - "requested" - ], - "title": "access", - "type": "object" - } - }, - "title": "outbound_transfers", - "type": "object" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.financial_account_features" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/inbound_transfers": { - "get": { - "description": "

Returns a list of InboundTransfers sent from the specified FinancialAccount.

", - "operationId": "GetTreasuryInboundTransfers", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return InboundTransfers that have the given status: `processing`, `succeeded`, `failed` or `canceled`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "failed", - "processing", - "succeeded" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryInboundTransfersResourceInboundTransferList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an InboundTransfer.

", - "operationId": "PostTreasuryInboundTransfers", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount (in cents) to be transferred.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_account": { - "description": "The FinancialAccount to send funds to.", - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "origin_payment_method": { - "description": "The origin payment method to be debited for the InboundTransfer.", - "maxLength": 5000, - "type": "string" - }, - "statement_descriptor": { - "description": "The complete description that appears on your customers' statements. Maximum 10 characters.", - "maxLength": 10, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "financial_account", - "origin_payment_method" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/inbound_transfers/{id}": { - "get": { - "description": "

Retrieves the details of an existing InboundTransfer.

", - "operationId": "GetTreasuryInboundTransfersId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel": { - "post": { - "description": "

Cancels an InboundTransfer.

", - "operationId": "PostTreasuryInboundTransfersInboundTransferCancel", - "parameters": [ - { - "in": "path", - "name": "inbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.inbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/outbound_payments": { - "get": { - "description": "

Returns a list of OutboundPayments sent from the specified FinancialAccount.

", - "operationId": "GetTreasuryOutboundPayments", - "parameters": [ - { - "description": "Only return OutboundPayments that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "Only return OutboundPayments sent to this customer.", - "in": "query", - "name": "customer", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return OutboundPayments that have the given status: `processing`, `failed`, `posted`, `returned`, or `canceled`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "failed", - "posted", - "processing", - "returned" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.outbound_payment" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/treasury/outbound_payments", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryOutboundPaymentsResourceOutboundPaymentList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an OutboundPayment.

", - "operationId": "PostTreasuryOutboundPayments", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "destination_payment_method_data": { - "explode": true, - "style": "deepObject" - }, - "destination_payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "end_user_details": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount (in cents) to be transferred.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "customer": { - "description": "ID of the customer to whom the OutboundPayment is sent. Must match the Customer attached to the `destination_payment_method` passed in.", - "maxLength": 5000, - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "destination_payment_method": { - "description": "The PaymentMethod to use as the payment instrument for the OutboundPayment. Exclusive with `destination_payment_method_data`.", - "maxLength": 5000, - "type": "string" - }, - "destination_payment_method_data": { - "description": "Hash used to generate the PaymentMethod to be used for this OutboundPayment. Exclusive with `destination_payment_method`.", - "properties": { - "billing_details": { - "properties": { - "address": { - "anyOf": [ - { - "properties": { - "city": { - "maxLength": 5000, - "type": "string" - }, - "country": { - "maxLength": 5000, - "type": "string" - }, - "line1": { - "maxLength": 5000, - "type": "string" - }, - "line2": { - "maxLength": 5000, - "type": "string" - }, - "postal_code": { - "maxLength": 5000, - "type": "string" - }, - "state": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "billing_details_address", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "email": { - "anyOf": [ - { - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "name": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - }, - "phone": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "billing_details_inner_params", - "type": "object" - }, - "financial_account": { - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "type": { - "enum": [ - "financial_account", - "us_bank_account" - ], - "type": "string" - }, - "us_bank_account": { - "properties": { - "account_holder_type": { - "enum": [ - "company", - "individual" - ], - "type": "string" - }, - "account_number": { - "maxLength": 5000, - "type": "string" - }, - "account_type": { - "enum": [ - "checking", - "savings" - ], - "type": "string" - }, - "financial_connections_account": { - "maxLength": 5000, - "type": "string" - }, - "routing_number": { - "maxLength": 5000, - "type": "string" - } - }, - "title": "payment_method_param", - "type": "object" - } - }, - "required": [ - "type" - ], - "title": "payment_method_data", - "type": "object" - }, - "destination_payment_method_options": { - "description": "Payment method-specific configuration for this OutboundPayment.", - "properties": { - "us_bank_account": { - "anyOf": [ - { - "properties": { - "network": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "end_user_details": { - "description": "End user details.", - "properties": { - "ip_address": { - "type": "string" - }, - "present": { - "type": "boolean" - } - }, - "required": [ - "present" - ], - "title": "end_user_details_params", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_account": { - "description": "The FinancialAccount to pull funds from.", - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "statement_descriptor": { - "description": "The description that appears on the receiving end for this OutboundPayment (for example, bank statement for external bank transfer). Maximum 10 characters for `ach` payments, 140 characters for `us_domestic_wire` payments, or 500 characters for `stripe` network transfers. The default value is \"payment\".", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "financial_account" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/outbound_payments/{id}": { - "get": { - "description": "

Retrieves the details of an existing OutboundPayment by passing the unique OutboundPayment ID from either the OutboundPayment creation request or OutboundPayment list.

", - "operationId": "GetTreasuryOutboundPaymentsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/outbound_payments/{id}/cancel": { - "post": { - "description": "

Cancel an OutboundPayment.

", - "operationId": "PostTreasuryOutboundPaymentsIdCancel", - "parameters": [ - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_payment" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/outbound_transfers": { - "get": { - "description": "

Returns a list of OutboundTransfers sent from the specified FinancialAccount.

", - "operationId": "GetTreasuryOutboundTransfers", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return OutboundTransfers that have the given status: `processing`, `canceled`, `failed`, `posted`, or `returned`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "canceled", - "failed", - "posted", - "processing", - "returned" - ], - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryOutboundTransfersResourceOutboundTransferList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Creates an OutboundTransfer.

", - "operationId": "PostTreasuryOutboundTransfers", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "destination_payment_method_options": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "amount": { - "description": "Amount (in cents) to be transferred.", - "type": "integer" - }, - "currency": { - "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", - "type": "string" - }, - "description": { - "description": "An arbitrary string attached to the object. Often useful for displaying to users.", - "maxLength": 5000, - "type": "string" - }, - "destination_payment_method": { - "description": "The PaymentMethod to use as the payment instrument for the OutboundTransfer.", - "maxLength": 5000, - "type": "string" - }, - "destination_payment_method_options": { - "description": "Hash describing payment method configuration details.", - "properties": { - "us_bank_account": { - "anyOf": [ - { - "properties": { - "network": { - "enum": [ - "ach", - "us_domestic_wire" - ], - "type": "string" - } - }, - "title": "payment_method_options_param", - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ] - } - }, - "title": "payment_method_options", - "type": "object" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "financial_account": { - "description": "The FinancialAccount to pull funds from.", - "type": "string" - }, - "metadata": { - "additionalProperties": { - "type": "string" - }, - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.", - "type": "object" - }, - "statement_descriptor": { - "description": "Statement descriptor to be shown on the receiving end of an OutboundTransfer. Maximum 10 characters for `ach` transfers or 140 characters for `us_domestic_wire` transfers. The default value is \"transfer\".", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "financial_account" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/outbound_transfers/{outbound_transfer}": { - "get": { - "description": "

Retrieves the details of an existing OutboundTransfer by passing the unique OutboundTransfer ID from either the OutboundTransfer creation request or OutboundTransfer list.

", - "operationId": "GetTreasuryOutboundTransfersOutboundTransfer", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "outbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/outbound_transfers/{outbound_transfer}/cancel": { - "post": { - "description": "

An OutboundTransfer can be canceled if the funds have not yet been paid out.

", - "operationId": "PostTreasuryOutboundTransfersOutboundTransferCancel", - "parameters": [ - { - "in": "path", - "name": "outbound_transfer", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "expand": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.outbound_transfer" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/received_credits": { - "get": { - "description": "

Returns a list of ReceivedCredits.

", - "operationId": "GetTreasuryReceivedCredits", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The FinancialAccount that received the funds.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "Only return ReceivedCredits described by the flow.", - "explode": true, - "in": "query", - "name": "linked_flows", - "required": false, - "schema": { - "properties": { - "source_flow_type": { - "enum": [ - "credit_reversal", - "other", - "outbound_payment", - "payout" - ], - "type": "string", - "x-stripeBypassValidation": true - } - }, - "required": [ - "source_flow_type" - ], - "title": "linked_flows_param", - "type": "object" - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return ReceivedCredits that have the given status: `succeeded` or `failed`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "failed", - "succeeded" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.received_credit" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryReceivedCreditsResourceReceivedCreditList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/received_credits/{id}": { - "get": { - "description": "

Retrieves the details of an existing ReceivedCredit by passing the unique ReceivedCredit ID from the ReceivedCredit list.

", - "operationId": "GetTreasuryReceivedCreditsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.received_credit" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/received_debits": { - "get": { - "description": "

Returns a list of ReceivedDebits.

", - "operationId": "GetTreasuryReceivedDebits", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "The FinancialAccount that funds were pulled from.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return ReceivedDebits that have the given status: `succeeded` or `failed`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "failed", - "succeeded" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.received_debit" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryReceivedDebitsResourceReceivedDebitList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/received_debits/{id}": { - "get": { - "description": "

Retrieves the details of an existing ReceivedDebit by passing the unique ReceivedDebit ID from the ReceivedDebit list

", - "operationId": "GetTreasuryReceivedDebitsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.received_debit" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/transaction_entries": { - "get": { - "description": "

Retrieves a list of TransactionEntry objects.

", - "operationId": "GetTreasuryTransactionEntries", - "parameters": [ - { - "description": "Only return TransactionEntries that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "explode": true, - "in": "query", - "name": "effective_at", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The results are in reverse chronological order by `created` or `effective_at`. The default is `created`.", - "in": "query", - "name": "order_by", - "required": false, - "schema": { - "enum": [ - "created", - "effective_at" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return TransactionEntries associated with this Transaction.", - "in": "query", - "name": "transaction", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.transaction_entry" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/treasury/transaction_entries", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryTransactionsResourceTransactionEntryList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/transaction_entries/{id}": { - "get": { - "description": "

Retrieves a TransactionEntry object.

", - "operationId": "GetTreasuryTransactionEntriesId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.transaction_entry" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/transactions": { - "get": { - "description": "

Retrieves a list of Transaction objects.

", - "operationId": "GetTreasuryTransactions", - "parameters": [ - { - "description": "Only return Transactions that were created during the given date interval.", - "explode": true, - "in": "query", - "name": "created", - "required": false, - "schema": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - }, - "style": "deepObject" - }, - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "Returns objects associated with this FinancialAccount.", - "in": "query", - "name": "financial_account", - "required": true, - "schema": { - "type": "string" - }, - "style": "form" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "The results are in reverse chronological order by `created` or `posted_at`. The default is `created`.", - "in": "query", - "name": "order_by", - "required": false, - "schema": { - "enum": [ - "created", - "posted_at" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Only return Transactions that have the given status: `open`, `posted`, or `void`.", - "in": "query", - "name": "status", - "required": false, - "schema": { - "enum": [ - "open", - "posted", - "void" - ], - "type": "string" - }, - "style": "form" - }, - { - "description": "A filter for the `status_transitions.posted_at` timestamp. When using this filter, `status=posted` and `order_by=posted_at` must also be specified.", - "explode": true, - "in": "query", - "name": "status_transitions", - "required": false, - "schema": { - "properties": { - "posted_at": { - "anyOf": [ - { - "properties": { - "gt": { - "type": "integer" - }, - "gte": { - "type": "integer" - }, - "lt": { - "type": "integer" - }, - "lte": { - "type": "integer" - } - }, - "title": "range_query_specs", - "type": "object" - }, - { - "type": "integer" - } - ] - } - }, - "title": "status_transition_timestamp_specs", - "type": "object" - }, - "style": "deepObject" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "description": "Details about each object.", - "items": { - "$ref": "#/components/schemas/treasury.transaction" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "TreasuryTransactionsResourceTransactionList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/treasury/transactions/{id}": { - "get": { - "description": "

Retrieves the details of an existing Transaction.

", - "operationId": "GetTreasuryTransactionsId", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/treasury.transaction" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/webhook_endpoints": { - "get": { - "description": "

Returns a list of your webhook endpoints.

", - "operationId": "GetWebhookEndpoints", - "parameters": [ - { - "description": "A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.", - "in": "query", - "name": "ending_before", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - }, - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.", - "in": "query", - "name": "limit", - "required": false, - "schema": { - "type": "integer" - }, - "style": "form" - }, - { - "description": "A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.", - "in": "query", - "name": "starting_after", - "required": false, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "form" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "description": "", - "properties": { - "data": { - "items": { - "$ref": "#/components/schemas/webhook_endpoint" - }, - "type": "array" - }, - "has_more": { - "description": "True if this list has another page of items after this one that can be fetched.", - "type": "boolean" - }, - "object": { - "description": "String representing the object's type. Objects of the same type share the same value. Always has the value `list`.", - "enum": [ - "list" - ], - "type": "string" - }, - "url": { - "description": "The URL where this list can be accessed.", - "maxLength": 5000, - "pattern": "^/v1/webhook_endpoints", - "type": "string" - } - }, - "required": [ - "data", - "has_more", - "object", - "url" - ], - "title": "NotificationWebhookEndpointList", - "type": "object", - "x-expandableFields": [ - "data" - ] - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the webhooks settings section of the Dashboard.

", - "operationId": "PostWebhookEndpoints", - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "description": { - "explode": true, - "style": "deepObject" - }, - "enabled_events": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "api_version": { - "description": "Events sent to this endpoint will be generated with this Stripe Version instead of your account's default Stripe Version.", - "enum": [ - "2011-01-01", - "2011-06-21", - "2011-06-28", - "2011-08-01", - "2011-09-15", - "2011-11-17", - "2012-02-23", - "2012-03-25", - "2012-06-18", - "2012-06-28", - "2012-07-09", - "2012-09-24", - "2012-10-26", - "2012-11-07", - "2013-02-11", - "2013-02-13", - "2013-07-05", - "2013-08-12", - "2013-08-13", - "2013-10-29", - "2013-12-03", - "2014-01-31", - "2014-03-13", - "2014-03-28", - "2014-05-19", - "2014-06-13", - "2014-06-17", - "2014-07-22", - "2014-07-26", - "2014-08-04", - "2014-08-20", - "2014-09-08", - "2014-10-07", - "2014-11-05", - "2014-11-20", - "2014-12-08", - "2014-12-17", - "2014-12-22", - "2015-01-11", - "2015-01-26", - "2015-02-10", - "2015-02-16", - "2015-02-18", - "2015-03-24", - "2015-04-07", - "2015-06-15", - "2015-07-07", - "2015-07-13", - "2015-07-28", - "2015-08-07", - "2015-08-19", - "2015-09-03", - "2015-09-08", - "2015-09-23", - "2015-10-01", - "2015-10-12", - "2015-10-16", - "2016-02-03", - "2016-02-19", - "2016-02-22", - "2016-02-23", - "2016-02-29", - "2016-03-07", - "2016-06-15", - "2016-07-06", - "2016-10-19", - "2017-01-27", - "2017-02-14", - "2017-04-06", - "2017-05-25", - "2017-06-05", - "2017-08-15", - "2017-12-14", - "2018-01-23", - "2018-02-05", - "2018-02-06", - "2018-02-28", - "2018-05-21", - "2018-07-27", - "2018-08-23", - "2018-09-06", - "2018-09-24", - "2018-10-31", - "2018-11-08", - "2019-02-11", - "2019-02-19", - "2019-03-14", - "2019-05-16", - "2019-08-14", - "2019-09-09", - "2019-10-08", - "2019-10-17", - "2019-11-05", - "2019-12-03", - "2020-03-02", - "2020-08-27", - "2022-08-01", - "2022-11-15", - "2023-08-16", - "2023-10-16", - "2024-04-10", - "2024-06-20" - ], - "maxLength": 5000, - "type": "string", - "x-stripeBypassValidation": true - }, - "connect": { - "description": "Whether this endpoint should receive events from connected accounts (`true`), or from your account (`false`). Defaults to `false`.", - "type": "boolean" - }, - "description": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "An optional description of what the webhook is used for." - }, - "enabled_events": { - "description": "The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection.", - "items": { - "enum": [ - "*", - "account.application.authorized", - "account.application.deauthorized", - "account.external_account.created", - "account.external_account.deleted", - "account.external_account.updated", - "account.updated", - "application_fee.created", - "application_fee.refund.updated", - "application_fee.refunded", - "balance.available", - "billing.alert.triggered", - "billing_portal.configuration.created", - "billing_portal.configuration.updated", - "billing_portal.session.created", - "capability.updated", - "cash_balance.funds_available", - "charge.captured", - "charge.dispute.closed", - "charge.dispute.created", - "charge.dispute.funds_reinstated", - "charge.dispute.funds_withdrawn", - "charge.dispute.updated", - "charge.expired", - "charge.failed", - "charge.pending", - "charge.refund.updated", - "charge.refunded", - "charge.succeeded", - "charge.updated", - "checkout.session.async_payment_failed", - "checkout.session.async_payment_succeeded", - "checkout.session.completed", - "checkout.session.expired", - "climate.order.canceled", - "climate.order.created", - "climate.order.delayed", - "climate.order.delivered", - "climate.order.product_substituted", - "climate.product.created", - "climate.product.pricing_updated", - "coupon.created", - "coupon.deleted", - "coupon.updated", - "credit_note.created", - "credit_note.updated", - "credit_note.voided", - "customer.created", - "customer.deleted", - "customer.discount.created", - "customer.discount.deleted", - "customer.discount.updated", - "customer.source.created", - "customer.source.deleted", - "customer.source.expiring", - "customer.source.updated", - "customer.subscription.created", - "customer.subscription.deleted", - "customer.subscription.paused", - "customer.subscription.pending_update_applied", - "customer.subscription.pending_update_expired", - "customer.subscription.resumed", - "customer.subscription.trial_will_end", - "customer.subscription.updated", - "customer.tax_id.created", - "customer.tax_id.deleted", - "customer.tax_id.updated", - "customer.updated", - "customer_cash_balance_transaction.created", - "entitlements.active_entitlement_summary.updated", - "file.created", - "financial_connections.account.created", - "financial_connections.account.deactivated", - "financial_connections.account.disconnected", - "financial_connections.account.reactivated", - "financial_connections.account.refreshed_balance", - "financial_connections.account.refreshed_ownership", - "financial_connections.account.refreshed_transactions", - "identity.verification_session.canceled", - "identity.verification_session.created", - "identity.verification_session.processing", - "identity.verification_session.redacted", - "identity.verification_session.requires_input", - "identity.verification_session.verified", - "invoice.created", - "invoice.deleted", - "invoice.finalization_failed", - "invoice.finalized", - "invoice.marked_uncollectible", - "invoice.overdue", - "invoice.paid", - "invoice.payment_action_required", - "invoice.payment_failed", - "invoice.payment_succeeded", - "invoice.sent", - "invoice.upcoming", - "invoice.updated", - "invoice.voided", - "invoice.will_be_due", - "invoiceitem.created", - "invoiceitem.deleted", - "issuing_authorization.created", - "issuing_authorization.request", - "issuing_authorization.updated", - "issuing_card.created", - "issuing_card.updated", - "issuing_cardholder.created", - "issuing_cardholder.updated", - "issuing_dispute.closed", - "issuing_dispute.created", - "issuing_dispute.funds_reinstated", - "issuing_dispute.funds_rescinded", - "issuing_dispute.submitted", - "issuing_dispute.updated", - "issuing_personalization_design.activated", - "issuing_personalization_design.deactivated", - "issuing_personalization_design.rejected", - "issuing_personalization_design.updated", - "issuing_token.created", - "issuing_token.updated", - "issuing_transaction.created", - "issuing_transaction.updated", - "mandate.updated", - "payment_intent.amount_capturable_updated", - "payment_intent.canceled", - "payment_intent.created", - "payment_intent.partially_funded", - "payment_intent.payment_failed", - "payment_intent.processing", - "payment_intent.requires_action", - "payment_intent.succeeded", - "payment_link.created", - "payment_link.updated", - "payment_method.attached", - "payment_method.automatically_updated", - "payment_method.detached", - "payment_method.updated", - "payout.canceled", - "payout.created", - "payout.failed", - "payout.paid", - "payout.reconciliation_completed", - "payout.updated", - "person.created", - "person.deleted", - "person.updated", - "plan.created", - "plan.deleted", - "plan.updated", - "price.created", - "price.deleted", - "price.updated", - "product.created", - "product.deleted", - "product.updated", - "promotion_code.created", - "promotion_code.updated", - "quote.accepted", - "quote.canceled", - "quote.created", - "quote.finalized", - "radar.early_fraud_warning.created", - "radar.early_fraud_warning.updated", - "refund.created", - "refund.updated", - "reporting.report_run.failed", - "reporting.report_run.succeeded", - "reporting.report_type.updated", - "review.closed", - "review.opened", - "setup_intent.canceled", - "setup_intent.created", - "setup_intent.requires_action", - "setup_intent.setup_failed", - "setup_intent.succeeded", - "sigma.scheduled_query_run.created", - "source.canceled", - "source.chargeable", - "source.failed", - "source.mandate_notification", - "source.refund_attributes_required", - "source.transaction.created", - "source.transaction.updated", - "subscription_schedule.aborted", - "subscription_schedule.canceled", - "subscription_schedule.completed", - "subscription_schedule.created", - "subscription_schedule.expiring", - "subscription_schedule.released", - "subscription_schedule.updated", - "tax.settings.updated", - "tax_rate.created", - "tax_rate.updated", - "terminal.reader.action_failed", - "terminal.reader.action_succeeded", - "test_helpers.test_clock.advancing", - "test_helpers.test_clock.created", - "test_helpers.test_clock.deleted", - "test_helpers.test_clock.internal_failure", - "test_helpers.test_clock.ready", - "topup.canceled", - "topup.created", - "topup.failed", - "topup.reversed", - "topup.succeeded", - "transfer.created", - "transfer.reversed", - "transfer.updated", - "treasury.credit_reversal.created", - "treasury.credit_reversal.posted", - "treasury.debit_reversal.completed", - "treasury.debit_reversal.created", - "treasury.debit_reversal.initial_credit_granted", - "treasury.financial_account.closed", - "treasury.financial_account.created", - "treasury.financial_account.features_status_updated", - "treasury.inbound_transfer.canceled", - "treasury.inbound_transfer.created", - "treasury.inbound_transfer.failed", - "treasury.inbound_transfer.succeeded", - "treasury.outbound_payment.canceled", - "treasury.outbound_payment.created", - "treasury.outbound_payment.expected_arrival_date_updated", - "treasury.outbound_payment.failed", - "treasury.outbound_payment.posted", - "treasury.outbound_payment.returned", - "treasury.outbound_payment.tracking_details_updated", - "treasury.outbound_transfer.canceled", - "treasury.outbound_transfer.created", - "treasury.outbound_transfer.expected_arrival_date_updated", - "treasury.outbound_transfer.failed", - "treasury.outbound_transfer.posted", - "treasury.outbound_transfer.returned", - "treasury.outbound_transfer.tracking_details_updated", - "treasury.received_credit.created", - "treasury.received_credit.failed", - "treasury.received_credit.succeeded", - "treasury.received_debit.created" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "url": { - "description": "The URL of the webhook endpoint.", - "type": "string" - } - }, - "required": [ - "enabled_events", - "url" - ], - "type": "object" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook_endpoint" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - }, - "/v1/webhook_endpoints/{webhook_endpoint}": { - "delete": { - "description": "

You can also delete webhook endpoints via the webhook endpoint management page of the Stripe dashboard.

", - "operationId": "DeleteWebhookEndpointsWebhookEndpoint", - "parameters": [ - { - "in": "path", - "name": "webhook_endpoint", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deleted_webhook_endpoint" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "get": { - "description": "

Retrieves the webhook endpoint with the given ID.

", - "operationId": "GetWebhookEndpointsWebhookEndpoint", - "parameters": [ - { - "description": "Specifies which fields in the response should be expanded.", - "explode": true, - "in": "query", - "name": "expand", - "required": false, - "schema": { - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "style": "deepObject" - }, - { - "in": "path", - "name": "webhook_endpoint", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": {}, - "schema": { - "additionalProperties": false, - "properties": {}, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook_endpoint" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - }, - "post": { - "description": "

Updates the webhook endpoint. You may edit the url, the list of enabled_events, and the status of your endpoint.

", - "operationId": "PostWebhookEndpointsWebhookEndpoint", - "parameters": [ - { - "in": "path", - "name": "webhook_endpoint", - "required": true, - "schema": { - "maxLength": 5000, - "type": "string" - }, - "style": "simple" - } - ], - "requestBody": { - "content": { - "application/x-www-form-urlencoded": { - "encoding": { - "description": { - "explode": true, - "style": "deepObject" - }, - "enabled_events": { - "explode": true, - "style": "deepObject" - }, - "expand": { - "explode": true, - "style": "deepObject" - }, - "metadata": { - "explode": true, - "style": "deepObject" - } - }, - "schema": { - "additionalProperties": false, - "properties": { - "description": { - "anyOf": [ - { - "maxLength": 5000, - "type": "string" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "An optional description of what the webhook is used for." - }, - "disabled": { - "description": "Disable the webhook endpoint if set to true.", - "type": "boolean" - }, - "enabled_events": { - "description": "The list of events to enable for this endpoint. You may specify `['*']` to enable all events, except those that require explicit selection.", - "items": { - "enum": [ - "*", - "account.application.authorized", - "account.application.deauthorized", - "account.external_account.created", - "account.external_account.deleted", - "account.external_account.updated", - "account.updated", - "application_fee.created", - "application_fee.refund.updated", - "application_fee.refunded", - "balance.available", - "billing.alert.triggered", - "billing_portal.configuration.created", - "billing_portal.configuration.updated", - "billing_portal.session.created", - "capability.updated", - "cash_balance.funds_available", - "charge.captured", - "charge.dispute.closed", - "charge.dispute.created", - "charge.dispute.funds_reinstated", - "charge.dispute.funds_withdrawn", - "charge.dispute.updated", - "charge.expired", - "charge.failed", - "charge.pending", - "charge.refund.updated", - "charge.refunded", - "charge.succeeded", - "charge.updated", - "checkout.session.async_payment_failed", - "checkout.session.async_payment_succeeded", - "checkout.session.completed", - "checkout.session.expired", - "climate.order.canceled", - "climate.order.created", - "climate.order.delayed", - "climate.order.delivered", - "climate.order.product_substituted", - "climate.product.created", - "climate.product.pricing_updated", - "coupon.created", - "coupon.deleted", - "coupon.updated", - "credit_note.created", - "credit_note.updated", - "credit_note.voided", - "customer.created", - "customer.deleted", - "customer.discount.created", - "customer.discount.deleted", - "customer.discount.updated", - "customer.source.created", - "customer.source.deleted", - "customer.source.expiring", - "customer.source.updated", - "customer.subscription.created", - "customer.subscription.deleted", - "customer.subscription.paused", - "customer.subscription.pending_update_applied", - "customer.subscription.pending_update_expired", - "customer.subscription.resumed", - "customer.subscription.trial_will_end", - "customer.subscription.updated", - "customer.tax_id.created", - "customer.tax_id.deleted", - "customer.tax_id.updated", - "customer.updated", - "customer_cash_balance_transaction.created", - "entitlements.active_entitlement_summary.updated", - "file.created", - "financial_connections.account.created", - "financial_connections.account.deactivated", - "financial_connections.account.disconnected", - "financial_connections.account.reactivated", - "financial_connections.account.refreshed_balance", - "financial_connections.account.refreshed_ownership", - "financial_connections.account.refreshed_transactions", - "identity.verification_session.canceled", - "identity.verification_session.created", - "identity.verification_session.processing", - "identity.verification_session.redacted", - "identity.verification_session.requires_input", - "identity.verification_session.verified", - "invoice.created", - "invoice.deleted", - "invoice.finalization_failed", - "invoice.finalized", - "invoice.marked_uncollectible", - "invoice.overdue", - "invoice.paid", - "invoice.payment_action_required", - "invoice.payment_failed", - "invoice.payment_succeeded", - "invoice.sent", - "invoice.upcoming", - "invoice.updated", - "invoice.voided", - "invoice.will_be_due", - "invoiceitem.created", - "invoiceitem.deleted", - "issuing_authorization.created", - "issuing_authorization.request", - "issuing_authorization.updated", - "issuing_card.created", - "issuing_card.updated", - "issuing_cardholder.created", - "issuing_cardholder.updated", - "issuing_dispute.closed", - "issuing_dispute.created", - "issuing_dispute.funds_reinstated", - "issuing_dispute.funds_rescinded", - "issuing_dispute.submitted", - "issuing_dispute.updated", - "issuing_personalization_design.activated", - "issuing_personalization_design.deactivated", - "issuing_personalization_design.rejected", - "issuing_personalization_design.updated", - "issuing_token.created", - "issuing_token.updated", - "issuing_transaction.created", - "issuing_transaction.updated", - "mandate.updated", - "payment_intent.amount_capturable_updated", - "payment_intent.canceled", - "payment_intent.created", - "payment_intent.partially_funded", - "payment_intent.payment_failed", - "payment_intent.processing", - "payment_intent.requires_action", - "payment_intent.succeeded", - "payment_link.created", - "payment_link.updated", - "payment_method.attached", - "payment_method.automatically_updated", - "payment_method.detached", - "payment_method.updated", - "payout.canceled", - "payout.created", - "payout.failed", - "payout.paid", - "payout.reconciliation_completed", - "payout.updated", - "person.created", - "person.deleted", - "person.updated", - "plan.created", - "plan.deleted", - "plan.updated", - "price.created", - "price.deleted", - "price.updated", - "product.created", - "product.deleted", - "product.updated", - "promotion_code.created", - "promotion_code.updated", - "quote.accepted", - "quote.canceled", - "quote.created", - "quote.finalized", - "radar.early_fraud_warning.created", - "radar.early_fraud_warning.updated", - "refund.created", - "refund.updated", - "reporting.report_run.failed", - "reporting.report_run.succeeded", - "reporting.report_type.updated", - "review.closed", - "review.opened", - "setup_intent.canceled", - "setup_intent.created", - "setup_intent.requires_action", - "setup_intent.setup_failed", - "setup_intent.succeeded", - "sigma.scheduled_query_run.created", - "source.canceled", - "source.chargeable", - "source.failed", - "source.mandate_notification", - "source.refund_attributes_required", - "source.transaction.created", - "source.transaction.updated", - "subscription_schedule.aborted", - "subscription_schedule.canceled", - "subscription_schedule.completed", - "subscription_schedule.created", - "subscription_schedule.expiring", - "subscription_schedule.released", - "subscription_schedule.updated", - "tax.settings.updated", - "tax_rate.created", - "tax_rate.updated", - "terminal.reader.action_failed", - "terminal.reader.action_succeeded", - "test_helpers.test_clock.advancing", - "test_helpers.test_clock.created", - "test_helpers.test_clock.deleted", - "test_helpers.test_clock.internal_failure", - "test_helpers.test_clock.ready", - "topup.canceled", - "topup.created", - "topup.failed", - "topup.reversed", - "topup.succeeded", - "transfer.created", - "transfer.reversed", - "transfer.updated", - "treasury.credit_reversal.created", - "treasury.credit_reversal.posted", - "treasury.debit_reversal.completed", - "treasury.debit_reversal.created", - "treasury.debit_reversal.initial_credit_granted", - "treasury.financial_account.closed", - "treasury.financial_account.created", - "treasury.financial_account.features_status_updated", - "treasury.inbound_transfer.canceled", - "treasury.inbound_transfer.created", - "treasury.inbound_transfer.failed", - "treasury.inbound_transfer.succeeded", - "treasury.outbound_payment.canceled", - "treasury.outbound_payment.created", - "treasury.outbound_payment.expected_arrival_date_updated", - "treasury.outbound_payment.failed", - "treasury.outbound_payment.posted", - "treasury.outbound_payment.returned", - "treasury.outbound_payment.tracking_details_updated", - "treasury.outbound_transfer.canceled", - "treasury.outbound_transfer.created", - "treasury.outbound_transfer.expected_arrival_date_updated", - "treasury.outbound_transfer.failed", - "treasury.outbound_transfer.posted", - "treasury.outbound_transfer.returned", - "treasury.outbound_transfer.tracking_details_updated", - "treasury.received_credit.created", - "treasury.received_credit.failed", - "treasury.received_credit.succeeded", - "treasury.received_debit.created" - ], - "type": "string", - "x-stripeBypassValidation": true - }, - "type": "array" - }, - "expand": { - "description": "Specifies which fields in the response should be expanded.", - "items": { - "maxLength": 5000, - "type": "string" - }, - "type": "array" - }, - "metadata": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "enum": [ - "" - ], - "type": "string" - } - ], - "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`." - }, - "url": { - "description": "The URL of the webhook endpoint.", - "type": "string" - } - }, - "type": "object" - } - } - }, - "required": false - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook_endpoint" - } - } - }, - "description": "Successful response." - }, - "default": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/error" - } - } - }, - "description": "Error response." - } - } - } - } - }, - "security": [ - { - "basicAuth": [] - }, - { - "bearerAuth": [] - } - ], - "servers": [ - { - "url": "https://api.stripe.com/" - } - ] -} \ No newline at end of file diff --git a/packages/openapi/test/v2_test.dart b/packages/openapi/test/v2_test.dart deleted file mode 100644 index 618d83f..0000000 --- a/packages/openapi/test/v2_test.dart +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright (c) 2017, joeconway. All rights reserved. Use of this source code -// is governed by a BSD-style license that can be found in the LICENSE file. - -import 'dart:convert'; -import 'dart:io'; -import 'package:protevus_openapi/v2.dart'; -import 'package:test/test.dart'; - -void main() { - group("kubenrnetes spec", () { - APIDocument? doc; - Map? original; - - setUpAll(() async { - /// download sample api document if we don't already have it. - final String config = await fetchKubernetesExample(); - final file = File(config); - final contents = file.readAsStringSync(); - original = json.decode(contents) as Map; - doc = APIDocument.fromMap(original!); - }); - - test("Has all metadata", () { - expect(doc!.version, "2.0"); - expect(doc!.info!.title, "Kubernetes"); - expect(doc!.info!.version, 'v1.12.0'); - expect(doc!.host, isNull); - expect(doc!.basePath, isNull); - expect(doc!.tags, isNull); - expect(doc!.schemes, isNull); - }); - - test("Confirm top-level objects", () { - expect(original!.containsKey("consumes"), false); - - expect(original!.containsKey("produces"), false); - }); - - test("Has paths", () { - expect(doc!.paths!.length, greaterThan(0)); - expect(doc!.paths!.length, original!["paths"].length); - - final Map originalPaths = - original!["paths"] as Map; - doc!.paths!.forEach((k, v) { - expect(originalPaths.keys.contains(k), true); - }); - }); - - test("Sample - Namespace", () { - final namespacePath = doc!.paths!["/api/v1/namespaces"]; - - final getNamespace = namespacePath!.operations["get"]; - expect(getNamespace!.description, contains("of kind Namespace")); - expect(getNamespace.consumes, ["*/*"]); - expect(getNamespace.produces, contains("application/json")); - expect(getNamespace.produces, contains("application/yaml")); - expect(getNamespace.parameters!.length, 8); - expect( - getNamespace.parameters! - .firstWhere((p) => p!.name == "limit")! - .location, - APIParameterLocation.query, - ); - expect( - getNamespace.parameters!.firstWhere((p) => p!.name == "limit")!.type, - APIType.integer, - ); - expect(getNamespace.responses!.keys, contains("401")); - expect(getNamespace.responses!.keys, contains("200")); - - final postNamespace = namespacePath.operations["post"]; - expect(postNamespace!.parameters!.length, 1); - expect(postNamespace.parameters!.first!.name, "body"); - expect( - postNamespace.parameters!.first!.location, - APIParameterLocation.body, - ); - }); - - test("Sample - Reference", () { - final apiPath = doc!.paths!["/api/"]; - final apiPathGet = apiPath!.operations["get"]; - final response = apiPathGet!.responses!["200"]; - final schema = response!.schema; - expect(schema!.description, contains("APIVersions lists the")); - expect(schema.isRequired, ["versions", "serverAddressByClientCIDRs"]); - expect( - schema.properties!["serverAddressByClientCIDRs"]!.items! - .properties!["clientCIDR"]!.description, - contains("The CIDR"), - ); - }); - - test("Can encode as JSON", () { - expect(json.encode(doc!.asMap()), isA()); - }); - }); -} - -Future fetchKubernetesExample() async { - // Spec file is too large for pub, and no other way to remove from pub publish - // than putting in .gitignore. Therefore, this file must be downloaded locally - // to this path, from this path: https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json - - const config = "test/specs/kubernetes.json"; - final configFile = File(config); - if (!configFile.existsSync()) { - if (!configFile.parent.existsSync()) { - Directory(configFile.parent.path).createSync(recursive: true); - } - - const url = - 'https://raw.githubusercontent.com/kubernetes/kubernetes/f091073b0fb4d3a550e7f182eb5465338c8b7cbf/api/openapi-spec/swagger.json'; - final request = await HttpClient().getUrl(Uri.parse(url)); - final response = await request.close(); - await response.pipe(configFile.openWrite()); - } - return config; -} diff --git a/packages/openapi/test/v3_test.dart b/packages/openapi/test/v3_test.dart deleted file mode 100644 index 2ede79c..0000000 --- a/packages/openapi/test/v3_test.dart +++ /dev/null @@ -1,441 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; -import 'package:protevus_openapi/v3.dart'; -import 'package:test/test.dart'; - -void main() { - group("Components and resolution", () { - test("Can resolve object against registry", () { - final components = APIComponents(); - components.schemas["foo"] = APISchemaObject.string(); - - final ref = APISchemaObject() - ..referenceURI = Uri.parse("/components/schemas/foo"); - final orig = components.resolve(ref); - expect(orig, isNotNull); - expect(orig!.type, APIType.string); - expect(ref.type, isNull); - - final APISchemaObject? constructed = components - .resolveUri(Uri(path: "/components/schemas/foo")) as APISchemaObject?; - expect(constructed, isNotNull); - expect(constructed!.type, APIType.string); - }); - - test("Invalid ref uri format throws error", () { - final components = APIComponents(); - try { - components.resolve( - APISchemaObject() - ..referenceURI = Uri.parse("#/components/schemas/foo"), - ); - expect(true, false); - } on ArgumentError catch (e) { - expect(e.message, contains("Invalid reference URI")); - } - - try { - components.resolve( - APISchemaObject()..referenceURI = Uri.parse("#/components/schemas"), - ); - expect(true, false); - } on ArgumentError catch (e) { - expect(e.message, contains("Invalid reference URI")); - } - - try { - components.resolve( - APISchemaObject()..referenceURI = Uri.parse("/components/foobar/foo"), - ); - expect(true, false); - } on ArgumentError catch (e) { - expect(e.message, contains("Invalid reference URI")); - } - }); - - test("Nonexisting component returns null", () { - final components = APIComponents(); - expect( - components.resolve( - APISchemaObject() - ..referenceURI = Uri.parse("/components/schemas/foo"), - ), - isNull, - ); - }); - - test("URIs are paths internally, but fragments when serialized", () { - final doc = APIDocument.fromMap({ - "openapi": "3.0.0", - "info": {"title": "x", "version": "1"}, - "paths": {}, - "components": { - "schemas": { - "string": { - "type": "string", - }, - "container": {"\$ref": "#/components/schemas/string"} - } - } - }); - - expect( - doc.components!.schemas["container"]!.referenceURI! - .toFilePath(windows: Platform.isWindows), - Uri.parse("/components/schemas/string") - .toFilePath(windows: Platform.isWindows), - ); - - doc.components!.schemas["other"] = APISchemaObject() - ..referenceURI = Uri(path: "/components/schemas/container"); - - final out = doc.asMap(); - expect( - out["components"]["schemas"]["container"][r"$ref"], - "#/components/schemas/string", - ); - expect( - out["components"]["schemas"]["other"][r"$ref"], - "#/components/schemas/container", - ); - }); - }); - - group("Stripe spec", () { - APIDocument? doc; - Map? original; - - setUpAll(() async { - final String config = await fetchStripExample(); - - final file = File(config); - final contents = file.readAsStringSync(); - original = json.decode(contents) as Map; - if (original != null) { - doc = APIDocument.fromMap(original!); - } - }); - - test("Emits same document in asMap()", () { - expect(doc!.asMap(), original); - }); - - test("Has openapi version", () { - expect(doc!.version, "3.0.0"); - }); - - test("Has info", () { - expect(doc!.info.title, "Stripe API"); - expect(doc!.info.version, isNotNull); - expect( - doc!.info.description, - "The Stripe REST API. Please see https://stripe.com/docs/api for more details.", - ); - expect( - doc!.info.termsOfServiceURL.toString(), - "https://stripe.com/us/terms/", - ); - expect(doc!.info.contact!.email, "dev-platform@stripe.com"); - expect(doc!.info.contact!.name, "Stripe Dev Platform Team"); - expect(doc!.info.contact!.url.toString(), "https://stripe.com"); - expect(doc!.info.license, isNull); - }); - - test("Has servers", () { - expect(doc!.servers, isNotNull); - expect(doc!.servers!.length, 1); - expect(doc!.servers!.first!.url.toString(), "https://api.stripe.com/"); - expect(doc!.servers!.first!.description, isNull); - expect(doc!.servers!.first!.variables, isNull); - }); - - test("Tags", () { - expect(doc!.tags, isNull); - }); - - group("Paths", () { - test("Sample path 1", () { - expect(doc!.paths, isNotNull); - final p = doc!.paths!["/v1/transfers/{transfer}/reversals/{id}"]; - expect(p, isNotNull); - expect(p!.description, isNull); - - expect(p.operations.length, 2); - - final getOp = p.operations["get"]; - final getParams = getOp!.parameters; - final getResponses = getOp.responses; - expect(getOp.description, contains("10 most recent reversals")); - expect(getOp.id, "GetTransfersTransferReversalsId"); - expect(getParams!.length, 3); - expect(getParams[0].location, APIParameterLocation.query); - expect( - getParams[0].description, - "Specifies which fields in the response should be expanded.", - ); - expect(getParams[0].name, "expand"); - expect(getParams[0].isRequired, false); - expect(getParams[0].schema!.type, APIType.array); - expect(getParams[0].schema!.items!.type, APIType.string); - - expect(getParams[1].location, APIParameterLocation.path); - expect(getParams[1].name, "id"); - expect(getParams[1].isRequired, true); - expect(getParams[1].schema!.type, APIType.string); - - expect(getParams[2].location, APIParameterLocation.path); - expect(getParams[2].name, "transfer"); - expect(getParams[2].isRequired, true); - expect(getParams[2].schema!.type, APIType.string); - - expect(getResponses!.length, 2); - expect(getResponses["200"]!.content!.length, 1); - expect( - getResponses["200"]! - .content!["application/json"]! - .schema! - .referenceURI, - Uri.parse( - Uri.parse("#/components/schemas/transfer_reversal").fragment, - ), - ); - - final resolvedElement = getResponses["200"]! - .content!["application/json"]! - .schema! - .properties!["balance_transaction"]! - .anyOf; - expect( - resolvedElement!.last!.properties!["amount"]!.type, - APIType.integer, - ); - }); - }); - - group("Components", () {}); - - test("Security requirement", () { - expect(doc!.security, isNotNull); - expect(doc!.security!.length, 2); - }); - }); - - group("Schema", () { - test("Can read/emit schema object with additionalProperties=true", () { - final doc = APIDocument.fromMap({ - "openapi": "3.0.0", - "info": {"title": "x", "version": "1"}, - "paths": {}, - "components": { - "schemas": { - "freeform": {"type": "object", "additionalProperties": true} - } - } - }); - - expect( - doc.components!.schemas["freeform"]!.additionalPropertyPolicy, - APISchemaAdditionalPropertyPolicy.freeForm, - ); - - expect( - doc.asMap()["components"]["schemas"]["freeform"]["type"], - "object", - ); - expect( - doc.asMap()["components"]["schemas"]["freeform"] - ["additionalProperties"], - true, - ); - }); - - test("Can read/emit schema object with additionalProperties={}", () { - final doc = APIDocument.fromMap({ - "openapi": "3.0.0", - "info": {"title": "x", "version": "1"}, - "paths": {}, - "components": { - "schemas": { - "freeform": { - "type": "object", - "additionalProperties": {} - } - } - } - }); - expect( - doc.components!.schemas["freeform"]!.additionalPropertyPolicy, - APISchemaAdditionalPropertyPolicy.freeForm, - ); - expect( - doc.asMap()["components"]["schemas"]["freeform"]["type"], - "object", - ); - expect( - doc.asMap()["components"]["schemas"]["freeform"] - ["additionalProperties"], - true, - ); - }); - }); - - group("Callbacks", () {}); - - group("'add' methods", () { - test("'addHeader'", () { - final resp = APIResponse("Response"); - - // when null - resp.addHeader( - "x", - APIHeader(schema: APISchemaObject.string(format: "initial")), - ); - expect(resp.headers!["x"]!.schema!.format, "initial"); - - // add more than one - resp.addHeader( - "y", - APIHeader(schema: APISchemaObject.string(format: "second")), - ); - expect(resp.headers!["x"]!.schema!.format, "initial"); - expect(resp.headers!["y"]!.schema!.format, "second"); - - // cannot replace - resp.addHeader( - "y", - APIHeader(schema: APISchemaObject.string(format: "third")), - ); - expect(resp.headers!["x"]!.schema!.format, "initial"); - expect(resp.headers!["y"]!.schema!.format, "second"); - }); - - test("'addContent'", () { - final resp = APIResponse("Response"); - - // when null - resp.addContent("x/a", APISchemaObject.string(format: "initial")); - expect(resp.content!["x/a"]!.schema!.format, "initial"); - - // add more than one - resp.addContent("y/a", APISchemaObject.string(format: "second")); - expect(resp.content!["x/a"]!.schema!.format, "initial"); - expect(resp.content!["y/a"]!.schema!.format, "second"); - - // joins schema in oneOf if key exists - resp.addContent("y/a", APISchemaObject.string(format: "third")); - expect(resp.content!["x/a"]!.schema!.format, "initial"); - - expect(resp.content!["y/a"]!.schema!.oneOf!.first!.format, "second"); - expect(resp.content!["y/a"]!.schema!.oneOf!.last!.format, "third"); - }); - - test("'addResponse'", () { - final op = APIOperation("op", null); - - // when null - op.addResponse( - 200, - APIResponse.schema("OK", APISchemaObject.string(format: "initial")), - ); - expect( - op.responses!["200"]!.content!["application/json"]!.schema!.format, - "initial", - ); - - // add more than one - op.addResponse( - 400, - APIResponse.schema( - "KINDABAD", - APISchemaObject.string(format: "second"), - headers: { - "initial": - APIHeader(schema: APISchemaObject.string(format: "initial")) - }, - ), - ); - expect( - op.responses!["200"]!.content!["application/json"]!.schema!.format, - "initial", - ); - expect( - op.responses!["400"]!.content!["application/json"]!.schema!.format, - "second", - ); - - // join responses when key exists - op.addResponse( - 400, - APIResponse.schema( - "REALBAD", - APISchemaObject.string(format: "third"), - headers: { - "second": - APIHeader(schema: APISchemaObject.string(format: "initial")) - }, - ), - ); - expect( - op.responses!["200"]!.content!["application/json"]!.schema!.format, - "initial", - ); - - final r400 = op.responses!["400"]!; - expect(r400.description, contains("KINDABAD")); - expect(r400.description, contains("REALBAD")); - expect(r400.content!["application/json"]!.schema!.oneOf, isNotNull); - expect(r400.headers!["initial"], isNotNull); - expect(r400.headers!["second"], isNotNull); - }); - - test("'addResponse' guards against null value", () { - final op = APIOperation("op", null); - - op.addResponse( - 400, - APIResponse.schema( - "KINDABAD", - APISchemaObject.string(format: "second"), - ), - ); - expect( - op.responses!["400"]!.content!["application/json"]!.schema!.format, - "second", - ); - - op.addResponse( - 400, - APIResponse.schema( - "REALBAD", - APISchemaObject.string(format: "third"), - ), - ); - expect( - op.responses!["400"]!.content!["application/json"]!.schema!.oneOf! - .length, - 2, - ); - }); - }); -} - -Future fetchStripExample() async { - // Spec file is too large for pub, and no other way to remove from pub publish - // than putting in .gitignore. Therefore, this file must be downloaded locally - // to this path, from this path: https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json - - const config = "test/specs/stripe.json"; - final configFile = File(config); - if (!configFile.existsSync()) { - if (!configFile.parent.existsSync()) { - Directory(configFile.parent.path).createSync(recursive: true); - } - - const url = - 'https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json'; - final request = await HttpClient().getUrl(Uri.parse(url)); - final response = await request.close(); - await response.pipe(File(config).openWrite()); - } - return config; -} diff --git a/packages/runtime/.gitignore b/packages/runtime/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/runtime/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/runtime/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/runtime/README.md b/packages/runtime/README.md deleted file mode 100644 index 8b55e73..0000000 --- a/packages/runtime/README.md +++ /dev/null @@ -1,39 +0,0 @@ - - -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. - -## Features - -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. - -## Usage - -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. diff --git a/packages/runtime/analysis_options.yaml b/packages/runtime/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/runtime/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/runtime/lib/runtime.dart b/packages/runtime/lib/runtime.dart deleted file mode 100644 index e940c7b..0000000 --- a/packages/runtime/lib/runtime.dart +++ /dev/null @@ -1,88 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// The main library for the Protevus runtime package. -/// -/// This library provides core functionality for the Protevus Platform, -/// including compilation, analysis, and runtime management. -library runtime; - -import 'dart:io'; - -// Export statements for various components of the runtime package -export 'package:protevus_runtime/src/analyzer.dart'; -export 'package:protevus_runtime/src/build.dart'; -export 'package:protevus_runtime/src/build_context.dart'; -export 'package:protevus_runtime/src/build_manager.dart'; -export 'package:protevus_runtime/src/compiler.dart'; -export 'package:protevus_runtime/src/context.dart'; -export 'package:protevus_runtime/src/exceptions.dart'; -export 'package:protevus_runtime/src/generator.dart'; -export 'package:protevus_runtime/src/mirror_coerce.dart'; -export 'package:protevus_runtime/src/mirror_context.dart'; -import 'package:protevus_runtime/runtime.dart'; - -/// A specialized compiler for the runtime package itself. -/// -/// This compiler is responsible for creating a mirror-free version of the -/// runtime package. It removes dart:mirror dependencies and adds a generated -/// runtime to the package's pubspec. -class RuntimePackageCompiler extends Compiler { - /// Compiles the runtime package. - /// - /// This method is currently a no-op, returning an empty map. It may be - /// extended in the future to perform actual compilation tasks. - /// - /// [context] - The mirror context for compilation (unused in this implementation). - /// - /// Returns an empty map, as no compilation is currently performed. - @override - Map compile(MirrorContext context) => {}; - - /// Modifies the package structure to remove mirror dependencies. - /// - /// This method performs the following tasks: - /// 1. Rewrites the main library file to remove mirror-related exports. - /// 2. Updates the context file to use the generated runtime instead of mirror context. - /// 3. Modifies the pubspec.yaml to include the generated runtime as a dependency. - /// - /// [destinationDirectory] - The directory where the modified package will be created. - @override - void deflectPackage(Directory destinationDirectory) { - // Rewrite the main library file - final libraryFile = File.fromUri( - destinationDirectory.uri.resolve("lib/").resolve("runtime.dart"), - ); - libraryFile.writeAsStringSync( - "library runtime;\nexport 'src/context.dart';\nexport 'src/exceptions.dart';", - ); - - // Update the context file - final contextFile = File.fromUri( - destinationDirectory.uri - .resolve("lib/") - .resolve("src/") - .resolve("context.dart"), - ); - final contextFileContents = contextFile.readAsStringSync().replaceFirst( - "import 'package:protevus_runtime/src/mirror_context.dart';", - "import 'package:generated_runtime/generated_runtime.dart';", - ); - contextFile.writeAsStringSync(contextFileContents); - - // Modify the pubspec.yaml - final pubspecFile = - File.fromUri(destinationDirectory.uri.resolve("pubspec.yaml")); - final pubspecContents = pubspecFile.readAsStringSync().replaceFirst( - "\ndependencies:", - "\ndependencies:\n generated_runtime:\n path: ../../generated_runtime/", - ); - pubspecFile.writeAsStringSync(pubspecContents); - } -} diff --git a/packages/runtime/lib/slow_coerce.dart b/packages/runtime/lib/slow_coerce.dart deleted file mode 100644 index 292cf98..0000000 --- a/packages/runtime/lib/slow_coerce.dart +++ /dev/null @@ -1,113 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_runtime/runtime.dart'; - -/// Prefix string for List types in type checking. -const String _listPrefix = "List<"; - -/// Prefix string for Map types in type checking. -const String _mapPrefix = "Map(dynamic input) { - try { - var typeString = T.toString(); - - // Handle nullable types - if (typeString.endsWith('?')) { - if (input == null) { - return null as T; - } else { - typeString = typeString.substring(0, typeString.length - 1); - } - } - - // Handle List types - if (typeString.startsWith(_listPrefix)) { - if (input is! List) { - throw TypeError(); - } - - // Cast List to various element types - if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List")) { - return List.from(input) as T; - } else if (typeString.startsWith("List>")) { - return List>.from(input) as T; - } - } - // Handle Map types - else if (typeString.startsWith(_mapPrefix)) { - if (input is! Map) { - throw TypeError(); - } - - final inputMap = input as Map; - - // Cast Map to various value types - if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } else if (typeString.startsWith("Map")) { - return Map.from(inputMap) as T; - } - } - - // If no specific casting is needed, return the input as T - return input as T; - } on TypeError { - // If a TypeError occurs during casting, throw a TypeCoercionException - throw TypeCoercionException(T, input.runtimeType); - } -} diff --git a/packages/runtime/lib/src/analyzer.dart b/packages/runtime/lib/src/analyzer.dart deleted file mode 100644 index 412a974..0000000 --- a/packages/runtime/lib/src/analyzer.dart +++ /dev/null @@ -1,174 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'package:analyzer/dart/analysis/analysis_context_collection.dart'; -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/file_system/physical_file_system.dart'; -import 'package:path/path.dart'; - -/// A class for analyzing Dart code. -class CodeAnalyzer { - /// Constructs a CodeAnalyzer with the given URI. - /// - /// Throws an [ArgumentError] if the URI is not absolute or if no analysis context is found. - CodeAnalyzer(this.uri) { - if (!uri.isAbsolute) { - throw ArgumentError("'uri' must be absolute for CodeAnalyzer"); - } - - contexts = AnalysisContextCollection(includedPaths: [path]); - - if (contexts.contexts.isEmpty) { - throw ArgumentError("no analysis context found for path '$path'"); - } - } - - /// Gets the path from the URI. - String get path { - return getPath(uri); - } - - /// The URI of the code to analyze. - late final Uri uri; - - /// The collection of analysis contexts. - late AnalysisContextCollection contexts; - - /// A cache of resolved ASTs. - final _resolvedAsts = {}; - - /// Resolves the unit or library at the given URI. - /// - /// Returns a [Future] that completes with an [AnalysisResult]. - Future resolveUnitOrLibraryAt(Uri uri) async { - if (FileSystemEntity.isFileSync( - uri.toFilePath(windows: Platform.isWindows), - )) { - return resolveUnitAt(uri); - } else { - return resolveLibraryAt(uri); - } - } - - /// Resolves the library at the given URI. - /// - /// Returns a [Future] that completes with a [ResolvedLibraryResult]. - /// Throws an [ArgumentError] if the URI could not be resolved. - Future resolveLibraryAt(Uri uri) async { - assert( - FileSystemEntity.isDirectorySync( - uri.toFilePath(windows: Platform.isWindows), - ), - ); - for (final ctx in contexts.contexts) { - final path = getPath(uri); - if (_resolvedAsts.containsKey(path)) { - return _resolvedAsts[path]! as ResolvedLibraryResult; - } - - final output = await ctx.currentSession.getResolvedLibrary(path) - as ResolvedLibraryResult; - return _resolvedAsts[path] = output; - } - - throw ArgumentError("'uri' could not be resolved (contexts: " - "${contexts.contexts.map((c) => c.contextRoot.root.toUri()).join(", ")})"); - } - - /// Resolves the unit at the given URI. - /// - /// Returns a [Future] that completes with a [ResolvedUnitResult]. - /// Throws an [ArgumentError] if the URI could not be resolved. - Future resolveUnitAt(Uri uri) async { - assert( - FileSystemEntity.isFileSync( - uri.toFilePath(windows: Platform.isWindows), - ), - ); - for (final ctx in contexts.contexts) { - final path = getPath(uri); - if (_resolvedAsts.containsKey(path)) { - return _resolvedAsts[path]! as ResolvedUnitResult; - } - - final output = - await ctx.currentSession.getResolvedUnit(path) as ResolvedUnitResult; - return _resolvedAsts[path] = output; - } - - throw ArgumentError("'uri' could not be resolved (contexts: " - "${contexts.contexts.map((c) => c.contextRoot.root.toUri()).join(", ")})"); - } - - /// Gets the class declaration from the file at the given URI. - /// - /// Returns null if the class is not found or if there's an error. - ClassDeclaration? getClassFromFile(String className, Uri fileUri) { - try { - return _getFileAstRoot(fileUri) - .declarations - .whereType() - .firstWhere((c) => c.name.value() == className); - } catch (e) { - if (e is StateError || e is TypeError || e is ArgumentError) { - return null; - } - rethrow; - } - } - - /// Gets all subclasses of the given superclass from the file at the given URI. - /// - /// Returns a list of [ClassDeclaration]s. - List getSubclassesFromFile( - String superclassName, - Uri fileUri, - ) { - return _getFileAstRoot(fileUri) - .declarations - .whereType() - .where((c) => - c.extendsClause?.superclass.name2.toString() == superclassName) - .toList(); - } - - /// Gets the AST root of the file at the given URI. - /// - /// Returns a [CompilationUnit]. - CompilationUnit _getFileAstRoot(Uri fileUri) { - assert( - FileSystemEntity.isFileSync( - fileUri.toFilePath(windows: Platform.isWindows), - ), - ); - try { - final path = getPath(fileUri); - if (_resolvedAsts.containsKey(path)) { - return (_resolvedAsts[path]! as ResolvedUnitResult).unit; - } - } finally {} - final unit = contexts.contextFor(path).currentSession.getParsedUnit( - normalize( - absolute(fileUri.toFilePath(windows: Platform.isWindows)), - ), - ) as ParsedUnitResult; - return unit.unit; - } - - /// Converts the input URI to a normalized path string. - /// - /// This is a static utility method. - static String getPath(dynamic inputUri) { - return PhysicalResourceProvider.INSTANCE.pathContext.normalize( - PhysicalResourceProvider.INSTANCE.pathContext.fromUri(inputUri), - ); - } -} diff --git a/packages/runtime/lib/src/build.dart b/packages/runtime/lib/src/build.dart deleted file mode 100644 index 03db955..0000000 --- a/packages/runtime/lib/src/build.dart +++ /dev/null @@ -1,256 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -// ignore_for_file: avoid_print -import 'dart:convert'; -import 'dart:io'; -import 'dart:mirrors'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:io/io.dart'; -import 'package:package_config/package_config.dart'; - -/// A class responsible for building and compiling the application. -/// -/// This class handles the entire build process, including resolving ASTs, -/// generating runtime, compiling packages, and creating the final executable. -class Build { - /// Creates a new [Build] instance with the given [BuildContext]. - /// - /// [context] is the build context containing necessary information for the build process. - Build(this.context); - - /// The build context for this build operation. - final BuildContext context; - - /// Executes the build process. - /// - /// This method performs the following steps: - /// 1. Resolves ASTs - /// 2. Generates runtime - /// 3. Compiles packages - /// 4. Prepares the build directory - /// 5. Fetches dependencies - /// 6. Compiles the final executable (if not for tests) - /// - /// Throws a [StateError] if any step fails. - Future execute() async { - final compilers = context.context.compilers; - - print("Resolving ASTs..."); - final astsToResolve = { - ...compilers.expand((c) => c.getUrisToResolve(context)) - }; - await Future.forEach( - astsToResolve, - (astUri) async { - final package = await context.getPackageFromUri(astUri); - final Uri packageUri = - package?.packageUriRoot.resolve(package.name) ?? astUri; - return context.analyzer.resolveUnitOrLibraryAt(packageUri); - }, - ); - - print("Generating runtime..."); - - final runtimeGenerator = RuntimeGenerator(); - for (final MapEntry entry - in context.context.runtimes.map.entries) { - if (entry.value is SourceCompiler) { - await (entry.value as SourceCompiler).compile(context).then( - (source) => - runtimeGenerator.addRuntime(name: entry.key, source: source), - ); - } - } - - await runtimeGenerator.writeTo(context.buildRuntimeDirectory.uri); - print("Generated runtime at '${context.buildRuntimeDirectory.uri}'."); - - final nameOfPackageBeingCompiled = context.sourceApplicationPubspec.name; - final pubspecMap = { - 'name': 'runtime_target', - 'version': '1.0.0', - 'environment': {'sdk': '>=3.4.0 <4.0.0'}, - 'dependency_overrides': {} - }; - final overrides = pubspecMap['dependency_overrides'] as Map; - var sourcePackageIsCompiled = false; - - for (final compiler in compilers) { - final packageInfo = await _getPackageInfoForCompiler(compiler); - final sourceDirUri = packageInfo.root; - final targetDirUri = - context.buildPackagesDirectory.uri.resolve("${packageInfo.name}/"); - print("Compiling package '${packageInfo.name}'..."); - await copyPackage(sourceDirUri, targetDirUri); - compiler.deflectPackage(Directory.fromUri(targetDirUri)); - - if (packageInfo.name != nameOfPackageBeingCompiled) { - overrides[packageInfo.name] = { - "path": targetDirUri.toFilePath(windows: Platform.isWindows) - }; - } else { - sourcePackageIsCompiled = true; - } - print("Package '${packageInfo.name}' compiled to '$targetDirUri'."); - } - - final appDst = context.buildApplicationDirectory.uri; - if (!sourcePackageIsCompiled) { - print( - "Copying application package (from '${context.sourceApplicationDirectory.uri}')...", - ); - await copyPackage(context.sourceApplicationDirectory.uri, appDst); - print("Application packaged copied to '$appDst'."); - } - pubspecMap['dependencies'] = { - nameOfPackageBeingCompiled: { - "path": appDst.toFilePath(windows: Platform.isWindows) - } - }; - - if (context.forTests) { - final devDeps = context.sourceApplicationPubspecMap['dev_dependencies']; - if (devDeps != null) { - pubspecMap['dev_dependencies'] = devDeps; - } - - overrides['conduit_core'] = { - 'path': appDst.toFilePath(windows: Platform.isWindows) - }; - } - - File.fromUri(context.buildDirectoryUri.resolve("pubspec.yaml")) - .writeAsStringSync(json.encode(pubspecMap)); - - context - .getFile(context.targetScriptFileUri) - .writeAsStringSync(context.source); - - for (final compiler in context.context.compilers) { - compiler.didFinishPackageGeneration(context); - } - - print("Fetching dependencies (--offline --no-precompile)..."); - await getDependencies(); - print("Finished fetching dependencies."); - if (!context.forTests) { - print("Compiling..."); - await compile(context.targetScriptFileUri, context.executableUri); - print("Success. Executable is located at '${context.executableUri}'."); - } - } - - /// Fetches dependencies for the project. - /// - /// This method runs 'dart pub get' with the '--offline' and '--no-precompile' flags. - /// It throws a [StateError] if the command fails. - Future getDependencies() async { - const String cmd = "dart"; - - final res = await Process.run( - cmd, - ["pub", "get", "--offline", "--no-precompile"], - workingDirectory: - context.buildDirectoryUri.toFilePath(windows: Platform.isWindows), - runInShell: true, - ); - if (res.exitCode != 0) { - print("${res.stdout}"); - throw StateError( - "'pub get' failed with the following message: ${res.stderr}", - ); - } - } - - /// Compiles the source file to an executable. - /// - /// [srcUri] is the URI of the source file to compile. - /// [dstUri] is the URI where the compiled executable will be saved. - /// - /// This method runs 'dart compile exe' with verbose output. - /// It throws a [StateError] if the compilation fails. - Future compile(Uri srcUri, Uri dstUri) async { - final res = await Process.run( - "dart", - [ - "compile", - "exe", - ...(context.environment?.entries.map((e) => "-D${e.key}=${e.value}") ?? - []), - "-v", - srcUri.toFilePath(windows: Platform.isWindows), - "-o", - dstUri.toFilePath(windows: Platform.isWindows) - ], - workingDirectory: context.buildApplicationDirectory.uri - .toFilePath(windows: Platform.isWindows), - runInShell: true, - ); - - if (res.exitCode != 0) { - throw StateError( - "'dart2native' failed with the following message: ${res.stderr}", - ); - } - print("${res.stdout}"); - } - - /// Copies a package from source to destination. - /// - /// [srcUri] is the URI of the source package. - /// [dstUri] is the URI where the package will be copied. - /// - /// This method creates the destination directory if it doesn't exist, - /// copies the package contents, and handles Windows-specific file system issues. - Future copyPackage(Uri srcUri, Uri dstUri) async { - final dstDir = Directory.fromUri(dstUri); - if (!dstDir.existsSync()) { - dstDir.createSync(recursive: true); - } - try { - await copyPath( - srcUri.toFilePath(windows: Platform.isWindows), - dstUri.toFilePath(windows: Platform.isWindows), - ); - } on FileSystemException catch (e) { - if (Platform.isWindows) { - final File f = File(e.path!); - if (f.existsSync()) { - f.deleteSync(); - } - File(e.path!).writeAsStringSync('dummy'); - await copyPath( - srcUri.toFilePath(windows: Platform.isWindows), - dstUri.toFilePath(windows: Platform.isWindows), - ); - } else { - rethrow; - } - } - - return context.getFile(srcUri.resolve("pubspec.yaml")).copy( - dstUri - .resolve("pubspec.yaml") - .toFilePath(windows: Platform.isWindows), - ); - } - - /// Retrieves package information for a given compiler. - /// - /// [compiler] is the compiler instance to get package information for. - /// - /// This method uses reflection to find the source URI of the compiler - /// and then retrieves the corresponding package information. - Future _getPackageInfoForCompiler(Compiler compiler) async { - final compilerUri = reflect(compiler).type.location!.sourceUri; - - return (await context.packageConfig)[compilerUri.pathSegments.first]!; - } -} diff --git a/packages/runtime/lib/src/build_context.dart b/packages/runtime/lib/src/build_context.dart deleted file mode 100644 index d55c472..0000000 --- a/packages/runtime/lib/src/build_context.dart +++ /dev/null @@ -1,323 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'dart:mirrors'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:package_config/package_config.dart'; -import 'package:path/path.dart'; -import 'package:pubspec_parse/pubspec_parse.dart'; -import 'package:yaml/yaml.dart'; - -/// BuildContext provides configuration and context values used during the build process. -/// It encapsulates information about the application being compiled, build artifacts, -/// and provides utility methods for file and package management. -class BuildContext { - /// Constructs a new BuildContext instance. - /// - /// [rootLibraryFileUri]: The URI of the root library file of the application being compiled. - /// [buildDirectoryUri]: The URI of the directory where build artifacts will be stored. - /// [executableUri]: The URI of the executable build product file. - /// [source]: The source script for the executable. - /// [environment]: Optional map of environment variables. - /// [forTests]: Boolean flag indicating whether this context is for tests (includes dev dependencies). - BuildContext( - this.rootLibraryFileUri, - this.buildDirectoryUri, - this.executableUri, - this.source, { - this.environment, - this.forTests = false, - }) { - analyzer = CodeAnalyzer(sourceApplicationDirectory.uri); - } - - /// Creates a BuildContext instance from a map of values. - /// - /// This factory constructor allows for easy serialization and deserialization of BuildContext objects. - /// - /// [map]: A map containing the necessary values to construct a BuildContext. - /// Returns: A new BuildContext instance. - factory BuildContext.fromMap(Map map) { - return BuildContext( - Uri.parse(map['rootLibraryFileUri']), - Uri.parse(map['buildDirectoryUri']), - Uri.parse(map['executableUri']), - map['source'], - environment: map['environment'], - forTests: map['forTests'] ?? false, - ); - } - - /// Returns a map representation of the BuildContext with safe-to-serialize values. - /// - /// This getter is useful for serialization purposes, ensuring that all values are - /// in a format that can be easily serialized (e.g., converting URIs to strings). - Map get safeMap => { - 'rootLibraryFileUri': sourceLibraryFile.uri.toString(), - 'buildDirectoryUri': buildDirectoryUri.toString(), - 'source': source, - 'executableUri': executableUri.toString(), - 'environment': environment, - 'forTests': forTests - }; - - /// The CodeAnalyzer instance used for analyzing Dart code. - late final CodeAnalyzer analyzer; - - /// The URI of the root library file of the application being compiled. - final Uri rootLibraryFileUri; - - /// The URI of the executable build product file. - final Uri executableUri; - - /// The URI of the directory where build artifacts are stored during the build process. - final Uri buildDirectoryUri; - - /// The source script for the executable. - final String source; - - /// Indicates whether dev dependencies of the application package should be included - /// in the dependencies of the compiled executable. - final bool forTests; - - /// Cached PackageConfig instance. - PackageConfig? _packageConfig; - - /// Optional map of environment variables. - final Map? environment; - - /// The current RuntimeContext, cast as a MirrorContext. - /// - /// This getter provides access to the runtime context available during the build process. - MirrorContext get context => RuntimeContext.current as MirrorContext; - - /// The URI of the target script file. - /// - /// If [forTests] is true, this will be a test file, otherwise it will be the main application file. - Uri get targetScriptFileUri => forTests - ? getDirectory(buildDirectoryUri.resolve("test/")) - .uri - .resolve("main_test.dart") - : buildDirectoryUri.resolve("main.dart"); - - /// The Pubspec of the source application. - /// - /// This getter parses and returns the pubspec.yaml file of the application being compiled. - Pubspec get sourceApplicationPubspec => Pubspec.parse( - File.fromUri(sourceApplicationDirectory.uri.resolve("pubspec.yaml")) - .readAsStringSync(), - ); - - /// The pubspec of the source application as a map. - /// - /// This getter loads and returns the pubspec.yaml file as a YAML map. - Map get sourceApplicationPubspecMap => loadYaml( - File.fromUri( - sourceApplicationDirectory.uri.resolve("pubspec.yaml"), - ).readAsStringSync(), - ) as Map; - - /// The directory of the application being compiled. - Directory get sourceApplicationDirectory => - getDirectory(rootLibraryFileUri.resolve("../")); - - /// The library file of the application being compiled. - File get sourceLibraryFile => getFile(rootLibraryFileUri); - - /// The directory where build artifacts are stored. - Directory get buildDirectory => getDirectory(buildDirectoryUri); - - /// The generated runtime directory. - Directory get buildRuntimeDirectory => - getDirectory(buildDirectoryUri.resolve("generated_runtime/")); - - /// Directory for compiled packages. - Directory get buildPackagesDirectory => - getDirectory(buildDirectoryUri.resolve("packages/")); - - /// Directory for the compiled application. - Directory get buildApplicationDirectory => getDirectory( - buildPackagesDirectory.uri.resolve("${sourceApplicationPubspec.name}/"), - ); - - /// Gets the dependency package configuration relative to [sourceApplicationDirectory]. - /// - /// This getter lazily loads and caches the package configuration. - /// Returns: A Future that resolves to a PackageConfig instance. - Future get packageConfig async { - return _packageConfig ??= - (await findPackageConfig(sourceApplicationDirectory))!; - } - - /// Returns a [Directory] at the specified [uri], creating it recursively if it doesn't exist. - /// - /// [uri]: The URI of the directory. - /// Returns: A Directory instance. - Directory getDirectory(Uri uri) { - final dir = Directory.fromUri(uri); - if (!dir.existsSync()) { - dir.createSync(recursive: true); - } - return dir; - } - - /// Returns a [File] at the specified [uri], creating all parent directories recursively if necessary. - /// - /// [uri]: The URI of the file. - /// Returns: A File instance. - File getFile(Uri uri) { - final file = File.fromUri(uri); - if (!file.parent.existsSync()) { - file.parent.createSync(recursive: true); - } - - return file; - } - - /// Retrieves a Package instance from a given URI. - /// - /// [uri]: The URI to resolve to a package. - /// Returns: A Future that resolves to a Package instance, or null if not found. - /// Throws: ArgumentError if the URI is not absolute or a package URI. - Future getPackageFromUri(Uri? uri) async { - if (uri == null) { - return null; - } - if (uri.scheme == "package") { - final segments = uri.pathSegments; - return (await packageConfig)[segments.first]!; - } else if (!uri.isAbsolute) { - throw ArgumentError("'uri' must be absolute or a package URI"); - } - return null; - } - - /// Retrieves import directives from a URI or source code. - /// - /// [uri]: The URI of the file to analyze. - /// [source]: The source code to analyze. - /// [alsoImportOriginalFile]: Whether to include an import for the original file. - /// Returns: A Future that resolves to a list of import directive strings. - /// Throws: ArgumentError for invalid combinations of parameters. - Future> getImportDirectives({ - Uri? uri, - String? source, - bool alsoImportOriginalFile = false, - }) async { - if (uri != null && source != null) { - throw ArgumentError( - "either uri or source must be non-null, but not both", - ); - } - - if (uri == null && source == null) { - throw ArgumentError( - "either uri or source must be non-null, but not both", - ); - } - - if (alsoImportOriginalFile == true && uri == null) { - throw ArgumentError( - "flag 'alsoImportOriginalFile' may only be set if 'uri' is also set", - ); - } - final Package? package = await getPackageFromUri(uri); - final String? trailingSegments = uri?.pathSegments.sublist(1).join('/'); - final fileUri = - package?.packageUriRoot.resolve(trailingSegments ?? '') ?? uri; - final text = source ?? File.fromUri(fileUri!).readAsStringSync(); - final importRegex = RegExp("import [\\'\\\"]([^\\'\\\"]*)[\\'\\\"];"); - - final imports = importRegex.allMatches(text).map((m) { - final importedUri = Uri.parse(m.group(1)!); - - if (!importedUri.isAbsolute) { - final path = fileUri - ?.resolve(importedUri.path) - .toFilePath(windows: Platform.isWindows); - return "import 'file:${absolute(path!)}';"; - } - - return text.substring(m.start, m.end); - }).toList(); - - if (alsoImportOriginalFile) { - imports.add("import '$uri';"); - } - - return imports; - } - - /// Retrieves a ClassDeclaration from a given Type. - /// - /// [type]: The Type to analyze. - /// Returns: A Future that resolves to a ClassDeclaration, or null if not found. - Future getClassDeclarationFromType(Type type) async { - final classMirror = reflectType(type); - Uri uri = classMirror.location!.sourceUri; - if (!classMirror.location!.sourceUri.isAbsolute) { - final Package? package = await getPackageFromUri(uri); - uri = package!.packageUriRoot; - } - return analyzer.getClassFromFile( - MirrorSystem.getName(classMirror.simpleName), - uri, - ); - } - - /// Retrieves a FieldDeclaration from a ClassMirror and property name. - /// - /// [type]: The ClassMirror to analyze. - /// [propertyName]: The name of the property to find. - /// Returns: A Future that resolves to a FieldDeclaration, or null if not found. - Future _getField(ClassMirror type, String propertyName) { - return getClassDeclarationFromType(type.reflectedType).then((cd) { - try { - return cd!.members.firstWhere( - (m) => (m as FieldDeclaration) - .fields - .variables - .any((v) => v.name.value() == propertyName), - ) as FieldDeclaration; - } catch (e) { - return null; - } - }); - } - - /// Retrieves annotations from a field of a given Type. - /// - /// This method searches for the field in the given type and its superclasses. - /// - /// [type1]: The Type to analyze. - /// [propertyName]: The name of the property to find. - /// Returns: A Future that resolves to a list of Annotations. - Future> getAnnotationsFromField( - Type type1, - String propertyName, - ) async { - var type = reflectClass(type1); - FieldDeclaration? field = await _getField(type, propertyName); - while (field == null) { - type = type.superclass!; - if (type.reflectedType == Object) { - break; - } - field = await _getField(type, propertyName); - } - - if (field == null) { - return []; - } - - return field.metadata; - } -} diff --git a/packages/runtime/lib/src/build_manager.dart b/packages/runtime/lib/src/build_manager.dart deleted file mode 100644 index 7e34836..0000000 --- a/packages/runtime/lib/src/build_manager.dart +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'package:analyzer/dart/analysis/results.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:protevus_isolate/isolate.dart'; -import 'package:protevus_runtime/runtime.dart'; -import 'package:io/io.dart'; - -/// A class that represents an executable build process. -/// -/// This class extends the [Executable] class and is responsible for -/// executing a build process based on the provided build context. -class BuildExecutable extends Executable { - /// Constructs a new [BuildExecutable] instance. - /// - /// [message] is a map containing the build context information. - BuildExecutable(Map message) : super(message) { - context = BuildContext.fromMap(message); - } - - /// The build context for this executable. - late final BuildContext context; - - /// Executes the build process. - /// - /// This method creates a new [Build] instance with the current context - /// and calls its execute method. - @override - Future execute() async { - final build = Build(context); - await build.execute(); - } -} - -/// A class that manages the build process for non-mirrored builds. -class BuildManager { - /// Creates a new [BuildManager] instance. - /// - /// [context] is the [BuildContext] for this build manager. - BuildManager(this.context); - - /// The build context for this manager. - final BuildContext context; - - /// Gets the URI of the source directory. - Uri get sourceDirectoryUri => context.sourceApplicationDirectory.uri; - - /// Performs the build process. - /// - /// This method handles the following steps: - /// 1. Creates the build directory if it doesn't exist. - /// 2. Creates a temporary copy of the script file with the main function stripped. - /// 3. Analyzes the script file and removes all main functions. - /// 4. Copies the 'not_tests' directory if it exists. - /// 5. Runs the build executable in an isolate. - Future build() async { - if (!context.buildDirectory.existsSync()) { - context.buildDirectory.createSync(); - } - - // Create a temporary copy of the script file with the main function stripped - var scriptSource = context.source; - final strippedScriptFile = File.fromUri(context.targetScriptFileUri) - ..writeAsStringSync(scriptSource); - final analyzer = CodeAnalyzer(strippedScriptFile.absolute.uri); - final analyzerContext = analyzer.contexts.contextFor(analyzer.path); - final parsedUnit = analyzerContext.currentSession - .getParsedUnit(analyzer.path) as ParsedUnitResult; - - // Find and remove all main functions - final mainFunctions = parsedUnit.unit.declarations - .whereType() - .where((f) => f.name.value() == "main") - .toList(); - - for (final f in mainFunctions.reversed) { - scriptSource = scriptSource.replaceRange(f.offset, f.end, ""); - } - - strippedScriptFile.writeAsStringSync(scriptSource); - - // Copy the 'not_tests' directory if it exists - try { - await copyPath( - context.sourceApplicationDirectory.uri.resolve('test/not_tests').path, - context.buildDirectoryUri.resolve('not_tests').path); - } catch (_) {} - - // Run the build executable in an isolate - await IsolateExecutor.run( - BuildExecutable(context.safeMap), - packageConfigURI: - sourceDirectoryUri.resolve('.dart_tool/package_config.json'), - imports: [ - "package:conduit_runtime/runtime.dart", - context.targetScriptFileUri.toString() - ], - logHandler: (s) => print(s), //ignore: avoid_print - ); - } - - /// Cleans up the build directory. - /// - /// This method deletes the build directory and its contents if it exists. - Future clean() async { - if (context.buildDirectory.existsSync()) { - context.buildDirectory.deleteSync(recursive: true); - } - } -} diff --git a/packages/runtime/lib/src/compiler.dart b/packages/runtime/lib/src/compiler.dart deleted file mode 100644 index 8b39f36..0000000 --- a/packages/runtime/lib/src/compiler.dart +++ /dev/null @@ -1,78 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:io'; -import 'package:protevus_runtime/runtime.dart'; - -/// An abstract class that defines the interface for compilers in the Protevus Platform. -/// -/// This class provides methods for modifying packages, compiling runtime objects, -/// and handling post-generation tasks. Implementations of this class are used to -/// remove dart:mirrors usage from packages and prepare them for runtime execution. -abstract class Compiler { - /// Modifies a package on the filesystem to remove dart:mirrors usage. - /// - /// This method creates a copy of the compiler's package in the [destinationDirectory] - /// and modifies its contents to remove all uses of dart:mirrors. This is crucial for - /// preparing packages for environments where reflection is not available or desired. - /// - /// Packages should export their [Compiler] in their main library file and only - /// import mirrors in files directly or transitively imported by the Compiler file. - /// This method should remove that export statement and therefore remove all transitive mirror imports. - /// - /// [destinationDirectory] The directory where the modified package will be written. - void deflectPackage(Directory destinationDirectory); - - /// Compiles and returns a map of runtime objects for use in mirrored mode. - /// - /// This method is responsible for creating runtime representations of objects - /// that can be used when the application is running in mirrored mode. - /// - /// [context] The [MirrorContext] providing reflection capabilities for compilation. - /// - /// Returns a [Map] where keys are String identifiers and values are compiled Objects. - Map compile(MirrorContext context); - - /// A hook method called after package generation is complete. - /// - /// This method can be overridden to perform any necessary cleanup or additional - /// tasks after the package has been generated. - /// - /// [context] The [BuildContext] containing information about the build process. - void didFinishPackageGeneration(BuildContext context) {} - - /// Returns a list of URIs that need to be resolved during the build process. - /// - /// This method can be overridden to specify additional URIs that should be - /// resolved as part of the compilation process. - /// - /// [context] The [BuildContext] containing information about the build process. - /// - /// Returns a [List] of [Uri] objects to be resolved. - List getUrisToResolve(BuildContext context) => []; -} - -/// An abstract class for compilers that generate source code. -/// -/// This class extends the functionality of [Compiler] to include -/// the ability to generate source code that represents the runtime behavior. -abstract class SourceCompiler { - /// Generates source code that declares a class equivalent in behavior to this runtime. - /// - /// This method should be implemented to produce a string of Dart source code - /// that includes all necessary directives and class declarations to replicate - /// the behavior of the runtime in a static context. - /// - /// [ctx] The [BuildContext] containing information about the build process. - /// - /// Returns a [Future] that resolves to a [String] containing the generated source code. - Future compile(BuildContext ctx) async { - throw UnimplementedError(); - } -} diff --git a/packages/runtime/lib/src/context.dart b/packages/runtime/lib/src/context.dart deleted file mode 100644 index 3fe6607..0000000 --- a/packages/runtime/lib/src/context.dart +++ /dev/null @@ -1,108 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_runtime/runtime.dart'; - -/// Contextual values used during runtime. -/// -/// This abstract class defines the structure for runtime contexts in the Protevus Platform. -/// It provides access to runtime objects and coercion functionality. -abstract class RuntimeContext { - /// The current [RuntimeContext] available to the executing application. - /// - /// This static property holds either a `MirrorContext` or a `GeneratedContext`, - /// depending on the execution type. - static final RuntimeContext current = instance; - - /// The runtimes available to the executing application. - /// - /// This property stores a collection of runtime objects that can be accessed - /// during the application's execution. - late RuntimeCollection runtimes; - - /// Gets a runtime object for the specified [type]. - /// - /// Callers typically invoke this operator, passing their [runtimeType] - /// to retrieve their runtime object. - /// - /// It is important to note that a runtime object must exist for every - /// class that extends a class that has a runtime. Use `MirrorContext.getSubclassesOf` when compiling. - /// - /// In other words, if the type `Base` has a runtime and the type `Subclass` extends `Base`, - /// `Subclass` must also have a runtime. The runtime objects for both `Subclass` and `Base` - /// must be the same type. - /// - /// @param type The Type to retrieve the runtime object for. - /// @return The runtime object associated with the specified type. - dynamic operator [](Type type) => runtimes[type]; - - /// Coerces the given [input] to the specified type [T]. - /// - /// This method is used to convert or cast the input to the desired type. - /// - /// @param input The input value to be coerced. - /// @return The coerced value of type [T]. - T coerce(dynamic input); -} - -/// A collection of runtime objects indexed by type names. -/// -/// This class provides a way to store and retrieve runtime objects -/// associated with specific types. -class RuntimeCollection { - /// Creates a new [RuntimeCollection] with the given [map]. - /// - /// @param map A map where keys are type names and values are runtime objects. - RuntimeCollection(this.map); - - /// The underlying map storing runtime objects. - final Map map; - - /// Returns an iterable of all runtime objects in the collection. - Iterable get iterable => map.values; - - /// Retrieves the runtime object for the specified type [t]. - /// - /// This operator first attempts to find an exact match for the type name. - /// If not found, it tries to match a generic type by removing type parameters. - /// - /// @param t The Type to retrieve the runtime object for. - /// @return The runtime object associated with the specified type. - /// @throws ArgumentError if no runtime object is found for the given type. - Object operator [](Type t) { - //todo: optimize by keeping a cache where keys are of type [Type] to avoid the - // expensive indexOf and substring calls in this method - final typeName = t.toString(); - final r = map[typeName]; - if (r != null) { - return r; - } - - final genericIndex = typeName.indexOf("<"); - if (genericIndex == -1) { - throw ArgumentError("Runtime not found for type '$t'."); - } - - final genericTypeName = typeName.substring(0, genericIndex); - final out = map[genericTypeName]; - if (out == null) { - throw ArgumentError("Runtime not found for type '$t'."); - } - - return out; - } -} - -/// An annotation to prevent a type from being compiled when it otherwise would be. -/// -/// Use this annotation on a type to exclude it from compilation. -class PreventCompilation { - /// Creates a constant instance of [PreventCompilation]. - const PreventCompilation(); -} diff --git a/packages/runtime/lib/src/exceptions.dart b/packages/runtime/lib/src/exceptions.dart deleted file mode 100644 index 83cd428..0000000 --- a/packages/runtime/lib/src/exceptions.dart +++ /dev/null @@ -1,45 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// Exception thrown when type coercion fails. -/// -/// This exception is used to indicate that an attempt to convert a value -/// from one type to another has failed. It provides information about -/// the expected type and the actual type of the value. -class TypeCoercionException implements Exception { - /// Creates a new [TypeCoercionException]. - /// - /// [expectedType] is the type that was expected for the conversion. - /// [actualType] is the actual type of the value that couldn't be converted. - /// - /// Example: - /// ```dart - /// throw TypeCoercionException(String, int); - /// ``` - TypeCoercionException(this.expectedType, this.actualType); - - /// The type that was expected for the conversion. - final Type expectedType; - - /// The actual type of the value that couldn't be converted. - final Type actualType; - - @override - - /// Returns a string representation of the exception. - /// - /// The returned string includes both the expected type and the actual type - /// to provide clear information about the nature of the coercion failure. - /// - /// Returns: - /// A string describing the type coercion exception. - String toString() { - return "input is not expected type '$expectedType' (input is '$actualType')"; - } -} diff --git a/packages/runtime/lib/src/generator.dart b/packages/runtime/lib/src/generator.dart deleted file mode 100644 index 447ecb0..0000000 --- a/packages/runtime/lib/src/generator.dart +++ /dev/null @@ -1,159 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async'; -import 'dart:io'; - -/// Token used to replace directives in the loader shell. -const String _directiveToken = "___DIRECTIVES___"; - -/// Token used to replace assignments in the loader shell. -const String _assignmentToken = "___ASSIGNMENTS___"; - -/// A class responsible for generating runtime code. -/// -/// This class allows adding runtime elements and writing them to a specified directory. -class RuntimeGenerator { - /// List of runtime elements to be generated. - final _elements = <_RuntimeElement>[]; - - /// Adds a new runtime element to the generator. - /// - /// [name] is the name of the runtime element. - /// [source] is the source code of the runtime element. - void addRuntime({required String name, required String source}) { - _elements.add(_RuntimeElement(name, source)); - } - - /// Writes the generated runtime code to the specified directory. - /// - /// [directoryUri] is the URI of the directory where the code will be written. - /// This method creates necessary directories, writes the library file, - /// pubspec file, and individual runtime element files. - Future writeTo(Uri directoryUri) async { - final dir = Directory.fromUri(directoryUri); - final libDir = Directory.fromUri(dir.uri.resolve("lib/")); - final srcDir = Directory.fromUri(libDir.uri.resolve("src/")); - if (!libDir.existsSync()) { - libDir.createSync(recursive: true); - } - if (!srcDir.existsSync()) { - srcDir.createSync(recursive: true); - } - - final libraryFile = - File.fromUri(libDir.uri.resolve("generated_runtime.dart")); - await libraryFile.writeAsString(loaderSource); - - final pubspecFile = File.fromUri(dir.uri.resolve("pubspec.yaml")); - await pubspecFile.writeAsString(pubspecSource); - - await Future.forEach(_elements, (_RuntimeElement e) async { - final file = File.fromUri(srcDir.uri.resolveUri(e.relativeUri)); - if (!file.parent.existsSync()) { - file.parent.createSync(recursive: true); - } - - await file.writeAsString(e.source); - }); - } - - /// Returns the content of the pubspec.yaml file as a string. - String get pubspecSource => """ -name: generated_runtime -description: A runtime generated by package:conduit_runtime -version: 1.0.0 - -environment: - sdk: '>=3.4.0 <4.0.0' -"""; - - /// Returns the shell of the loader file as a string. - /// - /// This shell contains placeholders for directives and assignments. - String get _loaderShell => """ -import 'package:conduit_runtime/runtime.dart'; -import 'package:conduit_runtime/slow_coerce.dart' as runtime_cast; -$_directiveToken - -RuntimeContext instance = GeneratedContext._(); - -class GeneratedContext extends RuntimeContext { - GeneratedContext._() { - final map = {}; - - $_assignmentToken - - runtimes = RuntimeCollection(map); - } - - @override - T coerce(dynamic input) { - return runtime_cast.cast(input); - } -} - """; - - /// Returns the complete source of the loader file. - /// - /// This method replaces the directive and assignment tokens in the loader shell - /// with the actual directives and assignments. - String get loaderSource { - return _loaderShell - .replaceFirst(_directiveToken, _directives) - .replaceFirst(_assignmentToken, _assignments); - } - - /// Generates the import directives for all runtime elements. - String get _directives { - final buf = StringBuffer(); - - for (final e in _elements) { - buf.writeln( - "import 'src/${e.relativeUri.toFilePath(windows: Platform.isWindows)}' as ${e.importAlias};", - ); - } - - return buf.toString(); - } - - /// Generates the assignments for all runtime elements. - String get _assignments { - final buf = StringBuffer(); - - for (final e in _elements) { - buf.writeln("map['${e.typeName}'] = ${e.importAlias}.instance;"); - } - - return buf.toString(); - } -} - -/// A class representing a single runtime element. -class _RuntimeElement { - /// Creates a new runtime element. - /// - /// [typeName] is the name of the type for this runtime element. - /// [source] is the source code of this runtime element. - _RuntimeElement(this.typeName, this.source); - - /// The name of the type for this runtime element. - final String typeName; - - /// The source code of this runtime element. - final String source; - - /// Returns the relative URI for this runtime element's file. - Uri get relativeUri => Uri.file("${typeName.toLowerCase()}.dart"); - - /// Returns the import alias for this runtime element. - String get importAlias { - return "g_${typeName.toLowerCase()}"; - } -} diff --git a/packages/runtime/lib/src/mirror_coerce.dart b/packages/runtime/lib/src/mirror_coerce.dart deleted file mode 100644 index e0a2d51..0000000 --- a/packages/runtime/lib/src/mirror_coerce.dart +++ /dev/null @@ -1,103 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:mirrors'; -import 'package:protevus_runtime/runtime.dart'; - -/// Attempts to cast an object to a specified type at runtime. -/// -/// This function uses Dart's mirror system to perform runtime type checking -/// and casting. It handles casting to List and Map types, including their -/// generic type arguments. -/// -/// Parameters: -/// - [object]: The object to be cast. -/// - [intoType]: A [TypeMirror] representing the type to cast into. -/// -/// Returns: -/// The object cast to the specified type. -/// -/// Throws: -/// - [TypeCoercionException] if the casting fails. -Object runtimeCast(Object object, TypeMirror intoType) { - final exceptionToThrow = - TypeCoercionException(intoType.reflectedType, object.runtimeType); - - try { - final objectType = reflect(object).type; - if (objectType.isAssignableTo(intoType)) { - return object; - } - - if (intoType.isSubtypeOf(reflectType(List))) { - if (object is! List) { - throw exceptionToThrow; - } - - final elementType = intoType.typeArguments.first; - final elements = object.map((e) => runtimeCast(e, elementType)); - return (intoType as ClassMirror).newInstance(#from, [elements]).reflectee; - } else if (intoType.isSubtypeOf(reflectType(Map, [String, dynamic]))) { - if (object is! Map) { - throw exceptionToThrow; - } - - final output = (intoType as ClassMirror) - .newInstance(Symbol.empty, []).reflectee as Map; - final valueType = intoType.typeArguments.last; - object.forEach((key, val) { - output[key] = runtimeCast(val, valueType); - }); - return output; - } - } on TypeError { - throw exceptionToThrow; - } on TypeCoercionException { - throw exceptionToThrow; - } - - throw exceptionToThrow; -} - -/// Determines if a given type is fully primitive. -/// -/// A type is considered fully primitive if it's a basic type (num, String, bool), -/// dynamic, or a collection (List, Map) where all nested types are also primitive. -/// -/// Parameters: -/// - [type]: A [TypeMirror] representing the type to check. -/// -/// Returns: -/// true if the type is fully primitive, false otherwise. -bool isTypeFullyPrimitive(TypeMirror type) { - if (type == reflectType(dynamic)) { - return true; - } - - if (type.isSubtypeOf(reflectType(List))) { - return isTypeFullyPrimitive(type.typeArguments.first); - } else if (type.isSubtypeOf(reflectType(Map))) { - return isTypeFullyPrimitive(type.typeArguments.first) && - isTypeFullyPrimitive(type.typeArguments.last); - } - - if (type.isSubtypeOf(reflectType(num))) { - return true; - } - - if (type.isSubtypeOf(reflectType(String))) { - return true; - } - - if (type.isSubtypeOf(reflectType(bool))) { - return true; - } - - return false; -} diff --git a/packages/runtime/lib/src/mirror_context.dart b/packages/runtime/lib/src/mirror_context.dart deleted file mode 100644 index e9c0cb7..0000000 --- a/packages/runtime/lib/src/mirror_context.dart +++ /dev/null @@ -1,119 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:mirrors'; -import 'package:protevus_runtime/runtime.dart'; - -/// Global instance of the MirrorContext. -RuntimeContext instance = MirrorContext._(); - -/// A runtime context implementation using Dart's mirror system. -/// -/// This class provides runtime type information and compilation capabilities -/// using reflection. -class MirrorContext extends RuntimeContext { - /// Private constructor to ensure singleton instance. - /// - /// Initializes the context by compiling all available runtimes. - MirrorContext._() { - final m = {}; - - for (final c in compilers) { - final compiledRuntimes = c.compile(this); - if (m.keys.any((k) => compiledRuntimes.keys.contains(k))) { - final matching = m.keys.where((k) => compiledRuntimes.keys.contains(k)); - throw StateError( - 'Could not compile. Type conflict for the following types: ${matching.join(", ")}.', - ); - } - m.addAll(compiledRuntimes); - } - - runtimes = RuntimeCollection(m); - } - - /// List of all class mirrors in the current mirror system. - /// - /// Excludes classes marked with @PreventCompilation. - final List types = currentMirrorSystem() - .libraries - .values - .where((lib) => lib.uri.scheme == "package" || lib.uri.scheme == "file") - .expand((lib) => lib.declarations.values) - .whereType() - .where((cm) => firstMetadataOfType(cm) == null) - .toList(); - - /// List of all available compilers. - /// - /// Returns instances of non-abstract classes that are subclasses of Compiler. - List get compilers { - return types - .where((b) => b.isSubclassOf(reflectClass(Compiler)) && !b.isAbstract) - .map((b) => b.newInstance(Symbol.empty, []).reflectee as Compiler) - .toList(); - } - - /// Retrieves all non-abstract subclasses of a given type. - /// - /// [type] The base type to find subclasses of. - /// Returns a list of ClassMirror objects representing the subclasses. - List getSubclassesOf(Type type) { - final mirror = reflectClass(type); - return types.where((decl) { - if (decl.isAbstract) { - return false; - } - - if (!decl.isSubclassOf(mirror)) { - return false; - } - - if (decl.hasReflectedType) { - if (decl.reflectedType == type) { - return false; - } - } - - return true; - }).toList(); - } - - /// Coerces an input to a specified type T. - /// - /// Attempts to cast the input directly, and if that fails, - /// uses runtime casting. - /// - /// [input] The object to be coerced. - /// Returns the coerced object of type T. - @override - T coerce(dynamic input) { - try { - return input as T; - } catch (_) { - return runtimeCast(input, reflectType(T)) as T; - } - } -} - -/// Retrieves the first metadata annotation of a specific type from a declaration. -/// -/// [dm] The DeclarationMirror to search for metadata. -/// [dynamicType] Optional TypeMirror to use instead of T. -/// Returns the first metadata of type T, or null if not found. -T? firstMetadataOfType(DeclarationMirror dm, {TypeMirror? dynamicType}) { - final tMirror = dynamicType ?? reflectType(T); - try { - return dm.metadata - .firstWhere((im) => im.type.isSubtypeOf(tMirror)) - .reflectee as T; - } on StateError { - return null; - } -} diff --git a/packages/runtime/pubspec.yaml b/packages/runtime/pubspec.yaml deleted file mode 100644 index bae9a92..0000000 --- a/packages/runtime/pubspec.yaml +++ /dev/null @@ -1,24 +0,0 @@ -name: protevus_runtime -description: Provides behaviors and base types for packages that can use mirrors and be AOT compiled. -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: ^3.4.3 - -# Add regular dependencies here. -dependencies: - analyzer: ^6.5.0 - args: ^2.0.0 - protevus_isolate: ^0.0.1 - io: ^1.0.4 - package_config: ^2.1.0 - path: ^1.9.0 - pubspec_parse: ^1.2.3 - yaml: ^3.1.2 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/runtime/test/.gitkeep b/packages/runtime/test/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/packages/typeforge/.gitignore b/packages/typeforge/.gitignore deleted file mode 100644 index 3cceda5..0000000 --- a/packages/typeforge/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ - -# Avoid committing pubspec.lock for library packages; see -# https://dart.dev/guides/libraries/private-files#pubspeclock. -pubspec.lock diff --git a/packages/typeforge/CHANGELOG.md b/packages/typeforge/CHANGELOG.md deleted file mode 100644 index effe43c..0000000 --- a/packages/typeforge/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/packages/typeforge/README.md b/packages/typeforge/README.md deleted file mode 100644 index 03e8764..0000000 --- a/packages/typeforge/README.md +++ /dev/null @@ -1,147 +0,0 @@ -

- -# protevus_typeforge - -[![Build Status](https://travis-ci.org/conduit.dart/dart-codable.svg?branch=master)](https://travis-ci.org/conduit.dart/dart-codable) - -A library for encoding and decoding dynamic data into Dart objects. - -## Basic Usage - -Data objects extend `Coding`: - -```dart -class Person extends Coding { - String name; - - @override - void decode(KeyedArchive object) { - // must call super - super.decode(object); - - name = object.decode("name"); - } - - @override - void encode(KeyedArchive object) { - object.encode("name", name); - } -} -``` - -An object that extends `Coding` can be read from JSON: - -```dart -final json = json.decode(...); -final archive = KeyedArchive.unarchive(json); -final person = Person()..decode(archive); -``` - -Objects that extend `Coding` may also be written to JSON: - -```dart -final person = Person()..name = "Bob"; -final archive = KeyedArchive.archive(person); -final json = json.encode(archive); -``` - -`Coding` objects can encode or decode other `Coding` objects, including lists of `Coding` objects and maps where `Coding` objects are values. You must provide a closure that instantiates the `Coding` object being decoded. - -```dart -class Team extends Coding { - - List members; - Person manager; - - @override - void decode(KeyedArchive object) { - super.decode(object); // must call super - - members = object.decodeObjects("members", () => Person()); - manager = object.decodeObject("manager", () => Person()); - } - - @override - void encode(KeyedArchive object) { - object.encodeObject("manager", manager); - object.encodeObjects("members", members); - } -} -``` - -## Dynamic Type Casting - -Types with primitive type arguments (e.g., `List` or `Map`) are a particular pain point when decoding. Override `castMap` in `Coding` to perform type coercion. -You must import `package:protevus_typeforge/cast.dart as cast` and prefix type names with `cast`. - -```dart -import 'package:protevus_typeforge/cast.dart' as cast; -class Container extends Coding { - List things; - - @override - Map> get castMap => { - "things": cast.List(cast.String) - }; - - @override - void decode(KeyedArchive object) { - super.decode(object); - - things = object.decode("things"); - } - - @override - void encode(KeyedArchive object) { - object.encode("things", things); - } -} - -``` - - -## Document References - -`Coding` objects may be referred to multiple times in a document without duplicating their structure. An object is referenced with the `$key` key. -For example, consider the following JSON: - -```json -{ - "components": { - "thing": { - "name": "The Thing" - } - }, - "data": { - "$ref": "#/components/thing" - } -} -``` - -In the above, the decoded value of `data` inherits all properties from `/components/thing`: - -```json -{ - "$ref": "#/components/thing", - "name": "The Thing" -} -``` - -You may create references in your in-memory data structures through the `Coding.referenceURI`. - -```dart -final person = Person()..referenceURI = Uri(path: "/teams/engineering/manager"); -``` - -The above person is encoded as: - -```json -{ - "$ref": "#/teams/engineering/manager" -} -``` - -You may have cyclical references. - -See the specification for [JSON Schema](http://json-schema.org) and the `$ref` keyword for more details. - diff --git a/packages/typeforge/analysis_options.yaml b/packages/typeforge/analysis_options.yaml deleted file mode 100644 index dee8927..0000000 --- a/packages/typeforge/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/packages/typeforge/lib/cast.dart b/packages/typeforge/lib/cast.dart deleted file mode 100644 index 7433900..0000000 --- a/packages/typeforge/lib/cast.dart +++ /dev/null @@ -1,29 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// The `cast` library provides a collection of utilities for type casting and conversion in Dart. -/// -/// This library exports several modules that offer different casting functionalities: -/// - `base_cast.dart`: Contains base casting operations. -/// - `primitive_cast.dart`: Provides casting methods for primitive data types. -/// - `collection_cast.dart`: Offers casting utilities for collections. -/// - `special_cast.dart`: Includes casting operations for special data types. -/// - `utility_cast.dart`: Contains additional utility functions for casting. -/// - `constants.dart`: Defines constants used across the casting operations. -/// -/// These modules collectively provide a comprehensive set of tools for handling -/// various type conversion scenarios in Dart applications. -library cast; - -export 'src/base_cast.dart'; -export 'src/primitive_cast.dart'; -export 'src/collection_cast.dart'; -export 'src/special_cast.dart'; -export 'src/utility_cast.dart'; -export 'src/constants.dart'; diff --git a/packages/typeforge/lib/codable.dart b/packages/typeforge/lib/codable.dart deleted file mode 100644 index 1c15775..0000000 --- a/packages/typeforge/lib/codable.dart +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/// The `codable` library provides functionality for encoding and decoding objects. -/// -/// This library exports several core components: -/// - `referenceable.dart`: Defines objects that can be referenced. -/// - `coding.dart`: Contains encoding and decoding interfaces. -/// - `keyed_archive.dart`: Implements a key-value storage for encoded objects. -/// - `list_archive.dart`: Implements a list-based storage for encoded objects. -/// - `reference_resolver.dart`: Handles resolving references within encoded data. -/// -/// These components work together to provide a robust system for object serialization -/// and deserialization, supporting both simple and complex data structures. -library codable; - -export 'src/referenceable.dart'; -export 'src/coding.dart'; -export 'src/keyed_archive.dart'; -export 'src/list_archive.dart'; -export 'src/reference_resolver.dart'; diff --git a/packages/typeforge/lib/src/base_cast.dart b/packages/typeforge/lib/src/base_cast.dart deleted file mode 100644 index 93d1729..0000000 --- a/packages/typeforge/lib/src/base_cast.dart +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:core' as core; -import 'dart:core' hide Map, String, int; - -/// Represents an exception thrown when a cast operation fails. -/// -/// This class is used to provide detailed information about the context -/// and reason for a failed cast operation. -/// -/// [context] represents the location or scope where the cast failed. -/// [key] is an optional identifier for the specific element that failed to cast. -/// [message] provides additional details about the failure. -class FailedCast implements core.Exception { - dynamic context; - dynamic key; - core.String message; - FailedCast(this.context, this.key, this.message); - @override - core.String toString() { - if (key == null) { - return "Failed cast at $context: $message"; - } - return "Failed cast at $context $key: $message"; - } -} - -/// An abstract class representing a type cast operation. -/// -/// This class defines the structure for implementing type casting -/// from dynamic types to a specific type T. -/// -/// The [cast] method is the public API for performing the cast, -/// while [safeCast] is the internal implementation that can be -/// overridden by subclasses to define specific casting behavior. -/// -/// Usage: -/// ```dart -/// class MyCustomCast extends Cast { -/// @override -/// MyType _cast(dynamic from, String context, dynamic key) { -/// // Custom casting logic here -/// } -/// } -/// ``` -abstract class Cast { - /// Constructs a new [Cast] instance. - /// - /// This constructor is declared as `const` to allow for compile-time - /// constant instances of [Cast] subclasses. This can be beneficial for - /// performance and memory usage in certain scenarios. - const Cast(); - - /// Performs a safe cast operation from a dynamic type to type T. - /// - /// This method wraps the [safeCast] method with additional error handling: - /// - If a [FailedCast] exception is thrown, it's rethrown as-is. - /// - For any other exception, it's caught and wrapped in a new [FailedCast] exception. - /// - /// Parameters: - /// [from]: The value to be cast. - /// [context]: A string describing the context where the cast is performed. - /// [key]: An optional identifier for the specific element being cast. - /// - /// Returns: - /// The cast value of type T. - /// - /// Throws: - /// [FailedCast]: If the cast fails, either from [safeCast] or from wrapping another exception. - T _safeCast(dynamic from, core.String context, dynamic key) { - try { - return safeCast(from, context, key); - } on FailedCast { - rethrow; - } catch (e) { - throw FailedCast(context, key, e.toString()); - } - } - - /// Performs a safe cast operation from a dynamic type to type T. - /// - /// This method is a convenience wrapper around [_safeCast] that provides - /// a default context of "toplevel" and a null key. - /// - /// Parameters: - /// [from]: The value to be cast. - /// - /// Returns: - /// The cast value of type T. - /// - /// Throws: - /// [FailedCast]: If the cast operation fails. - T cast(dynamic from) => _safeCast(from, "toplevel", null); - - /// Performs a safe cast operation from a dynamic type to type T. - /// - /// This method should be implemented by subclasses to define the specific - /// casting behavior for the type T. - /// - /// Parameters: - /// [from]: The value to be cast. - /// [context]: A string describing the context where the cast is performed. - /// [key]: An optional identifier for the specific element being cast. - /// - /// Returns: - /// The cast value of type T. - /// - /// Throws: - /// [FailedCast]: If the cast operation fails. - T safeCast(dynamic from, core.String context, dynamic key); -} diff --git a/packages/typeforge/lib/src/coding.dart b/packages/typeforge/lib/src/coding.dart deleted file mode 100644 index 2c2cc69..0000000 --- a/packages/typeforge/lib/src/coding.dart +++ /dev/null @@ -1,80 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:meta/meta.dart'; -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; - -/// Abstract class representing a coding mechanism. -/// -/// This class provides a framework for encoding and decoding objects. -/// It includes a [referenceURI] property and a [castMap] getter for type casting. -/// -/// The [decode] method is used to populate the object's properties from a [KeyedArchive]. -/// It must be called by subclasses, hence the @mustCallSuper annotation. -/// -/// The [encode] method is abstract and must be implemented by subclasses to define -/// how the object should be encoded into a [KeyedArchive]. -abstract class Coding { - /// The URI reference for this coding object. - /// - /// This property holds a [Uri] that can be used as a reference or identifier - /// for the coded object. It may represent the location or source of the data, - /// or serve as a unique identifier within a larger system. - /// - /// The [referenceURI] is typically set during decoding and can be accessed - /// or modified as needed. It may be null if no reference is available or required. - Uri? referenceURI; - - /// A map of property names to their corresponding cast functions. - /// - /// This getter returns a [Map] where the keys are strings representing - /// property names, and the values are [cast.Cast] functions for those properties. - /// The cast functions are used to convert decoded values to their appropriate types. - /// - /// By default, this getter returns `null`, indicating that no custom casting - /// is required. Subclasses can override this getter to provide specific - /// casting behavior for their properties. - /// - /// Returns `null` if no custom casting is needed, or a [Map] of property - /// names to cast functions if custom casting is required. - Map>? get castMap => null; - - /// Decodes the object from a [KeyedArchive]. - /// - /// This method is responsible for populating the object's properties from the - /// provided [KeyedArchive]. It performs two main actions: - /// - /// 1. Sets the [referenceURI] of this object to the [referenceURI] of the - /// provided [KeyedArchive]. - /// 2. Applies any necessary type casting to the values in the [KeyedArchive] - /// using the [castMap] defined for this object. - /// - /// This method is marked with [@mustCallSuper], indicating that subclasses - /// overriding this method must call the superclass implementation. - /// - /// [object] The [KeyedArchive] containing the encoded data to be decoded. - @mustCallSuper - void decode(KeyedArchive object) { - referenceURI = object.referenceURI; - object.castValues(castMap); - } - - /// Encodes the object into a [KeyedArchive]. - /// - /// This abstract method must be implemented by subclasses to define - /// how the object should be encoded into a [KeyedArchive]. The implementation - /// should write all relevant properties of the object to the provided [object]. - /// - /// [object] The [KeyedArchive] to which the object's data should be encoded. - /// - /// Note that the [referenceURI] of the object is not automatically written - /// to the [KeyedArchive]. See note in [KeyedArchive._encodedObject]. - void encode(KeyedArchive object); -} diff --git a/packages/typeforge/lib/src/collection_cast.dart b/packages/typeforge/lib/src/collection_cast.dart deleted file mode 100644 index ced998b..0000000 --- a/packages/typeforge/lib/src/collection_cast.dart +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:core' as core; -import 'dart:core' hide Map, String, int; -import 'package:protevus_typeforge/cast.dart'; - -/// A cast operation for converting dynamic values to [core.Map]. -/// -/// This class extends [Cast>] and implements the [safeCast] method -/// to perform type checking and conversion to [core.Map]. -/// -/// The class uses two separate [Cast] instances: -/// - [_key] for casting the keys of the input map to type K -/// - [_value] for casting the values of the input map to type V -/// -/// The [safeCast] method checks if the input [from] is already a [core.Map]. -/// If it is, it creates a new map, casting each key-value pair using the -/// respective [_key] and [_value] casts. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final mapCast = Map(StringCast(), IntCast()); -/// final result = mapCast.cast({"a": 1, "b": 2}); // Returns Map -/// mapCast.cast("not a map"); // Throws FailedCast -/// ``` -class Map extends Cast> { - final Cast _key; - final Cast _value; - const Map(Cast key, Cast value) - : _key = key, - _value = value; - @override - core.Map safeCast(dynamic from, core.String context, dynamic key) { - if (from is core.Map) { - final result = {}; - for (final key in from.keys) { - final newKey = _key.safeCast(key, "map entry", key); - result[newKey] = _value.safeCast(from[key], "map entry", key); - } - return result; - } - return throw FailedCast(context, key, "not a map"); - } -} - -/// A cast operation for converting dynamic values to [core.Map]. -/// -/// This class extends [Cast>] and implements the [safeCast] method -/// to perform type checking and conversion to [core.Map]. -/// -/// The class uses a [Cast] instance [_value] for casting the values of the input map to type V. -/// -/// The [safeCast] method checks if the input [from] is already a [core.Map]. -/// If it is, it creates a new map with [core.String] keys and values of type V, -/// casting each value using the [_value] cast. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final stringMapCast = StringMap(IntCast()); -/// final result = stringMapCast.cast({"a": 1, "b": 2}); // Returns Map -/// stringMapCast.cast("not a map"); // Throws FailedCast -/// ``` -class StringMap extends Cast> { - final Cast _value; - const StringMap(Cast value) : _value = value; - @override - core.Map safeCast( - dynamic from, - core.String context, - dynamic key, - ) { - if (from is core.Map) { - final result = {}; - for (final core.String key in from.keys as core.Iterable) { - result[key] = _value.safeCast(from[key], "map entry", key); - } - return result; - } - return throw FailedCast(context, key, "not a map"); - } -} - -/// A cast operation for converting dynamic values to [core.List]. -/// -/// This class extends [Cast>] and implements the [safeCast] method -/// to perform type checking and conversion to [core.List]. -/// -/// The class uses a [Cast] instance [_entry] for casting each element of the input list to type E. -/// -/// The [safeCast] method checks if the input [from] is already a [core.List]. -/// If it is, it creates a new list of nullable E elements, casting each non-null -/// element using the [_entry] cast and preserving null values. If not, it throws -/// a [FailedCast] exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final listCast = List(IntCast()); -/// final result = listCast.cast([1, 2, null, 3]); // Returns List -/// listCast.cast("not a list"); // Throws FailedCast -/// ``` -class List extends Cast> { - final Cast _entry; - const List(Cast entry) : _entry = entry; - @override - core.List safeCast(dynamic from, core.String context, dynamic key) { - if (from is core.List) { - final length = from.length; - final result = core.List.filled(length, null); - for (core.int i = 0; i < length; ++i) { - if (from[i] != null) { - result[i] = _entry.safeCast(from[i], "list entry", i); - } else { - result[i] = null; - } - } - return result; - } - return throw FailedCast(context, key, "not a list"); - } -} diff --git a/packages/typeforge/lib/src/constants.dart b/packages/typeforge/lib/src/constants.dart deleted file mode 100644 index b0cd0af..0000000 --- a/packages/typeforge/lib/src/constants.dart +++ /dev/null @@ -1,74 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/cast.dart'; - -/// A constant instance of [AnyCast] that can be used for casting any dynamic value. -/// -/// This constant provides a convenient way to use the [AnyCast] functionality -/// without needing to create a new instance each time. It can be used in situations -/// where type-checking is not required, and you want to allow any type to pass through. -/// -/// Example usage: -/// ```dart -/// final result = any.cast(someValue); // Returns someValue unchanged, regardless of its type -/// ``` -const any = AnyCast(); - -/// A constant instance of [BoolCast] that can be used for casting dynamic values to [core.bool]. -/// -/// This constant provides a convenient way to use the [BoolCast] functionality -/// without needing to create a new instance each time. It can be used to perform -/// boolean type checking and casting operations. -/// -/// Example usage: -/// ```dart -/// final result = bool.cast(true); // Returns true -/// bool.cast("not a bool"); // Throws FailedCast -/// ``` -const bool = BoolCast(); - -/// A constant instance of [IntCast] that can be used for casting dynamic values to [core.int]. -/// -/// This constant provides a convenient way to use the [IntCast] functionality -/// without needing to create a new instance each time. It can be used to perform -/// integer type checking and casting operations. -/// -/// Example usage: -/// ```dart -/// final result = int.cast(42); // Returns 42 -/// int.cast("not an int"); // Throws FailedCast -/// ``` -const int = IntCast(); - -/// A constant instance of [DoubleCast] that can be used for casting dynamic values to [core.double]. -/// -/// This constant provides a convenient way to use the [DoubleCast] functionality -/// without needing to create a new instance each time. It can be used to perform -/// double type checking and casting operations. -/// -/// Example usage: -/// ```dart -/// final result = double.cast(3.14); // Returns 3.14 -/// double.cast("not a double"); // Throws FailedCast -/// ``` -const double = DoubleCast(); - -/// A constant instance of [StringCast] that can be used for casting dynamic values to [core.String]. -/// -/// This constant provides a convenient way to use the [StringCast] functionality -/// without needing to create a new instance each time. It can be used to perform -/// string type checking and casting operations. -/// -/// Example usage: -/// ```dart -/// final result = string.cast("Hello"); // Returns "Hello" -/// string.cast(42); // Throws FailedCast -/// ``` -const string = StringCast(); diff --git a/packages/typeforge/lib/src/keyed_archive.dart b/packages/typeforge/lib/src/keyed_archive.dart deleted file mode 100644 index 8fef8a1..0000000 --- a/packages/typeforge/lib/src/keyed_archive.dart +++ /dev/null @@ -1,580 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:collection'; -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; - -/// A container for a dynamic data object that can be decoded into [Coding] objects. -/// -/// A [KeyedArchive] is a [Map], but it provides additional behavior for decoding [Coding] objects -/// and managing JSON Schema references ($ref) through methods like [decode], [decodeObject], etc. -/// -/// You create a [KeyedArchive] by invoking [KeyedArchive.unarchive] and passing data decoded from a -/// serialization format like JSON and YAML. A [KeyedArchive] is then provided as an argument to -/// a [Coding] subclass' [Coding.decode] method. -/// -/// final json = json.decode(...); -/// final archive = KeyedArchive.unarchive(json); -/// final person = Person()..decode(archive); -/// -/// You may also create [KeyedArchive]s from [Coding] objects so that they can be serialized. -/// -/// final person = Person()..name = "Bob"; -/// final archive = KeyedArchive.archive(person); -/// final json = json.encode(archive); -/// -/// This class extends [Object] and mixes in [MapBase], allowing it to be used as a Map. -/// It also implements [Referenceable], providing functionality for handling references within the archive. -/// -/// The constructor is not typically used directly; instead, use the [KeyedArchive.unarchive] -/// or [KeyedArchive.archive] methods to create instances of [KeyedArchive]. -class KeyedArchive extends Object - with MapBase - implements Referenceable { - /// Use [unarchive] instead. - KeyedArchive(this._map) { - _recode(); - } - - /// Unarchives [data] into a [KeyedArchive] that can be used by [Coding.decode] to deserialize objects. - /// - /// Each [Map] in [data] (including [data] itself) is converted to a [KeyedArchive]. - /// Each [List] in [data] is converted to a [ListArchive]. These conversions occur for deeply nested maps - /// and lists. - /// - /// If [allowReferences] is true, JSON Schema references will be traversed and decoded objects - /// will contain values from the referenced object. This flag defaults to false. - KeyedArchive.unarchive(this._map, {bool allowReferences = false}) { - _recode(); - if (allowReferences) { - resolveOrThrow(ReferenceResolver(this)); - } - } - - /// Archives a [Coding] object into a [Map] that can be serialized into formats like JSON or YAML. - /// - /// Note that the return value of this method, as well as all other [Map] and [List] objects - /// embedded in the return value, are instances of [KeyedArchive] and [ListArchive]. These types - /// implement [Map] and [List], respectively. - /// - /// If [allowReferences] is true, JSON Schema references in the emitted document will be validated. - /// Defaults to false. - static Map archive( - Coding root, { - bool allowReferences = false, - }) { - final archive = KeyedArchive({}); - root.encode(archive); - if (allowReferences) { - archive.resolveOrThrow(ReferenceResolver(archive)); - } - return archive.toPrimitive(); - } - - /// Private constructor that creates an empty [KeyedArchive]. - /// - /// This constructor initializes the internal [_map] with an empty Map. - /// It's intended for internal use within the [KeyedArchive] class. - KeyedArchive._empty() : _map = {}; - - /// A reference to another object in the same document. - /// - /// This property represents a URI reference to another object within the same document. - /// It is used to establish relationships between objects in a hierarchical structure. - /// - /// Assign values to this property using the default [Uri] constructor and its path argument. - /// This property is serialized as a [Uri] fragment, e.g. `#/components/all`. - /// - /// Example: - /// - /// final object = new MyObject() - /// ..referenceURI = Uri(path: "/other/object"); - /// archive.encodeObject("object", object); - /// - Uri? referenceURI; - - /// The internal map that stores the key-value pairs of this [KeyedArchive]. - /// - /// This map is used to store the actual data of the archive. It is of type - /// `Map` to allow for flexibility in the types of values - /// that can be stored. The keys are always strings, representing the names - /// of the properties, while the values can be of any type. - /// - /// This map is manipulated by various methods of the [KeyedArchive] class, - /// such as the [] operator, decode methods, and encode methods. It's also - /// used when converting the archive to primitive types or when resolving - /// references. - Map _map; - - /// Stores the inflated (decoded) object associated with this archive. - /// - /// This property is used to cache the decoded object after it has been - /// inflated from the archive data. It allows for efficient retrieval - /// of the decoded object in subsequent accesses, avoiding repeated - /// decoding operations. - /// - /// The type is [Coding?] to accommodate both null values (when no object - /// has been inflated yet) and any object that implements the [Coding] interface. - Coding? _inflated; - - /// A reference to another [KeyedArchive] object. - /// - /// This property is used to handle JSON Schema references ($ref). - /// When a reference is resolved, this property holds the referenced [KeyedArchive] object. - /// It allows the current archive to access values from the referenced object - /// when a key is not found in the current archive's map. - KeyedArchive? _objectReference; - - /// Typecast the values in this archive. - /// - /// Prefer to override [Coding.castMap] instead of using this method directly. - /// - /// This method will recursively type values in this archive to the desired type - /// for a given key. Use this method (or [Coding.castMap]) for decoding `List` and `Map` - /// types, where the values are not `Coding` objects. - /// - /// You must `import 'package:codable/cast.dart' as cast;`. - /// - /// Usage: - /// - /// final dynamicObject = { - /// "key": ["foo", "bar"] - /// }; - /// final archive = KeyedArchive.unarchive(dynamicObject); - /// archive.castValues({ - /// "key": cast.List(cast.String) - /// }); - /// - /// // This now becomes a valid assignment - /// List key = archive.decode("key"); - /// - /// This method takes a [schema] parameter of type `Map?`, which defines - /// the types to cast for each key in the archive. If [schema] is null, the method returns - /// without performing any casting. The method uses a flag [_casted] to ensure it only - /// performs the casting once. It creates a [cast.Keyed] object with the provided schema - /// and uses it to cast the values in both the main [_map] and the [_objectReference] map - /// (if it exists). This ensures type safety and consistency across the entire archive structure. - void castValues(Map? schema) { - if (schema == null) { - return; - } - if (_casted) return; - _casted = true; - final caster = cast.Keyed(schema); - _map = caster.cast(_map); - - if (_objectReference != null) { - _objectReference!._map = caster.cast(_objectReference!._map); - } - } - - /// A flag indicating whether the values in this archive have been cast. - /// - /// This boolean is used to ensure that the [castValues] method is only - /// called once on this archive. It is set to true after the first call - /// to [castValues], preventing redundant type casting operations. - bool _casted = false; - - /// Sets the value associated with the given [key] in this [KeyedArchive]. - /// - /// This operator allows you to assign values to keys in the archive as if it were a regular map. - /// The [key] must be a [String], and [value] can be of any type. - /// - /// Example: - /// archive['name'] = 'John Doe'; - /// archive['age'] = 30; - /// - /// Note that this method directly modifies the internal [_map] of the archive. - /// It does not perform any type checking or conversion on the [value]. - @override - void operator []=(covariant String key, dynamic value) { - _map[key] = value; - } - - /// Retrieves the value associated with the given [key] from this [KeyedArchive]. - /// - /// This operator allows you to access values in the archive as if it were a regular map. - /// The [key] must be a [String]. - /// - /// If the key is found in the current archive's map, its value is returned. - /// If not found and this archive has an [_objectReference], it attempts to retrieve - /// the value from the referenced object. - /// - /// Example: - /// var name = archive['name']; - /// var age = archive['age']; - /// - /// Returns the value associated with [key], or null if the key is not found. - @override - dynamic operator [](covariant Object key) => _getValue(key as String); - - /// Returns an [Iterable] of all the keys in the archive. - /// - /// This getter provides access to all the keys stored in the internal [_map] - /// of the [KeyedArchive]. It allows iteration over all keys without exposing - /// the underlying map structure. - /// - /// Returns: An [Iterable] containing all the keys in the archive. - @override - Iterable get keys => _map.keys; - - /// Removes all entries from this [KeyedArchive]. - /// - /// After this call, the archive will be empty. - /// This method directly calls the [clear] method on the internal [_map]. - @override - void clear() => _map.clear(); - - /// Removes the entry for the given [key] from this [KeyedArchive] and returns its value. - /// - /// This method removes the key-value pair associated with [key] from the internal map - /// of this [KeyedArchive]. If [key] was in the archive, its associated value is returned. - /// If [key] was not in the archive, null is returned. - /// - /// The [key] should be a [String], as this is a [KeyedArchive]. However, the method - /// accepts [Object?] to comply with the [MapBase] interface it implements. - /// - /// Returns the value associated with [key] before it was removed, or null if [key] - /// was not in the archive. - @override - dynamic remove(Object? key) => _map.remove(key); - - /// Converts this [KeyedArchive] to a primitive [Map]. - /// - /// This method recursively converts the contents of the archive to primitive types: - /// - [KeyedArchive] instances are converted to [Map] - /// - [ListArchive] instances are converted to [List] - /// - Other values are left as-is - /// - /// This is useful when you need to serialize the archive to a format like JSON - /// that doesn't support custom object types. - /// - /// Returns a new [Map] containing the primitive representation - /// of this archive. - Map toPrimitive() { - final out = {}; - _map.forEach((key, val) { - if (val is KeyedArchive) { - out[key] = val.toPrimitive(); - } else if (val is ListArchive) { - out[key] = val.toPrimitive(); - } else { - out[key] = val; - } - }); - return out; - } - - /// Retrieves the value associated with the given [key] from this [KeyedArchive]. - /// - /// This method first checks if the key exists in the current archive's internal map. - /// If found, it returns the associated value. - /// If the key is not found in the current archive, and this archive has an [_objectReference], - /// it attempts to retrieve the value from the referenced object recursively. - /// - /// Parameters: - /// [key] - The string key to look up in the archive. - /// - /// Returns: - /// The value associated with the [key] if found, or null if the key is not present - /// in either the current archive or any referenced archives. - dynamic _getValue(String key) { - if (_map.containsKey(key)) { - return _map[key]; - } - - return _objectReference?._getValue(key); - } - - /// Recodes the internal map of this [KeyedArchive]. - /// - /// This method performs the following operations: - /// 1. Creates a [cast.Map] caster for string keys and any values. - /// 2. Iterates through all keys in the internal map. - /// 3. For each key-value pair: - /// - If the value is a [Map], it's converted to a [KeyedArchive]. - /// - If the value is a [List], it's converted to a [ListArchive]. - /// - If the key is "$ref", it sets the [referenceURI] by parsing the value. - /// - /// This method is called during initialization to ensure proper structure - /// and typing of the archive's contents. - void _recode() { - const caster = cast.Map(cast.string, cast.any); - final keys = _map.keys.toList(); - for (final key in keys) { - final val = _map[key]; - if (val is Map) { - _map[key] = KeyedArchive(caster.cast(val)); - } else if (val is List) { - _map[key] = ListArchive.from(val); - } else if (key == r"$ref") { - referenceURI = Uri.parse(Uri.parse(val.toString()).fragment); - } - } - } - - /// Validates and resolves references within this [KeyedArchive] and its nested objects. - /// - /// This method is automatically invoked by both [KeyedArchive.unarchive] and [KeyedArchive.archive]. - @override - void resolveOrThrow(ReferenceResolver coder) { - if (referenceURI != null) { - _objectReference = coder.resolve(referenceURI!); - if (_objectReference == null) { - throw ArgumentError( - "Invalid document. Reference '#${referenceURI!.path}' does not exist in document.", - ); - } - } - - _map.forEach((key, val) { - if (val is KeyedArchive) { - val.resolveOrThrow(coder); - } else if (val is ListArchive) { - val.resolveOrThrow(coder); - } - }); - } - - /// Decodes a [KeyedArchive] into an object of type [T] that extends [Coding]. - /// - /// This method is responsible for inflating (decoding) an object from its archived form. - /// If the [raw] archive is null, the method returns null. - /// - /// If the archive has not been inflated before (i.e., [_inflated] is null), - /// it creates a new instance using the [inflate] function, decodes the archive - /// into this new instance, and caches it in [_inflated] for future use. - /// - /// Parameters: - /// [raw]: The [KeyedArchive] containing the encoded object data. - /// [inflate]: A function that returns a new instance of [T]. - /// - /// Returns: - /// The decoded object of type [T], or null if [raw] is null. - T? _decodedObject( - KeyedArchive? raw, - T Function() inflate, - ) { - if (raw == null) { - return null; - } - - if (raw._inflated == null) { - raw._inflated = inflate(); - raw._inflated!.decode(raw); - } - - return raw._inflated as T?; - } - - /// Returns the object associated with [key] in this [KeyedArchive]. - /// - /// If [T] is inferred to be a [Uri] or [DateTime], - /// the associated object is assumed to be a [String] and an appropriate value is parsed - /// from that string. - /// - /// If this object is a reference to another object (via [referenceURI]), this object's key-value - /// pairs will be searched first. If [key] is not found, the referenced object's key-values pairs are searched. - /// If no match is found, null is returned. - T? decode(String key) { - final v = _getValue(key); - if (v == null) { - return null; - } - - if (T == Uri) { - return Uri.parse(v.toString()) as T; - } else if (T == DateTime) { - return DateTime.parse(v.toString()) as T; - } - - return v as T?; - } - - /// Decodes and returns an instance of [T] associated with the given [key] in this [KeyedArchive]. - /// - /// [inflate] must create an empty instance of [T]. The value associated with [key] - /// must be a [KeyedArchive] (a [Map]). The values of the associated object are read into - /// the empty instance of [T]. - T? decodeObject(String key, T Function() inflate) { - final val = _getValue(key); - if (val == null) { - return null; - } - - if (val is! KeyedArchive) { - throw ArgumentError( - "Cannot decode key '$key' into '$T', because the value is not a Map. Actual value: '$val'.", - ); - } - - return _decodedObject(val, inflate); - } - - /// Decodes and returns a list of objects of type [T] associated with the given [key] in this [KeyedArchive]. - /// - /// [inflate] must create an empty instance of [T]. The value associated with [key] - /// must be a [ListArchive] (a [List] of [Map]). For each element of the archived list, - /// [inflate] is invoked and each object in the archived list is decoded into - /// the instance of [T]. - List? decodeObjects(String key, T? Function() inflate) { - final val = _getValue(key); - if (val == null) { - return null; - } - if (val is! List) { - throw ArgumentError( - "Cannot decode key '$key' as 'List<$T>', because value is not a List. Actual value: '$val'.", - ); - } - - return val - .map((v) => _decodedObject(v as KeyedArchive?, inflate)) - .toList() - .cast(); - } - - /// Decodes and returns a map of objects of type [T] associated with the given [key] in this [KeyedArchive]. - /// - /// [inflate] must create an empty instance of [T]. The value associated with [key] - /// must be a [KeyedArchive] (a [Map]), where each value is a [T]. - /// For each key-value pair of the archived map, [inflate] is invoked and - /// each value is decoded into the instance of [T]. - Map? decodeObjectMap( - String key, - T Function() inflate, - ) { - final v = _getValue(key); - if (v == null) { - return null; - } - - if (v is! Map) { - throw ArgumentError( - "Cannot decode key '$key' as 'Map', because value is not a Map. Actual value: '$v'.", - ); - } - - return { - for (var k in v.keys) k: _decodedObject(v[k] as KeyedArchive?, inflate) - }; - } - - /// Encodes a [Coding] object into a [Map] representation. - /// - /// This method creates a [KeyedArchive] from the given [object] and returns its - /// internal map representation. If the [object] has a [referenceURI], it is - /// encoded as a '$ref' key in the resulting map. - /// - /// If [object] is null, this method returns null. - /// - /// Note: There is a known limitation where overridden values from a reference - /// object are not currently being emitted. This is due to the complexity of - /// handling cyclic references between objects. - /// - /// Parameters: - /// [object]: The [Coding] object to be encoded. - /// - /// Returns: - /// A [Map] representation of the [object], or null if [object] is null. - Map? _encodedObject(Coding? object) { - if (object == null) { - return null; - } - - final json = KeyedArchive._empty() - .._map = {} - ..referenceURI = object.referenceURI; - if (json.referenceURI != null) { - json._map[r"$ref"] = Uri(fragment: json.referenceURI!.path).toString(); - } else { - object.encode(json); - } - return json; - } - - /// Encodes [value] into this object for [key]. - /// - /// This method adds a key-value pair to the internal map of the [KeyedArchive]. - /// The [key] is always a [String], while [value] can be of any type. - /// - /// If [value] is null, no value is encoded and the [key] will not be present - /// in the resulting archive. - void encode(String key, dynamic value) { - if (value == null) { - return; - } - - if (value is DateTime) { - _map[key] = value.toIso8601String(); - } else if (value is Uri) { - _map[key] = value.toString(); - } else { - _map[key] = value; - } - } - - /// Encodes a [Coding] object into this object for [key]. - /// - /// This method takes a [Coding] object [value] and encodes it into the archive - /// under the specified [key]. If [value] is null, no action is taken and the method returns early. - /// - /// The encoding process involves: - /// 1. Checking if the [value] is null. - /// 2. If not null, it uses the private [_encodedObject] method to convert the [Coding] object - /// into a format suitable for storage in the archive. - /// 3. The encoded object is then stored in the archive's internal map ([_map]) using the provided [key]. - /// - /// This method is useful for adding complex objects that implement the [Coding] interface - /// to the archive, allowing for structured data storage and later retrieval. - /// - /// Parameters: - /// [key]: A [String] that serves as the identifier for the encoded object in the archive. - /// [value]: A [Coding] object to be encoded and stored. Can be null. - /// - /// Example: - /// ```dart - /// final person = Person(name: "John", age: 30); - /// archive.encodeObject("person", person); - /// ``` - void encodeObject(String key, Coding? value) { - if (value == null) { - return; - } - - _map[key] = _encodedObject(value); - } - - /// Encodes a list of [Coding] objects into this archive for the given [key]. - /// - /// This invokes [Coding.encode] on each object in [value] and adds the list of objects - /// to this archive for the key [key]. - void encodeObjects(String key, List? value) { - if (value == null) { - return; - } - - _map[key] = ListArchive.from(value.map((v) => _encodedObject(v)).toList()); - } - - /// Encodes a map of [Coding] objects into this archive for the given [key]. - /// - /// This invokes [Coding.encode] on each value in [value] and adds the map of objects - /// to this archive for the key [key]. - void encodeObjectMap(String key, Map? value) { - if (value == null) return; - final object = KeyedArchive({}); - value.forEach((k, v) { - object[k] = _encodedObject(v); - }); - - _map[key] = object; - } -} diff --git a/packages/typeforge/lib/src/list_archive.dart b/packages/typeforge/lib/src/list_archive.dart deleted file mode 100644 index 778bd00..0000000 --- a/packages/typeforge/lib/src/list_archive.dart +++ /dev/null @@ -1,233 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:collection'; -import 'package:protevus_typeforge/codable.dart'; - -/// A list of values in a [KeyedArchive]. -/// -/// This object is a [List] that has additional behavior for encoding and decoding [Coding] objects. -/// It provides functionality to store and manipulate a list of dynamic values, with special handling -/// for nested maps and lists. The class implements [Referenceable], allowing it to resolve references -/// within its contents when used in conjunction with a [ReferenceResolver]. -/// -/// The [ListArchive] can be created empty or initialized from an existing list. When initialized -/// from a list, it automatically converts nested maps and lists to [KeyedArchive] and [ListArchive] -/// instances respectively, providing a consistent interface for complex nested structures. -/// -/// This class is particularly useful when working with serializable data structures that may -/// contain nested objects or arrays, as it preserves the structure while allowing for easy -/// manipulation and serialization. -class ListArchive extends Object - with ListBase - implements Referenceable { - /// The internal list that stores the dynamic values of this [ListArchive]. - /// - /// This list can contain various types of elements, including primitive types, - /// [KeyedArchive] instances (for nested maps), and other [ListArchive] instances - /// (for nested lists). It is used to maintain the structure and order of the - /// archived data while providing the necessary functionality for the [ListArchive]. - final List _inner; - - /// Creates an empty [ListArchive]. - /// - /// This constructor initializes a new [ListArchive] instance with an empty internal list. - /// The resulting [ListArchive] is ready to accept new elements through its various - /// list manipulation methods inherited from [ListBase]. - ListArchive() : _inner = []; - - /// Creates a [ListArchive] from an existing [List] of dynamic values. - /// - /// This constructor takes a [List] of dynamic values as input and initializes - /// a new [ListArchive] instance. It processes each element of the input list, - /// converting any nested [Map] to [KeyedArchive] and nested [List] to [ListArchive]. - /// This conversion is done using the [_toAtchiveType] function. - /// - /// The resulting [ListArchive] maintains the structure of the original list - /// but with enhanced functionality for handling nested data structures. - /// - /// Parameters: - /// [raw]: The input [List] of dynamic values to be converted into a [ListArchive]. - /// - /// Returns: - /// A new [ListArchive] instance containing the processed elements from the input list. - ListArchive.from(List raw) - : _inner = raw.map(_toAtchiveType).toList(); - - /// Returns the element at the specified [index] in the list. - /// - /// This operator overrides the default list indexing behavior to access - /// elements in the internal [_inner] list. - /// - /// Parameters: - /// [index]: An integer index of the element to retrieve. - /// - /// Returns: - /// The element at the specified [index] in the list. - /// - /// Throws: - /// [RangeError] if the [index] is out of bounds. - @override - dynamic operator [](int index) => _inner[index]; - - /// Returns the length of the internal list. - /// - /// This getter overrides the [length] property from [ListBase] to provide - /// the correct length of the internal [_inner] list. - /// - /// Returns: - /// An integer representing the number of elements in the [ListArchive]. - @override - int get length => _inner.length; - - /// Sets the length of the internal list. - /// - /// This setter overrides the [length] property from [ListBase] to allow - /// modification of the internal [_inner] list's length. Setting the length - /// can be used to truncate the list or extend it with null values. - /// - /// Parameters: - /// [length]: The new length to set for the list. - /// - /// Throws: - /// [RangeError] if [length] is negative. - /// [UnsupportedError] if the list is fixed-length. - @override - set length(int length) { - _inner.length = length; - } - - /// Sets the value at the specified [index] in the list. - /// - /// This operator overrides the default list indexing assignment behavior to - /// modify elements in the internal [_inner] list. - /// - /// Parameters: - /// [index]: An integer index of the element to set. - /// [val]: The new value to be assigned at the specified [index]. - /// - /// Throws: - /// [RangeError] if the [index] is out of bounds. - /// [UnsupportedError] if the list is fixed-length. - @override - void operator []=(int index, dynamic val) { - _inner[index] = val; - } - - /// Adds a single element to the end of this list. - /// - /// This method overrides the [add] method from [ListBase] to add an element - /// to the internal [_inner] list. - /// - /// Parameters: - /// [element]: The element to be added to the list. Can be of any type. - /// - /// The list grows by one element. - @override - void add(dynamic element) { - _inner.add(element); - } - - /// Adds all elements of the given [iterable] to the end of this list. - /// - /// This method overrides the [addAll] method from [ListBase] to add multiple - /// elements to the internal [_inner] list. - /// - /// Parameters: - /// [iterable]: An [Iterable] of elements to be added to the list. The elements - /// can be of any type. - /// - /// The list grows by the length of the [iterable]. - @override - void addAll(Iterable iterable) { - _inner.addAll(iterable); - } - - /// Converts the [ListArchive] to a list of primitive values. - /// - /// This method traverses the [ListArchive] and converts its contents to a list - /// of primitive values. It recursively processes nested [KeyedArchive] and - /// [ListArchive] instances, ensuring that the entire structure is converted - /// to basic Dart types. - /// - /// Returns: - /// A [List] containing the primitive representation of the [ListArchive]. - /// - [KeyedArchive] instances are converted to [Map]s. - /// - [ListArchive] instances are converted to [List]s. - /// - Other values are left as-is. - /// - /// This method is useful for serialization purposes or when you need to - /// convert the [ListArchive] to a format that can be easily serialized - /// or transmitted. - List toPrimitive() { - final out = []; - for (final val in _inner) { - if (val is KeyedArchive) { - out.add(val.toPrimitive()); - } else if (val is ListArchive) { - out.add(val.toPrimitive()); - } else { - out.add(val); - } - } - return out; - } - - /// Resolves references within this [ListArchive] using the provided [ReferenceResolver]. - /// - /// This method iterates through all elements in the internal list ([_inner]) and - /// resolves references for nested [KeyedArchive] and [ListArchive] instances. - /// It's part of the [Referenceable] interface implementation, allowing for - /// deep resolution of references in complex nested structures. - /// - /// Parameters: - /// [coder]: A [ReferenceResolver] used to resolve references within the archive. - /// - /// Throws: - /// May throw exceptions if reference resolution fails, as implied by the method name. - /// - /// This method is typically called during the decoding process to ensure all - /// references within the archive structure are properly resolved. - @override - void resolveOrThrow(ReferenceResolver coder) { - for (final i in _inner) { - if (i is KeyedArchive) { - i.resolveOrThrow(coder); - } else if (i is ListArchive) { - i.resolveOrThrow(coder); - } - } - } -} - -/// Converts a dynamic value to an archive type if necessary. -/// -/// This function takes a dynamic value and converts it to an appropriate archive type: -/// - If the input is a [Map], it's converted to a [KeyedArchive]. -/// - If the input is a [List], it's converted to a [ListArchive]. -/// - For all other types, the input is returned as-is. -/// -/// This function is used internally by [ListArchive] to ensure that nested structures -/// (maps and lists) are properly converted to their respective archive types when -/// creating a new [ListArchive] instance. -/// -/// Parameters: -/// [e]: The dynamic value to be converted. -/// -/// Returns: -/// The input value converted to an appropriate archive type, or the original value -/// if no conversion is necessary. -dynamic _toAtchiveType(dynamic e) { - if (e is Map) { - return KeyedArchive(e); - } else if (e is List) { - return ListArchive.from(e); - } - return e; -} diff --git a/packages/typeforge/lib/src/primitive_cast.dart b/packages/typeforge/lib/src/primitive_cast.dart deleted file mode 100644 index 62c2df1..0000000 --- a/packages/typeforge/lib/src/primitive_cast.dart +++ /dev/null @@ -1,108 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:core' as core; -import 'dart:core' hide Map, String, int; -import 'package:protevus_typeforge/cast.dart'; - -/// A cast operation for converting dynamic values to [core.int]. -/// -/// This class extends [Cast] and implements the [safeCast] method -/// to perform type checking and conversion to [core.int]. -/// -/// The [safeCast] method checks if the input [from] is already a [core.int]. -/// If it is, it returns the value unchanged. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final intCast = IntCast(); -/// final result = intCast.cast(42); // Returns 42 -/// intCast.cast("not an int"); // Throws FailedCast -/// ``` -class IntCast extends Cast { - const IntCast(); - @override - core.int safeCast(dynamic from, core.String context, dynamic key) => - from is core.int - ? from - : throw FailedCast(context, key, "$from is not an int"); -} - -/// A cast operation for converting dynamic values to [core.double]. -/// -/// This class extends [Cast] and implements the [safeCast] method -/// to perform type checking and conversion to [core.double]. -/// -/// The [safeCast] method checks if the input [from] is already a [core.double]. -/// If it is, it returns the value unchanged. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final doubleCast = DoubleCast(); -/// final result = doubleCast.cast(3.14); // Returns 3.14 -/// doubleCast.cast("not a double"); // Throws FailedCast -/// ``` -class DoubleCast extends Cast { - const DoubleCast(); - @override - core.double safeCast(dynamic from, core.String context, dynamic key) => - from is core.double - ? from - : throw FailedCast(context, key, "$from is not an double"); -} - -/// A cast operation for converting dynamic values to [core.String]. -/// -/// This class extends [Cast] and implements the [safeCast] method -/// to perform type checking and conversion to [core.String]. -/// -/// The [safeCast] method checks if the input [from] is already a [core.String]. -/// If it is, it returns the value unchanged. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final stringCast = StringCast(); -/// final result = stringCast.cast("Hello"); // Returns "Hello" -/// stringCast.cast(42); // Throws FailedCast -/// ``` -class StringCast extends Cast { - const StringCast(); - @override - core.String safeCast(dynamic from, core.String context, dynamic key) => - from is core.String - ? from - : throw FailedCast(context, key, "$from is not a String"); -} - -/// A cast operation for converting dynamic values to [core.bool]. -/// -/// This class extends [Cast] and implements the [safeCast] method -/// to perform type checking and conversion to [core.bool]. -/// -/// The [safeCast] method checks if the input [from] is already a [core.bool]. -/// If it is, it returns the value unchanged. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final boolCast = BoolCast(); -/// final result = boolCast.cast(true); // Returns true -/// boolCast.cast("not a bool"); // Throws FailedCast -/// ``` -class BoolCast extends Cast { - const BoolCast(); - @override - core.bool safeCast(dynamic from, core.String context, dynamic key) => - from is core.bool - ? from - : throw FailedCast(context, key, "$from is not a bool"); -} diff --git a/packages/typeforge/lib/src/reference_resolver.dart b/packages/typeforge/lib/src/reference_resolver.dart deleted file mode 100644 index ba4651b..0000000 --- a/packages/typeforge/lib/src/reference_resolver.dart +++ /dev/null @@ -1,79 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; - -/// A class for resolving references within a document structure. -/// -/// This class provides functionality to resolve references within a document -/// represented by a [KeyedArchive]. It allows for navigation through the -/// document structure using URI-style references. -/// -/// The [ReferenceResolver] is particularly useful in scenarios where you need -/// to traverse complex, nested document structures and resolve references -/// to specific parts of the document. -/// -/// Usage: -/// ```dart -/// final document = KeyedArchive(...); // Your document structure -/// final resolver = ReferenceResolver(document); -/// final resolved = resolver.resolve(Uri.parse('#/definitions/child')); -/// ``` -/// -/// The [resolve] method is the primary way to use this class. It takes a [Uri] -/// reference and returns the corresponding [KeyedArchive] from the document, -/// or null if the reference cannot be resolved. -class ReferenceResolver { - /// Creates a new [ReferenceResolver] instance. - /// - /// The [ReferenceResolver] is used to resolve references within a document - /// structure represented by a [KeyedArchive]. - /// - /// Parameters: - /// [document] - The document to resolve references within. This - /// [KeyedArchive] represents the entire document structure that will be - /// used to resolve references. - ReferenceResolver(this.document); - - /// The document to resolve references within. - /// - /// This [KeyedArchive] represents the entire document structure - /// that will be used to resolve references. - final KeyedArchive document; - - /// Resolves a reference URI to a [KeyedArchive] within the document. - /// - /// This method takes a [Uri] [ref] and traverses the document structure - /// to find the corresponding [KeyedArchive]. It uses the path segments - /// of the URI to navigate through the nested structure of the document. - /// - /// Parameters: - /// [ref] - A [Uri] representing the reference to resolve. - /// - /// Returns: - /// A [KeyedArchive] corresponding to the resolved reference, or null - /// if the reference cannot be resolved within the document structure. - /// - /// Example: - /// If [ref] is '#/definitions/child', this method will attempt to - /// navigate to document['definitions']['child'] and return the - /// corresponding [KeyedArchive]. - KeyedArchive? resolve(Uri ref) { - final folded = ref.pathSegments.fold(document, - (KeyedArchive? objectPtr, pathSegment) { - if (objectPtr != null) { - return objectPtr[pathSegment] as KeyedArchive?; - } else { - return null; - } - }); - - return folded; - } -} diff --git a/packages/typeforge/lib/src/referenceable.dart b/packages/typeforge/lib/src/referenceable.dart deleted file mode 100644 index 57746ff..0000000 --- a/packages/typeforge/lib/src/referenceable.dart +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'package:protevus_typeforge/codable.dart'; - -/// This abstract class serves as a contract for objects that need to be -/// resolved based on references. It defines a common interface for resolution -/// operations, allowing for consistent handling of referenceable objects -/// throughout the system. -/// -/// Implementations of this class should ensure that: -/// - They provide a meaningful implementation of [resolveOrThrow]. -/// - They handle potential errors during resolution and throw appropriate exceptions. -/// - They interact correctly with the provided [ReferenceResolver]. -/// -/// Example usage: -/// ```dart -/// class ConcreteReferenceable implements Referenceable { -/// @override -/// void resolveOrThrow(ReferenceResolver resolver) { -/// // Implementation of reference resolution -/// } -/// } -abstract class Referenceable { - /// Resolves the references within this object using the provided [resolver]. - /// - /// This method is responsible for resolving any references or dependencies - /// that this object might have. It should use the [resolver] to look up and - /// resolve these references. - /// - /// If the resolution process encounters any errors or fails to resolve - /// necessary references, this method should throw an appropriate exception. - /// - /// Parameters: - /// [resolver]: The [ReferenceResolver] instance to use for resolving references. - /// - /// Throws: - /// An exception if the resolution process fails or encounters errors. - void resolveOrThrow(ReferenceResolver resolver); -} diff --git a/packages/typeforge/lib/src/special_cast.dart b/packages/typeforge/lib/src/special_cast.dart deleted file mode 100644 index 2833060..0000000 --- a/packages/typeforge/lib/src/special_cast.dart +++ /dev/null @@ -1,109 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:async' as async; -import 'dart:core' as core; -import 'dart:core' hide Map, String, int; -import 'package:protevus_typeforge/cast.dart'; - -/// A cast operation that attempts to cast a dynamic value to either type S or type T. -/// -/// This class extends [Cast] and provides a mechanism to attempt casting -/// to two different types in sequence. It first tries to cast to type S using the -/// [_left] cast, and if that fails, it attempts to cast to type T using the [_right] cast. -/// -/// The [safeCast] method first attempts to use the [_left] cast. If it succeeds, the result -/// is returned. If it fails (by throwing a [FailedCast] exception), the method then -/// attempts to use the [_right] cast and returns its result. -/// -/// This class is useful when you have a value that could be one of two different types -/// and you want to handle both cases. -/// -/// Usage: -/// ```dart -/// final oneOfCast = OneOf(IntCast(), StringCast()); -/// final resultInt = oneOfCast.cast(42); // Returns 42 as int -/// final resultString = oneOfCast.cast("hello"); // Returns "hello" as String -/// oneOfCast.cast(true); // Throws FailedCast -/// ``` -class OneOf extends Cast { - final Cast _left; - final Cast _right; - const OneOf(Cast left, Cast right) - : _left = left, - _right = right; - @override - dynamic safeCast(dynamic from, core.String context, dynamic key) { - try { - return _left.safeCast(from, context, key); - } on FailedCast { - return _right.safeCast(from, context, key); - } - } -} - -/// A cast operation that applies a transformation function after casting to an intermediate type. -/// -/// This class extends [Cast] and combines two operations: -/// 1. Casting the input to type S using the [_first] cast operation. -/// 2. Applying a transformation function [_transform] to convert the result from S to T. -/// -/// [S] is the intermediate type after the first cast. -/// [T] is the final type after applying the transformation. -/// -/// The [safeCast] method first uses [_first] to cast the input to type S, -/// then applies [_transform] to convert the result to type T. -/// -/// This class is useful when you need to perform a cast followed by a type conversion -/// or when you want to apply some transformation logic after casting. -/// -/// Usage: -/// ```dart -/// final stringLengthCast = Apply((s) => s.length, StringCast()); -/// final result = stringLengthCast.cast("hello"); // Returns 5 -/// ``` -class Apply extends Cast { - final Cast _first; - final T Function(S) _transform; - const Apply(T Function(S) transform, Cast first) - : _transform = transform, - _first = first; - @override - T safeCast(dynamic from, core.String context, dynamic key) => - _transform(_first.safeCast(from, context, key)); -} - -/// A cast operation for converting dynamic values to [async.Future]. -/// -/// This class extends [Cast>] and implements the [safeCast] method -/// to perform type checking and conversion to [async.Future]. -/// -/// The class uses a [Cast] instance [_value] for casting the value inside the Future to type E. -/// -/// The [safeCast] method checks if the input [from] is already an [async.Future]. -/// If it is, it returns a new Future that applies the [_value] cast to the result of the original Future. -/// If not, it throws a [FailedCast] exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final futureCast = Future(IntCast()); -/// final result = futureCast.cast(Future.value(42)); // Returns Future -/// futureCast.cast("not a future"); // Throws FailedCast -/// ``` -class Future extends Cast> { - final Cast _value; - const Future(Cast value) : _value = value; - @override - async.Future safeCast(dynamic from, core.String context, dynamic key) { - if (from is async.Future) { - return from.then(_value.cast); - } - return throw FailedCast(context, key, "not a Future"); - } -} diff --git a/packages/typeforge/lib/src/utility_cast.dart b/packages/typeforge/lib/src/utility_cast.dart deleted file mode 100644 index 4016dde..0000000 --- a/packages/typeforge/lib/src/utility_cast.dart +++ /dev/null @@ -1,77 +0,0 @@ -/* - * This file is part of the Protevus Platform. - * - * (C) Protevus - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -import 'dart:core' as core; -import 'dart:core' hide Map, String, int; -import 'package:protevus_typeforge/cast.dart'; - -/// A cast operation that accepts and returns any dynamic value without modification. -/// -/// This class extends [Cast] and provides a no-op cast operation. -/// It's useful when you want to allow any type to pass through without -/// performing any type checking or transformation. -/// -/// The [safeCast] method simply returns the input value as-is, regardless of its type. -/// -/// Example usage: -/// ```dart -/// final anyCast = AnyCast(); -/// final result = anyCast.cast(someValue); // Returns someValue unchanged -/// ``` -class AnyCast extends Cast { - const AnyCast(); - @override - dynamic safeCast(dynamic from, core.String context, dynamic key) => from; -} - -/// A cast operation for converting dynamic values to [core.Map] with specific key-value casts. -/// -/// This class extends [Cast>] and implements the [safeCast] method -/// to perform type checking and conversion to [core.Map] based on a predefined -/// map of key-specific casts. -/// -/// The class uses a [core.Map>] to define custom casts for specific keys. -/// Keys not present in this map will be cast as-is. -/// -/// The [keys] getter provides access to the keys of the internal cast map. -/// -/// The [safeCast] method checks if the input [from] is a [core.Map]. If it is, -/// it creates a new map, applying the specific casts for keys present in [_map] -/// and preserving other key-value pairs as-is. If not, it throws a [FailedCast] -/// exception with appropriate context information. -/// -/// Usage: -/// ```dart -/// final keyedCast = Keyed({ -/// 'age': IntCast(), -/// 'name': StringCast(), -/// }); -/// final result = keyedCast.cast({'age': 30, 'name': 'John', 'city': 'New York'}); -/// // Returns Map with 'age' as int, 'name' as String, and 'city' preserved as-is -/// ``` -class Keyed extends Cast> { - Iterable get keys => _map.keys; - final core.Map> _map; - const Keyed(core.Map> map) : _map = map; - @override - core.Map safeCast(dynamic from, core.String context, dynamic key) { - final core.Map result = {}; - if (from is core.Map) { - for (final K key in from.keys as core.Iterable) { - if (_map.containsKey(key)) { - result[key] = _map[key]!.safeCast(from[key], "map entry", key); - } else { - result[key] = from[key] as V; - } - } - return result; - } - throw FailedCast(context, key, "not a map"); - } -} diff --git a/packages/typeforge/pubspec.yaml b/packages/typeforge/pubspec.yaml deleted file mode 100644 index c21dd3c..0000000 --- a/packages/typeforge/pubspec.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: protevus_typeforge -description: The Typeforge (casting) package for the Protevus Platform -version: 0.0.1 -homepage: https://protevus.com -documentation: https://docs.protevus.com -repository: https://git.protevus.com/protevus/platform - -environment: - sdk: '>=3.4.0 <4.0.0' - -# Add regular dependencies here. -dependencies: - meta: ^1.3.0 - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/packages/typeforge/test/decode_test.dart b/packages/typeforge/test/decode_test.dart deleted file mode 100644 index 93ca841..0000000 --- a/packages/typeforge/test/decode_test.dart +++ /dev/null @@ -1,464 +0,0 @@ -import 'dart:convert'; -import 'package:protevus_typeforge/cast.dart' as cast; -import 'package:protevus_typeforge/codable.dart'; -import 'package:test/test.dart'; - -void main() { - group("Primitive decode", () { - test("Can decode primitive type", () { - final archive = getJSONArchive({"key": 2}); - final int? val = archive.decode("key"); - expect(val, 2); - }); - - test("Can decode List type", () { - final archive = getJSONArchive({ - "key": [1, "2"] - }); - final List? l = archive.decode("key"); - expect(l, [1, "2"]); - }); - - test("Can decode Map", () { - final archive = getJSONArchive({ - "key": {"key": "val"} - }); - final KeyedArchive? d = archive.decode("key"); - expect(d, {"key": "val"}); - }); - - test("Can decode URI", () { - final archive = getJSONArchive({"key": "https://host.com"}); - final Uri? d = archive.decode("key"); - expect(d!.host, "host.com"); - }); - - test("Can decode DateTime", () { - final date = DateTime.now(); - final archive = getJSONArchive({"key": date.toIso8601String()}); - final DateTime? d = archive.decode("key"); - expect(d!.isAtSameMomentAs(date), true); - }); - - test("If value is null, return null from decode", () { - final archive = getJSONArchive({"key": null}); - final int? val = archive.decode("key"); - expect(val, isNull); - }); - - test("If archive does not contain key, return null from decode", () { - final archive = getJSONArchive({}); - final int? val = archive.decode("key"); - expect(val, isNull); - }); - }); - - group("Primitive map decode", () { - test("Can decode Map from Map", () { - final archive = getJSONArchive({ - "key": {"key": "val"} - }); - archive.castValues({"key": const cast.Map(cast.string, cast.string)}); - final Map? d = archive.decode("key"); - expect(d, {"key": "val"}); - }); - - test("Can decode Map>", () { - final archive = getJSONArchive({ - "key": { - "key": ["val"] - } - }); - archive.castValues( - {"key": const cast.Map(cast.string, cast.List(cast.string))}, - ); - final Map>? d = archive.decode("key"); - expect(d, { - "key": ["val"] - }); - }); - - test("Can decode Map> where elements are null", () { - final archive = getJSONArchive({ - "key": { - "key": [null, null] - } - }); - archive.castValues( - {"key": const cast.Map(cast.string, cast.List(cast.string))}, - ); - final Map>? d = archive.decode("key"); - expect(d, { - "key": [null, null] - }); - }); - - test("Can decode Map>>", () { - final archive = getJSONArchive({ - "key": { - "key": { - "key": ["val", null] - } - } - }); - archive.castValues({ - "key": const cast.Map( - cast.string, - cast.Map(cast.string, cast.List(cast.string)), - ) - }); - final Map>>? d = archive.decode("key"); - expect(d, { - "key": { - "key": ["val", null] - } - }); - }); - }); - - group("Primitive list decode", () { - test("Can decode List from List", () { - final archive = getJSONArchive({ - "key": ["val", null] - }); - archive.castValues({"key": const cast.List(cast.string)}); - final List? d = archive.decode("key"); - expect(d, ["val", null]); - }); - - test("Can decode List>>", () { - final archive = getJSONArchive({ - "key": [ - { - "key": ["val", null] - }, - null - ] - }); - archive.castValues({ - "key": const cast.List(cast.Map(cast.string, cast.List(cast.string))) - }); - final List>?>? d = archive.decode("key"); - expect(d, [ - { - "key": ["val", null] - }, - null - ]); - }); - }); - - group("Coding objects", () { - test("Can decode Coding object", () { - final archive = getJSONArchive({ - "key": {"name": "Bob"} - }); - final Parent p = archive.decodeObject("key", () => Parent())!; - expect(p.name, "Bob"); - expect(p.child, isNull); - expect(p.children, isNull); - expect(p.childMap, isNull); - }); - - test("If coding object is paired with non-Map, an exception is thrown", () { - final archive = getJSONArchive({ - "key": [ - {"name": "Bob"} - ] - }); - try { - archive.decodeObject("key", () => Parent()); - fail('unreachable'); - } on ArgumentError { - // no action required - } - }); - - test("Can decode list of Coding objects", () { - final archive = getJSONArchive({ - "key": [ - {"name": "Bob"}, - null, - {"name": "Sally"} - ] - }); - final List? p = archive.decodeObjects("key", () => Parent()); - expect(p![0]!.name, "Bob"); - expect(p[1], isNull); - expect(p[2]!.name, "Sally"); - }); - - test( - "If coding object list is paired with non-List, an exception is thrown", - () { - final archive = getJSONArchive({ - "key": {"name": "Bob"} - }); - try { - archive.decodeObjects("key", () => Parent()); - fail('unreachable'); - } on ArgumentError { - // no op - } - }); - - test( - "If any element of coding list is not a coding object, an exception is thrown", - () { - final archive = getJSONArchive({ - "key": [ - {"name": "Bob"}, - 'foo' - ] - }); - try { - archive.decodeObjects("key", () => Parent()); - fail('unreachable'); - } on TypeError { - // no op - } - }); - - test("Can decode map of Coding objects", () { - final archive = getJSONArchive({ - "key": { - "1": {"name": "Bob"}, - "2": null - } - }); - - final map = archive.decodeObjectMap("key", () => Parent())!; - expect(map.length, 2); - expect(map["1"]!.name, "Bob"); - expect(map["2"], isNull); - }); - - test("If coding object map is paired with non-Map, an exception is thrown", - () { - final archive = getJSONArchive({"key": []}); - try { - archive.decodeObjectMap("key", () => Parent()); - fail('unreachable'); - } on ArgumentError { - // no op - } - }); - - test( - "If any element of coding map is not a coding object, an exception is thrown", - () { - final archive = getJSONArchive({ - "key": {"1": "2"} - }); - try { - archive.decodeObjectMap("key", () => Parent()); - fail('unreachable'); - } on TypeError { - // no op - } - }); - }); - - group("Deep Coding objects", () { - test("Can decode single nested object", () { - final archive = getJSONArchive({ - "key": { - "name": "Bob", - "child": {"name": "Sally"} - } - }); - - final o = archive.decodeObject("key", () => Parent())!; - expect(o.name, "Bob"); - expect(o.child!.name, "Sally"); - expect(o.childMap, isNull); - expect(o.children, isNull); - }); - - test("Can decode list of nested objects", () { - final archive = getJSONArchive({ - "key": { - "name": "Bob", - "children": [ - {"name": "Sally"} - ] - } - }); - - final o = archive.decodeObject("key", () => Parent())!; - expect(o.name, "Bob"); - expect(o.child, isNull); - expect(o.childMap, isNull); - expect(o.children!.length, 1); - expect(o.children?.first?.name, "Sally"); - }); - - test("Can decode map of nested objects", () { - final archive = getJSONArchive({ - "key": { - "name": "Bob", - "childMap": { - "sally": {"name": "Sally"} - } - } - }); - - final o = archive.decodeObject("key", () => Parent())!; - expect(o.name, "Bob"); - expect(o.children, isNull); - expect(o.child, isNull); - expect(o.childMap!.length, 1); - expect(o.childMap!["sally"]!.name, "Sally"); - }); - }); - - group("Coding object references", () { - test("Parent can contain reference to child in single object decode", () { - final archive = getJSONArchive( - { - "child": {"name": "Sally"}, - "parent": { - "name": "Bob", - "child": {"\$ref": "#/child"} - } - }, - allowReferences: true, - ); - - final p = archive.decodeObject("parent", () => Parent())!; - expect(p.name, "Bob"); - expect(p.child!.name, "Sally"); - expect(p.child!.parent, isNull); - }); - - test( - "If reference doesn't exist, an error is thrown when creating document", - () { - try { - getJSONArchive( - { - "parent": { - "name": "Bob", - "child": {"\$ref": "#/child"} - } - }, - allowReferences: true, - ); - fail("unreachable"); - } on ArgumentError catch (e) { - expect(e.toString(), contains("/child")); - } - }); - - test("Parent can contain reference to child in a list of objects", () { - final archive = getJSONArchive( - { - "child": {"name": "Sally"}, - "parent": { - "name": "Bob", - "children": [ - {"\$ref": "#/child"}, - {"name": "fred"} - ] - } - }, - allowReferences: true, - ); - - final p = archive.decodeObject("parent", () => Parent())!; - expect(p.name, "Bob"); - expect(p.children?.first?.name, "Sally"); - expect(p.children?.last?.name, "fred"); - }); - - test("Cyclical references are resolved", () { - final archive = getJSONArchive( - { - "child": { - "name": "Sally", - "parent": {"\$ref": "#/parent"} - }, - "parent": { - "name": "Bob", - "children": [ - {"\$ref": "#/child"}, - {"name": "fred"} - ] - } - }, - allowReferences: true, - ); - - final p = archive.decodeObject("parent", () => Parent())!; - expect(p.name, "Bob"); - expect(p.children?.first?.name, "Sally"); - expect(p.children?.first?.parent!.name, "Bob"); - expect(p.children?.last?.name, "fred"); - - expect(p.hashCode, isNot(p.children?.first?.parent.hashCode)); - }); - - test("Can override castMap to coerce values", () { - final archive = getJSONArchive({ - "key": { - "name": "Bob", - "things": ["value"] - } - }); - final p = archive.decodeObject("key", () => Parent())!; - expect(p.things, ["value"]); - }); - }); -} - -/// Strips type info from data -KeyedArchive getJSONArchive(dynamic data, {bool allowReferences = false}) { - return KeyedArchive.unarchive( - json.decode(json.encode(data)) as Map, - allowReferences: allowReferences, - ); -} - -class Parent extends Coding { - String? name; - Child? child; - List? children; - Map? childMap; - List? things; - - @override - Map> get castMap { - return {"things": const cast.List(cast.string)}; - } - - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - child = object.decodeObject("child", () => Child()); - children = object.decodeObjects("children", () => Child()); - childMap = object.decodeObjectMap("childMap", () => Child()); - things = object.decode("things"); - } - - @override - void encode(KeyedArchive object) {} -} - -class Child extends Coding { - String? name; - - Parent? parent; - - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - parent = object.decodeObject("parent", () => Parent()); - } - - @override - void encode(KeyedArchive object) {} -} diff --git a/packages/typeforge/test/encode_test.dart b/packages/typeforge/test/encode_test.dart deleted file mode 100644 index f407476..0000000 --- a/packages/typeforge/test/encode_test.dart +++ /dev/null @@ -1,412 +0,0 @@ -import 'dart:convert'; -import 'package:protevus_typeforge/codable.dart'; -import 'package:test/test.dart'; - -void main() { - group("Primitive encode", () { - test("Can encode primitive type", () { - final out = encode((obj) { - obj.encode("int", 1); - obj.encode("string", "1"); - }); - - expect(out, {"int": 1, "string": "1"}); - }); - - test("Can encode List type", () { - final out = encode((obj) { - obj.encode("key", [1, "2"]); - }); - - expect(out, { - "key": [1, "2"] - }); - }); - - test("Can encode Map", () { - final out = encode((obj) { - obj.encode("key", {"1": 1, "2": "2"}); - }); - - expect(out, { - "key": {"1": 1, "2": "2"} - }); - }); - - test("Can encode URI", () { - final out = encode((obj) { - obj.encode("key", Uri.parse("https://host.com")); - }); - - expect(out, {"key": "https://host.com"}); - }); - - test("Can encode DateTime", () { - final out = encode((obj) { - obj.encode("key", DateTime(2000)); - }); - - expect(out, {"key": DateTime(2000).toIso8601String()}); - }); - - test("If value is null, do not include key", () { - final out = encode((obj) { - obj.encode("key", null); - }); - - expect(out, {}); - }); - }); - - group("Coding objects", () { - test("Can encode Coding object", () { - final out = encode((object) { - object.encodeObject("key", Parent("Bob")); - }); - - expect(out, { - "key": {"name": "Bob"} - }); - }); - - test("Can encode list of Coding objects", () { - final out = encode((object) { - object.encodeObject( - "key", - Parent("Bob", children: [Child("Fred"), null, Child("Sally")]), - ); - }); - - expect(out, { - "key": { - "name": "Bob", - "children": [ - {"name": "Fred"}, - null, - {"name": "Sally"} - ] - } - }); - }); - - test("Can encode map of Coding objects", () { - final out = encode((object) { - object.encodeObject( - "key", - Parent( - "Bob", - childMap: { - "fred": Child("Fred"), - "null": null, - "sally": Child("Sally") - }, - ), - ); - }); - - expect(out, { - "key": { - "name": "Bob", - "childMap": { - "fred": {"name": "Fred"}, - "null": null, - "sally": {"name": "Sally"} - } - } - }); - }); - }); - - group("Coding object references", () { - test("Parent can contain reference to child in single object encode", () { - final container = Container( - Parent( - "Bob", - child: Child._()..referenceURI = Uri(path: "/definitions/child"), - ), - {"child": Child("Sally")}, - ); - - final out = KeyedArchive.archive(container, allowReferences: true); - expect(out, { - "definitions": { - "child": {"name": "Sally"} - }, - "root": { - "name": "Bob", - "child": {"\$ref": "#/definitions/child"} - } - }); - }); - - test( - "If reference doesn't exist, an error is thrown when creating document", - () { - final container = Container( - Parent( - "Bob", - child: Child._()..referenceURI = Uri(path: "/definitions/child"), - ), - {}, - ); - - try { - KeyedArchive.archive(container, allowReferences: true); - fail('unreachable'); - } on ArgumentError catch (e) { - expect(e.toString(), contains("#/definitions/child")); - } - }); - - test( - "If reference doesn't exist in objectMap, an error is thrown when creating document", - () { - final container = Container( - Parent( - "Bob", - childMap: { - "c": Child._()..referenceURI = Uri(path: "/definitions/child") - }, - ), - {}, - ); - - try { - KeyedArchive.archive(container, allowReferences: true); - fail('unreachable'); - } on ArgumentError catch (e) { - expect(e.toString(), contains("#/definitions/child")); - } - }); - - test( - "If reference doesn't exist in objectList, an error is thrown when creating document", - () { - final container = Container( - Parent( - "Bob", - children: [Child._()..referenceURI = Uri(path: "/definitions/child")], - ), - {}, - ); - - try { - KeyedArchive.archive(container, allowReferences: true); - fail('unreachable'); - } on ArgumentError catch (e) { - expect(e.toString(), contains("#/definitions/child")); - } - }); - - test("Parent can contain reference to child in a list of objects", () { - final container = Container( - Parent( - "Bob", - children: [ - Child("Sally"), - Child._()..referenceURI = Uri(path: "/definitions/child") - ], - ), - {"child": Child("Fred")}, - ); - - final out = KeyedArchive.archive(container, allowReferences: true); - expect(out, { - "definitions": { - "child": {"name": "Fred"} - }, - "root": { - "name": "Bob", - "children": [ - {"name": "Sally"}, - {"\$ref": "#/definitions/child"} - ] - } - }); - }); - - test("Parent can contain reference to child in a map of objects", () { - final container = Container( - Parent( - "Bob", - childMap: { - "sally": Child("Sally"), - "ref": Child._()..referenceURI = Uri(path: "/definitions/child") - }, - ), - {"child": Child("Fred")}, - ); - - final out = KeyedArchive.archive(container, allowReferences: true); - expect(out, { - "definitions": { - "child": {"name": "Fred"} - }, - "root": { - "name": "Bob", - "childMap": { - "sally": {"name": "Sally"}, - "ref": {"\$ref": "#/definitions/child"} - } - } - }); - }); - - test("Cyclical references are resolved", () { - final container = Container( - Parent( - "Bob", - children: [ - Child("Sally"), - Child._()..referenceURI = Uri(path: "/definitions/child") - ], - ), - { - "child": Child( - "Fred", - parent: Parent._()..referenceURI = Uri(path: "/root"), - ) - }); - - final out = KeyedArchive.archive(container, allowReferences: true); - final expected = { - "definitions": { - "child": { - "name": "Fred", - "parent": {"\$ref": "#/root"} - } - }, - "root": { - "name": "Bob", - "children": [ - {"name": "Sally"}, - {"\$ref": "#/definitions/child"}, - ] - } - }; - expect(out, expected); - - // we'll also ensure that writing it out and reading it back in - // works, to complete the lifecycle of a document. we are ensuring - // that no state is accumulated in decoding that impacts encoding - // and ensure that our data is valid json - final washedData = json.decode(json.encode(out)) as Map; - final doc = KeyedArchive.unarchive(washedData); - final decodedContainer = Container._()..decode(doc); - final reencodedArchive = KeyedArchive.archive(decodedContainer); - expect(reencodedArchive, expected); - }); - }); - - test("toPrimitive does not include keyed archives or lists", () { - final archive = KeyedArchive.unarchive({ - "value": "v", - "archive": {"key": "value"}, - "list": [ - "value", - {"key": "value"}, - ["value"] - ] - }); - - final encoded = archive.toPrimitive(); - expect(encoded["value"], "v"); - expect(encoded["archive"] is Map, true); - expect(encoded["archive"] is KeyedArchive, false); - expect(encoded["list"] is List, true); - expect(encoded["list"] is ListArchive, false); - - expect(encoded["list"][0], "value"); - - expect(encoded["list"][1] is Map, true); - - expect(encoded["list"][1] is KeyedArchive, false); - - expect(encoded["list"][2] is List, true); - - expect(encoded["list"][2] is ListArchive, false); - }); -} - -Map? encode(void Function(KeyedArchive object) encoder) { - final archive = KeyedArchive({}); - encoder(archive); - return json.decode(json.encode(archive)) as Map?; -} - -class Container extends Coding { - Container(this.root, this.definitions); - - Container._(); - - Parent? root; - Map? definitions; - - @override - void decode(KeyedArchive object) { - super.decode(object); - - root = object.decodeObject("root", () => Parent._()); - definitions = object.decodeObjectMap("definitions", () => Child._()); - } - - @override - void encode(KeyedArchive object) { - object.encodeObject("root", root); - object.encodeObjectMap("definitions", definitions); - } -} - -class Parent extends Coding { - Parent(this.name, {this.child, this.children, this.childMap, this.things}); - - Parent._(); - - String? name; - Child? child; - List? children; - Map? childMap; - List? things; - - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - child = object.decodeObject("child", () => Child._()); - children = object.decodeObjects("children", () => Child._()); - childMap = object.decodeObjectMap("childMap", () => Child._()); - } - - @override - void encode(KeyedArchive object) { - object.encode("name", name); - object.encodeObject("child", child); - object.encodeObjects("children", children); - object.encodeObjectMap("childMap", childMap); - object.encode("things", things); - } -} - -class Child extends Coding { - Child(this.name, {this.parent}); - - Child._(); - - String? name; - Parent? parent; - - @override - void decode(KeyedArchive object) { - super.decode(object); - - name = object.decode("name"); - parent = object.decodeObject("parent", () => Parent._()); - } - - @override - void encode(KeyedArchive object) { - object.encode("name", name); - object.encodeObject("parent", parent); - } -}