diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..219e0cb
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,267 @@
+# Remove the line below if you want to inherit .editorconfig settings from higher directories
+root = true
+
+# All files
+[*]
+insert_final_newline = true
+
+# C# files
+[*.cs]
+
+#### Core EditorConfig Options ####
+
+# Indentation and spacing
+indent_size = 4
+indent_style = space
+tab_width = 4
+
+# New line preferences
+end_of_line = crlf
+
+#### .NET Coding Conventions ####
+
+# Organize usings
+dotnet_separate_import_directive_groups = false
+dotnet_sort_system_directives_first = false
+file_header_template = unset
+
+# this. and Me. preferences
+dotnet_style_qualification_for_event = false
+dotnet_style_qualification_for_field = false
+dotnet_style_qualification_for_method = false
+dotnet_style_qualification_for_property = false
+
+# Language keywords vs BCL types preferences
+dotnet_style_predefined_type_for_locals_parameters_members = true:error
+dotnet_style_predefined_type_for_member_access = true:error
+
+# Parentheses preferences
+dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
+dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
+dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion
+dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion
+
+# Modifier preferences
+dotnet_style_require_accessibility_modifiers = for_non_interface_members
+
+# Expression-level preferences
+dotnet_style_coalesce_expression = true:error
+dotnet_style_collection_initializer = true
+dotnet_style_explicit_tuple_names = true:error
+dotnet_style_namespace_match_folder = true
+dotnet_style_null_propagation = true:error
+dotnet_style_object_initializer = true
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+dotnet_style_prefer_auto_properties = true:error
+dotnet_style_prefer_compound_assignment = true:error
+dotnet_style_prefer_conditional_expression_over_assignment = true:error
+dotnet_style_prefer_conditional_expression_over_return = true:error
+dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:error
+dotnet_style_prefer_inferred_tuple_names = true:error
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:error
+dotnet_style_prefer_simplified_boolean_expressions = true
+dotnet_style_prefer_simplified_interpolation = true
+
+# Field preferences
+dotnet_style_readonly_field = true:error
+
+# Parameter preferences
+dotnet_code_quality_unused_parameters = all:error
+
+# Suppression preferences
+dotnet_remove_unnecessary_suppression_exclusions = none
+
+# New line preferences
+dotnet_style_allow_multiple_blank_lines_experimental = false:warning
+dotnet_style_allow_statement_immediately_after_block_experimental = false:error
+
+#### C# Coding Conventions ####
+
+# var preferences
+csharp_style_var_elsewhere = true:suggestion
+csharp_style_var_for_built_in_types = true:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+
+# Expression-bodied members
+csharp_style_expression_bodied_accessors = when_on_single_line:error
+csharp_style_expression_bodied_constructors = when_on_single_line:error
+csharp_style_expression_bodied_indexers = when_on_single_line:error
+csharp_style_expression_bodied_lambdas = true:error
+csharp_style_expression_bodied_local_functions = false:silent
+csharp_style_expression_bodied_methods = when_on_single_line:error
+csharp_style_expression_bodied_operators = when_on_single_line:error
+csharp_style_expression_bodied_properties = when_on_single_line:error
+
+# Pattern matching preferences
+csharp_style_pattern_matching_over_as_with_null_check = true:error
+csharp_style_pattern_matching_over_is_with_cast_check = true:error
+csharp_style_prefer_extended_property_pattern = true
+csharp_style_prefer_not_pattern = true:error
+csharp_style_prefer_pattern_matching = true:error
+csharp_style_prefer_switch_expression = true:error
+
+# Null-checking preferences
+csharp_style_conditional_delegate_call = true:error
+
+# Modifier preferences
+csharp_prefer_static_local_function = true:error
+csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
+csharp_style_prefer_readonly_struct = true:error
+csharp_style_prefer_readonly_struct_member = true:suggestion
+
+# Code-block preferences
+csharp_prefer_braces = true:error
+csharp_prefer_simple_using_statement = true:error
+csharp_style_namespace_declarations = file_scoped:error
+csharp_style_prefer_method_group_conversion = true:error
+csharp_style_prefer_primary_constructors = true:suggestion
+csharp_style_prefer_top_level_statements = true:silent
+
+# Expression-level preferences
+csharp_prefer_simple_default_expression = true:error
+csharp_style_deconstructed_variable_declaration = true:error
+csharp_style_implicit_object_creation_when_type_is_apparent = true:error
+csharp_style_inlined_variable_declaration = true:error
+csharp_style_prefer_index_operator = true:warning
+csharp_style_prefer_local_over_anonymous_function = true:warning
+csharp_style_prefer_null_check_over_type_check = true:error
+csharp_style_prefer_range_operator = true:warning
+csharp_style_prefer_tuple_swap = true:suggestion
+csharp_style_prefer_utf8_string_literals = true:suggestion
+csharp_style_throw_expression = true:error
+csharp_style_unused_value_assignment_preference = discard_variable:suggestion
+csharp_style_unused_value_expression_statement_preference = discard_variable:silent
+
+# 'using' directive preferences
+csharp_using_directive_placement = outside_namespace:silent
+
+# New line preferences
+csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = false:error
+csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:error
+csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true:error
+csharp_style_allow_blank_lines_between_consecutive_braces_experimental = false:error
+csharp_style_allow_embedded_statements_on_same_line_experimental = false:error
+
+#### C# Formatting Rules ####
+
+# New line preferences
+csharp_new_line_before_catch = true
+csharp_new_line_before_else = true
+csharp_new_line_before_finally = true
+csharp_new_line_before_members_in_anonymous_types = true
+csharp_new_line_before_members_in_object_initializers = true
+csharp_new_line_before_open_brace = all
+csharp_new_line_between_query_expression_clauses = true
+
+# Indentation preferences
+csharp_indent_block_contents = true
+csharp_indent_braces = false
+csharp_indent_case_contents = true
+csharp_indent_case_contents_when_block = true
+csharp_indent_labels = one_less_than_current
+csharp_indent_switch_labels = true
+
+# Space preferences
+csharp_space_after_cast = false
+csharp_space_after_colon_in_inheritance_clause = true
+csharp_space_after_comma = true
+csharp_space_after_dot = false
+csharp_space_after_keywords_in_control_flow_statements = true
+csharp_space_after_semicolon_in_for_statement = true
+csharp_space_around_binary_operators = before_and_after
+csharp_space_around_declaration_statements = false
+csharp_space_before_colon_in_inheritance_clause = true
+csharp_space_before_comma = false
+csharp_space_before_dot = false
+csharp_space_before_open_square_brackets = false
+csharp_space_before_semicolon_in_for_statement = false
+csharp_space_between_empty_square_brackets = false
+csharp_space_between_method_call_empty_parameter_list_parentheses = false
+csharp_space_between_method_call_name_and_opening_parenthesis = false
+csharp_space_between_method_call_parameter_list_parentheses = false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
+csharp_space_between_method_declaration_name_and_open_parenthesis = false
+csharp_space_between_method_declaration_parameter_list_parentheses = false
+csharp_space_between_parentheses = false
+csharp_space_between_square_brackets = false
+
+# Wrapping preferences
+csharp_preserve_single_line_blocks = true
+csharp_preserve_single_line_statements = true
+
+#### Naming styles ####
+
+# Naming rules
+
+dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
+dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
+dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
+
+dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.types_should_be_pascal_case.symbols = types
+dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
+
+dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
+dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
+dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
+
+# Symbol specifications
+
+dotnet_naming_symbols.interface.applicable_kinds = interface
+dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.interface.required_modifiers =
+
+dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
+dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.types.required_modifiers =
+
+dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
+dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
+dotnet_naming_symbols.non_field_members.required_modifiers =
+
+# Naming styles
+
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
+dotnet_naming_style.pascal_case.capitalization = pascal_case
+
+dotnet_naming_style.begins_with_i.required_prefix = I
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
+dotnet_naming_style.begins_with_i.capitalization = pascal_case
+
+# Analyzer Errors
+
+dotnet_diagnostic.AD0001.severity = none
+
+[*.{cs,vb}]
+dotnet_style_coalesce_expression = true:error
+dotnet_style_null_propagation = true:error
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:error
+dotnet_style_prefer_auto_properties = true:error
+dotnet_style_object_initializer = true:suggestion
+dotnet_style_collection_initializer = true:suggestion
+dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
+dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion
+dotnet_style_prefer_conditional_expression_over_return = true:suggestion
+dotnet_style_explicit_tuple_names = true:error
+dotnet_style_prefer_inferred_tuple_names = true:error
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:error
+dotnet_style_prefer_compound_assignment = true:error
+dotnet_style_prefer_simplified_interpolation = true:suggestion
+dotnet_style_namespace_match_folder = true:suggestion
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+tab_width = 4
+indent_size = 4
+end_of_line = crlf
+dotnet_style_prefer_collection_expression = when_types_loosely_match:suggestion
+dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
+dotnet_style_qualification_for_field = false:silent
+dotnet_style_qualification_for_property = false:silent
+dotnet_style_qualification_for_method = false:silent
+dotnet_style_qualification_for_event = false:silent
+
+[*.{yml,yaml}]
+trim_trailing_whitespace = true
diff --git a/.filenesting.json b/.filenesting.json
new file mode 100644
index 0000000..0b71966
--- /dev/null
+++ b/.filenesting.json
@@ -0,0 +1,3 @@
+{
+ "help":"https://go.microsoft.com/fwlink/?linkid=866610"
+}
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1ff0c42
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..81c7b58
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,38 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: 'bug'
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..36014cd
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: 'enhancement'
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..bf1a861
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,70 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+registries:
+ ghcr-nuget:
+ type: nuget-feed
+ url: https://nuget.pkg.github.com/InfinityFlowApp/index.json
+ username: ${{secrets.GHCR_DEPENDABOT_PACKAGE_SECERET_USERNAME }}
+ password: ${{secrets.GHCR_DEPENDABOT_PACKAGE_SECERET_KEY}}
+updates:
+ - package-ecosystem: "nuget" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ registries:
+ - ghcr-nuget
+ schedule:
+ interval: "daily"
+ labels:
+ - "dependencies"
+ open-pull-requests-limit: 10
+ groups:
+ Temporal:
+ patterns:
+ - "Temporalio.*"
+ - Temporalio
+ Aspire:
+ patterns:
+ - "Aspire"
+ - "Aspire.*"
+ Kiota:
+ patterns:
+ - "Microsoft.Kiota*"
+ dotnet:
+ patterns:
+ - "Microsoft.*"
+ - "System.*"
+ exclude-patterns:
+ - "Microsoft.Orleans*"
+ - "Microsoft.Kiota*"
+ Orleans:
+ patterns:
+ - "Microsoft.Orleans.*"
+ - "OrleansContrib.*"
+ OpenTelemetry:
+ patterns:
+ - "OpenTelemetry.*"
+ MartenAndFriends:
+ patterns:
+ - "Marten"
+ - "WolverineFx"
+ - "Marten.*"
+ - "WolverineFx.*"
+ - "JasperFx.*"
+ - "Oakton.*"
+ - "Lamar.*"
+
+ - package-ecosystem: "devcontainers"
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "daily"
+ labels:
+ - "dev-tooling"
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ labels:
+ - "dev-tooling"
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
new file mode 100644
index 0000000..273de22
--- /dev/null
+++ b/.github/release-drafter.yml
@@ -0,0 +1,73 @@
+name-template: "InfinityFlow System $RESOLVED_VERSION"
+tag-template: "v$RESOLVED_VERSION"
+change-template: "- $TITLE by @$AUTHOR (#$NUMBER)"
+no-changes-template: "- No changes"
+categories:
+ - title: "π Documentation"
+ labels:
+ - "documentation"
+ - title: "π New Features"
+ labels:
+ - "enhancement"
+ - title: "π Bug Fixes"
+ labels:
+ - "bug"
+ - title: "π’ area-resources"
+ labels:
+ - "area-resources"
+ - title: "π€ area-shared"
+ labels:
+ - "area-shared"
+ - title: "π½οΈ area-projects"
+ labels:
+ - "area-projects"
+ - title: "π§° Maintenance & Dependencies"
+ labels:
+ - "maintenance"
+ - "dependencies"
+ - title: "βΈοΈ Deployment Resources"
+ labels:
+ - "deployment-resources"
+ - title: "π§πΌβπ» Development Tooling"
+ labels:
+ - "dev-tooling"
+version-resolver:
+ major:
+ labels:
+ - "major"
+ minor:
+ labels:
+ - "minor"
+ patch:
+ labels:
+ - "patch"
+ default: patch
+template: |
+ $CHANGES
+
+ ## π¨πΌβπ» Contributors
+
+ $CONTRIBUTORS
+autolabeler:
+ - label: "documentation"
+ files:
+ - "docs/**/*"
+ - label: "dev-tooling"
+ files:
+ - ".devcontainer/**/*"
+ - "eng/**/*"
+ - label: "maintenance"
+ files:
+ - ".github/**/*"
+ - "test/**/*"
+ - label: "area-resources"
+ files:
+ - "src/Domain/InfinityFlow.Domain.Resources/**/*"
+ - label: "area-shared"
+ files:
+ - "src/InfinityFlow.Shared/**/*"
+ - "src/InfinityFlow.Shared.Temporal/**/*"
+ - label: "dependencies"
+ files:
+ - "Directory.Packages.props"
+ - "**NuGet.config"
diff --git a/.github/workflows/build-test-package.yml b/.github/workflows/build-test-package.yml
new file mode 100644
index 0000000..efd4db8
--- /dev/null
+++ b/.github/workflows/build-test-package.yml
@@ -0,0 +1,51 @@
+# This workflow will build a .NET project
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
+
+name: Build & Release & Test & Publish
+
+on:
+ pull_request: {}
+ push:
+ branches:
+ - main
+ release:
+ types:
+ - published
+ workflow_dispatch: {}
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 9.0.x
+ source-url: https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json
+ env:
+ NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Restore dependencies
+ run: dotnet restore
+ - name: Build
+ run: dotnet build --configuration Release --no-restore
+ - name: Test
+ run: dotnet test --configuration Release --no-build --verbosity normal
+ - name: Pack
+ run: dotnet pack --configuration Release --no-build --output pack/
+ - name: Store .NET Package
+ uses: actions/upload-artifact@v4
+ with:
+ name: nuget
+ if-no-files-found: error
+ retention-days: 7
+ path: pack/*.nupkg
+ - name: Publish .NET Solution to GitHub Packages
+ continue-on-error: true
+ run: dotnet nuget push pack/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
+ if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }}
diff --git a/.github/workflows/releasedrafter.yml b/.github/workflows/releasedrafter.yml
new file mode 100644
index 0000000..a2971cc
--- /dev/null
+++ b/.github/workflows/releasedrafter.yml
@@ -0,0 +1,25 @@
+name: Release Drafter
+
+on:
+ push:
+ branches:
+ - main
+ pull_request_target:
+ types:
+ - edited
+ - opened
+ - reopened
+ - synchronize
+ workflow_dispatch:
+
+jobs:
+ update_release_draft:
+ permissions:
+ contents: write
+ pull-requests: write
+ runs-on: ubuntu-latest
+ steps:
+ - name: "Draft Release"
+ uses: release-drafter/release-drafter@v6.1.0
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..16bd511
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,379 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# Allow the directory for Release Resource
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Oo]ut/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+appsettings.Development.json
+
+# JetBrains
+.idea/
+
+# C# vscode extension
+.mono/
+src/InfinityFlow.Hosting.WebAPI/appsettings.Development.json
+src/InfinityFlow.AppHost/postgres-data
+
+kustomize/overlays/dev/charts
+kustomize/overlays/staging/charts
+kustomize/overlays/prod/charts
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..6fc0535
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,18 @@
+{
+ "recommendations": [
+ "github.copilot",
+ "github.copilot-chat",
+ "github.copilot-labs",
+ "github.vscode-pull-request-github",
+ "eamodio.gitlens",
+ "github.vscode-github-actions",
+ "ms-azuretools.vscode-docker",
+ "bpruitt-goddard.mermaid-markdown-syntax-highlighting",
+ "bierner.markdown-mermaid",
+ "streetsidesoftware.code-spell-checker",
+ "ms-dotnettools.vscode-dotnet-pack",
+ "editorconfig.editorconfig",
+ "ms-dotnettools.vscodeintellicode-csharp",
+ "kie-group.swf-vscode-extension"
+ ]
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..487c451
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,18 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "C#: Aspire Debug",
+ "type": "dotnet",
+ "request": "launch",
+ "projectPath": "${workspaceFolder}/src/InfinityFlow.AppHost/InfinityFlow.AppHost.csproj",
+ "serverReadyAction": {
+ "action": "openExternally",
+ "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..66f058f
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,41 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/PlatformCore.sln",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary;ForceNoAlign"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/PlatformCore.sln",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary;ForceNoAlign"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "--project",
+ "${workspaceFolder}/PlatformCore.sln"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.yamllint b/.yamllint
new file mode 100644
index 0000000..135e274
--- /dev/null
+++ b/.yamllint
@@ -0,0 +1,10 @@
+extends: default
+
+rules:
+ document-start:
+ present: false
+ line-length: disable
+ comments:
+ min-spaces-from-content: 1 # Adjust the number of spaces here
+ truthy: disable
+
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..786d002
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,33 @@
+
+
+
+ net9.0
+ enable
+ true
+ enable
+
+
+ $([System.IO.Path]::GetDirectoryName($([MSBuild]::GetPathOfFileAbove('.gitignore',
+ '$(MSBuildThisFileDirectory)'))))
+
+
+ $(NoWarn);AD0001
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 0000000..42b6949
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,33 @@
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GitVersion.yaml b/GitVersion.yaml
new file mode 100644
index 0000000..6a98484
--- /dev/null
+++ b/GitVersion.yaml
@@ -0,0 +1,6 @@
+mode: ContinuousDeployment
+branches:
+ main:
+ label: rc
+ pull-request:
+ label: pr
diff --git a/InfinityFlow.DigitalOcean.Client.sln b/InfinityFlow.DigitalOcean.Client.sln
new file mode 100644
index 0000000..9545c9f
--- /dev/null
+++ b/InfinityFlow.DigitalOcean.Client.sln
@@ -0,0 +1,55 @@
+ο»Ώ
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.7.34024.191
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{42FEE79F-2B8D-49C0-9555-58741EE26DAC}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ .filenesting.json = .filenesting.json
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
+ .gitmodules = .gitmodules
+ .yamllint = .yamllint
+ cspell.config.yaml = cspell.config.yaml
+ Directory.Build.props = Directory.Build.props
+ Directory.Packages.props = Directory.Packages.props
+ NuGet.config = NuGet.config
+ README.md = README.md
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CE85C576-291A-449B-B775-5A1AF397AB14}"
+ ProjectSection(SolutionItems) = preProject
+ src\Directory.Build.props = src\Directory.Build.props
+ Vogen.cs = Vogen.cs
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{0A4807C8-12F6-44BA-A611-6EDC89610613}"
+ ProjectSection(SolutionItems) = preProject
+ test\Directory.Build.props = test\Directory.Build.props
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfinityFlow.DigitalOcean.Client", "src\InfinityFlow.DigitalOcean.Client\InfinityFlow.DigitalOcean.Client.csproj", "{21CC94C8-6EDE-566C-AE69-39B698C41A74}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {21CC94C8-6EDE-566C-AE69-39B698C41A74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {21CC94C8-6EDE-566C-AE69-39B698C41A74}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {21CC94C8-6EDE-566C-AE69-39B698C41A74}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {21CC94C8-6EDE-566C-AE69-39B698C41A74}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {CE85C576-291A-449B-B775-5A1AF397AB14} = {42FEE79F-2B8D-49C0-9555-58741EE26DAC}
+ {0A4807C8-12F6-44BA-A611-6EDC89610613} = {42FEE79F-2B8D-49C0-9555-58741EE26DAC}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {62B16938-8F97-4582-81CD-4AB2720FD729}
+ EndGlobalSection
+EndGlobal
diff --git a/NuGet.config b/NuGet.config
new file mode 100644
index 0000000..8af8160
--- /dev/null
+++ b/NuGet.config
@@ -0,0 +1,25 @@
+ο»Ώ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cspell.config.yaml b/cspell.config.yaml
new file mode 100644
index 0000000..f6c5f5c
--- /dev/null
+++ b/cspell.config.yaml
@@ -0,0 +1,17 @@
+version: "0.2"
+ignorePaths: []
+dictionaryDefinitions: []
+dictionaries: []
+words:
+ - ASPNETCORE
+ - Cooldown
+ - infinityflow
+ - Npgsql
+ - Oakton
+ - OTEL
+ - OTLP
+ - Keycloak
+ - Temporal
+ignoreWords:
+ - openid
+import: []
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
new file mode 100644
index 0000000..6c33df0
--- /dev/null
+++ b/src/Directory.Build.props
@@ -0,0 +1,9 @@
+
+
+
+
+
+ <_Parameter1>$(AssemblyName).Tests
+
+
+
diff --git a/src/InfinityFlow.DigitalOcean.Client/DigitalOceanClient.cs b/src/InfinityFlow.DigitalOcean.Client/DigitalOceanClient.cs
new file mode 100644
index 0000000..2b1ac78
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/DigitalOceanClient.cs
@@ -0,0 +1,48 @@
+//
+#pragma warning disable CS0618
+using InfinityFlow.DigitalOcean.Client.V2;
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions;
+using Microsoft.Kiota.Serialization.Form;
+using Microsoft.Kiota.Serialization.Json;
+using Microsoft.Kiota.Serialization.Multipart;
+using Microsoft.Kiota.Serialization.Text;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using System;
+namespace InfinityFlow.DigitalOcean.Client
+{
+ ///
+ /// The main entry point of the SDK, exposes the configuration and the fluent API.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class DigitalOceanClient : BaseRequestBuilder
+ {
+ /// The v2 property
+ public global::InfinityFlow.DigitalOcean.Client.V2.V2RequestBuilder V2
+ {
+ get => new global::InfinityFlow.DigitalOcean.Client.V2.V2RequestBuilder(PathParameters, RequestAdapter);
+ }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ /// The request adapter to use to execute the requests.
+ public DigitalOceanClient(IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}", new Dictionary())
+ {
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultSerializer();
+ ApiClientBuilder.RegisterDefaultDeserializer();
+ ApiClientBuilder.RegisterDefaultDeserializer();
+ ApiClientBuilder.RegisterDefaultDeserializer();
+ if (string.IsNullOrEmpty(RequestAdapter.BaseUrl))
+ {
+ RequestAdapter.BaseUrl = "https://api.digitalocean.com";
+ }
+ PathParameters.TryAdd("baseurl", RequestAdapter.BaseUrl);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/InfinityFlow.DigitalOcean.Client.csproj b/src/InfinityFlow.DigitalOcean.Client/InfinityFlow.DigitalOcean.Client.csproj
new file mode 100644
index 0000000..e33b82e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/InfinityFlow.DigitalOcean.Client.csproj
@@ -0,0 +1,22 @@
+ο»Ώ
+
+
+ net9.0
+ enable
+ enable
+ 618
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Account.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Account.cs
new file mode 100644
index 0000000..54f62e4
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Account.cs
@@ -0,0 +1,122 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class Account : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The total number of Droplets current user or team may have active at one time.
+ public int? DropletLimit { get; set; }
+ /// The email address used by the current user to register for DigitalOcean.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Email { get; set; }
+#nullable restore
+#else
+ public string Email { get; set; }
+#endif
+ /// If true, the user has verified their account via email. False otherwise.
+ public bool? EmailVerified { get; set; }
+ /// The total number of Floating IPs the current user or team may have.
+ public int? FloatingIpLimit { get; set; }
+ /// The display name for the current user.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// This value is one of "active", "warning" or "locked".
+ public global::InfinityFlow.DigitalOcean.Client.Models.Account_status? Status { get; set; }
+ /// A human-readable message giving more details about the status of the account.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? StatusMessage { get; set; }
+#nullable restore
+#else
+ public string StatusMessage { get; set; }
+#endif
+ /// When authorized in a team context, includes information about the current team.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Account_team? Team { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Account_team Team { get; set; }
+#endif
+ /// The unique universal identifier for the current user.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Uuid { get; set; }
+#nullable restore
+#else
+ public string Uuid { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Account()
+ {
+ AdditionalData = new Dictionary();
+ Status = global::InfinityFlow.DigitalOcean.Client.Models.Account_status.Active;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Account CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Account();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "droplet_limit", n => { DropletLimit = n.GetIntValue(); } },
+ { "email", n => { Email = n.GetStringValue(); } },
+ { "email_verified", n => { EmailVerified = n.GetBoolValue(); } },
+ { "floating_ip_limit", n => { FloatingIpLimit = n.GetIntValue(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "status", n => { Status = n.GetEnumValue(); } },
+ { "status_message", n => { StatusMessage = n.GetStringValue(); } },
+ { "team", n => { Team = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Account_team.CreateFromDiscriminatorValue); } },
+ { "uuid", n => { Uuid = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteIntValue("droplet_limit", DropletLimit);
+ writer.WriteStringValue("email", Email);
+ writer.WriteBoolValue("email_verified", EmailVerified);
+ writer.WriteIntValue("floating_ip_limit", FloatingIpLimit);
+ writer.WriteStringValue("name", Name);
+ writer.WriteEnumValue("status", Status);
+ writer.WriteStringValue("status_message", StatusMessage);
+ writer.WriteObjectValue("team", Team);
+ writer.WriteStringValue("uuid", Uuid);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Account_status.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Account_status.cs
new file mode 100644
index 0000000..14b60b0
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Account_status.cs
@@ -0,0 +1,23 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// This value is one of "active", "warning" or "locked".
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Account_status
+ {
+ [EnumMember(Value = "active")]
+ #pragma warning disable CS1591
+ Active,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "warning")]
+ #pragma warning disable CS1591
+ Warning,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "locked")]
+ #pragma warning disable CS1591
+ Locked,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Account_team.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Account_team.cs
new file mode 100644
index 0000000..82ef0ee
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Account_team.cs
@@ -0,0 +1,76 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ ///
+ /// When authorized in a team context, includes information about the current team.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class Account_team : IAdditionalDataHolder, IParsable
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The name for the current team.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// The unique universal identifier for the current team.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Uuid { get; set; }
+#nullable restore
+#else
+ public string Uuid { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Account_team()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Account_team CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Account_team();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "uuid", n => { Uuid = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("name", Name);
+ writer.WriteStringValue("uuid", Uuid);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/ActionObject.cs b/src/InfinityFlow.DigitalOcean.Client/Models/ActionObject.cs
new file mode 100644
index 0000000..cd841df
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/ActionObject.cs
@@ -0,0 +1,116 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class ActionObject : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// A time value given in ISO8601 combined date and time format that represents when the action was completed.
+ public DateTimeOffset? CompletedAt { get; set; }
+ /// A unique numeric ID that can be used to identify and reference an action.
+ public int? Id { get; set; }
+ /// The region property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Region? Region { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Region Region { get; set; }
+#endif
+ /// A human-readable string that is used as a unique identifier for each region.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? RegionSlug { get; set; }
+#nullable restore
+#else
+ public string RegionSlug { get; set; }
+#endif
+ /// A unique identifier for the resource that the action is associated with.
+ public int? ResourceId { get; set; }
+ /// The type of resource that the action is associated with.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? ResourceType { get; set; }
+#nullable restore
+#else
+ public string ResourceType { get; set; }
+#endif
+ /// A time value given in ISO8601 combined date and time format that represents when the action was initiated.
+ public DateTimeOffset? StartedAt { get; set; }
+ /// The current status of the action. This can be "in-progress", "completed", or "errored".
+ public global::InfinityFlow.DigitalOcean.Client.Models.Action_status? Status { get; set; }
+ /// This is the type of action that the object represents. For example, this could be "transfer" to represent the state of an image transfer action.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Type { get; set; }
+#nullable restore
+#else
+ public string Type { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public ActionObject()
+ {
+ AdditionalData = new Dictionary();
+ Status = global::InfinityFlow.DigitalOcean.Client.Models.Action_status.InProgress;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.ActionObject CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.ActionObject();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "completed_at", n => { CompletedAt = n.GetDateTimeOffsetValue(); } },
+ { "id", n => { Id = n.GetIntValue(); } },
+ { "region", n => { Region = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Region.CreateFromDiscriminatorValue); } },
+ { "region_slug", n => { RegionSlug = n.GetStringValue(); } },
+ { "resource_id", n => { ResourceId = n.GetIntValue(); } },
+ { "resource_type", n => { ResourceType = n.GetStringValue(); } },
+ { "started_at", n => { StartedAt = n.GetDateTimeOffsetValue(); } },
+ { "status", n => { Status = n.GetEnumValue(); } },
+ { "type", n => { Type = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteDateTimeOffsetValue("completed_at", CompletedAt);
+ writer.WriteIntValue("id", Id);
+ writer.WriteObjectValue("region", Region);
+ writer.WriteStringValue("region_slug", RegionSlug);
+ writer.WriteIntValue("resource_id", ResourceId);
+ writer.WriteStringValue("resource_type", ResourceType);
+ writer.WriteDateTimeOffsetValue("started_at", StartedAt);
+ writer.WriteEnumValue("status", Status);
+ writer.WriteStringValue("type", Type);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Action_link.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Action_link.cs
new file mode 100644
index 0000000..6906f63
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Action_link.cs
@@ -0,0 +1,80 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ ///
+ /// The linked actions can be used to check the status of a Droplet's create event.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class Action_link : IAdditionalDataHolder, IParsable
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// A URL that can be used to access the action.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Href { get; set; }
+#nullable restore
+#else
+ public string Href { get; set; }
+#endif
+ /// A unique numeric ID that can be used to identify and reference an action.
+ public int? Id { get; set; }
+ /// A string specifying the type of the related action.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Rel { get; set; }
+#nullable restore
+#else
+ public string Rel { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Action_link()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Action_link CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Action_link();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "href", n => { Href = n.GetStringValue(); } },
+ { "id", n => { Id = n.GetIntValue(); } },
+ { "rel", n => { Rel = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("href", Href);
+ writer.WriteIntValue("id", Id);
+ writer.WriteStringValue("rel", Rel);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Action_status.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Action_status.cs
new file mode 100644
index 0000000..35289d5
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Action_status.cs
@@ -0,0 +1,23 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// The current status of the action. This can be "in-progress", "completed", or "errored".
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Action_status
+ {
+ [EnumMember(Value = "in-progress")]
+ #pragma warning disable CS1591
+ InProgress,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "completed")]
+ #pragma warning disable CS1591
+ Completed,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "errored")]
+ #pragma warning disable CS1591
+ Errored,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert.cs
new file mode 100644
index 0000000..857de98
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert.cs
@@ -0,0 +1,94 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class Alert : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The comparison operator used against the alert's threshold.
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_comparison? Comparison { get; set; }
+ /// A unique ID that can be used to identify and reference the alert.
+ public Guid? Id { get; private set; }
+ /// A human-friendly display name.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// The notification settings for a trigger alert.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Notification? Notifications { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Notification Notifications { get; set; }
+#endif
+ /// Period of time the threshold must be exceeded to trigger the alert.
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_period? Period { get; set; }
+ /// The threshold at which the alert will enter a trigger state. The specific threshold is dependent on the alert type.
+ public int? Threshold { get; set; }
+ /// The type of alert.
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_type? Type { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Alert()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Alert CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Alert();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "comparison", n => { Comparison = n.GetEnumValue(); } },
+ { "id", n => { Id = n.GetGuidValue(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "notifications", n => { Notifications = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Notification.CreateFromDiscriminatorValue); } },
+ { "period", n => { Period = n.GetEnumValue(); } },
+ { "threshold", n => { Threshold = n.GetIntValue(); } },
+ { "type", n => { Type = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteEnumValue("comparison", Comparison);
+ writer.WriteStringValue("name", Name);
+ writer.WriteObjectValue("notifications", Notifications);
+ writer.WriteEnumValue("period", Period);
+ writer.WriteIntValue("threshold", Threshold);
+ writer.WriteEnumValue("type", Type);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_comparison.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_comparison.cs
new file mode 100644
index 0000000..e6c9fd4
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_comparison.cs
@@ -0,0 +1,19 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// The comparison operator used against the alert's threshold.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Alert_comparison
+ {
+ [EnumMember(Value = "greater_than")]
+ #pragma warning disable CS1591
+ Greater_than,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "less_than")]
+ #pragma warning disable CS1591
+ Less_than,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_period.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_period.cs
new file mode 100644
index 0000000..b98c52e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_period.cs
@@ -0,0 +1,39 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// Period of time the threshold must be exceeded to trigger the alert.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Alert_period
+ {
+ [EnumMember(Value = "2m")]
+ #pragma warning disable CS1591
+ Twom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "3m")]
+ #pragma warning disable CS1591
+ Threem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "5m")]
+ #pragma warning disable CS1591
+ Fivem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "10m")]
+ #pragma warning disable CS1591
+ OneZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "15m")]
+ #pragma warning disable CS1591
+ OneFivem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "30m")]
+ #pragma warning disable CS1591
+ ThreeZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "1h")]
+ #pragma warning disable CS1591
+ Oneh,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy.cs
new file mode 100644
index 0000000..d5410c0
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy.cs
@@ -0,0 +1,125 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class Alert_policy : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The alerts property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alerts? Alerts { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alerts Alerts { get; set; }
+#endif
+ /// The compare property
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_compare? Compare { get; set; }
+ /// The description property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Description { get; set; }
+#nullable restore
+#else
+ public string Description { get; set; }
+#endif
+ /// The enabled property
+ public bool? Enabled { get; set; }
+ /// The entities property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Entities { get; set; }
+#nullable restore
+#else
+ public List Entities { get; set; }
+#endif
+ /// The tags property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Tags { get; set; }
+#nullable restore
+#else
+ public List Tags { get; set; }
+#endif
+ /// The type property
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_type? Type { get; set; }
+ /// The uuid property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Uuid { get; set; }
+#nullable restore
+#else
+ public string Uuid { get; set; }
+#endif
+ /// The value property
+ public float? Value { get; set; }
+ /// The window property
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_window? Window { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Alert_policy()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "alerts", n => { Alerts = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Alerts.CreateFromDiscriminatorValue); } },
+ { "compare", n => { Compare = n.GetEnumValue(); } },
+ { "description", n => { Description = n.GetStringValue(); } },
+ { "enabled", n => { Enabled = n.GetBoolValue(); } },
+ { "entities", n => { Entities = n.GetCollectionOfPrimitiveValues()?.AsList(); } },
+ { "tags", n => { Tags = n.GetCollectionOfPrimitiveValues()?.AsList(); } },
+ { "type", n => { Type = n.GetEnumValue(); } },
+ { "uuid", n => { Uuid = n.GetStringValue(); } },
+ { "value", n => { Value = n.GetFloatValue(); } },
+ { "window", n => { Window = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteObjectValue("alerts", Alerts);
+ writer.WriteEnumValue("compare", Compare);
+ writer.WriteStringValue("description", Description);
+ writer.WriteBoolValue("enabled", Enabled);
+ writer.WriteCollectionOfPrimitiveValues("entities", Entities);
+ writer.WriteCollectionOfPrimitiveValues("tags", Tags);
+ writer.WriteEnumValue("type", Type);
+ writer.WriteStringValue("uuid", Uuid);
+ writer.WriteFloatValue("value", Value);
+ writer.WriteEnumValue("window", Window);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_compare.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_compare.cs
new file mode 100644
index 0000000..91d98c6
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_compare.cs
@@ -0,0 +1,20 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum Alert_policy_compare
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "GreaterThan")]
+ #pragma warning disable CS1591
+ GreaterThan,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "LessThan")]
+ #pragma warning disable CS1591
+ LessThan,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request.cs
new file mode 100644
index 0000000..e03679e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request.cs
@@ -0,0 +1,115 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class Alert_policy_request : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The alerts property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alerts? Alerts { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alerts Alerts { get; set; }
+#endif
+ /// The compare property
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_request_compare? Compare { get; set; }
+ /// The description property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Description { get; set; }
+#nullable restore
+#else
+ public string Description { get; set; }
+#endif
+ /// The enabled property
+ public bool? Enabled { get; set; }
+ /// The entities property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Entities { get; set; }
+#nullable restore
+#else
+ public List Entities { get; set; }
+#endif
+ /// The tags property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Tags { get; set; }
+#nullable restore
+#else
+ public List Tags { get; set; }
+#endif
+ /// The type property
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_request_type? Type { get; set; }
+ /// The value property
+ public float? Value { get; set; }
+ /// The window property
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_request_window? Window { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Alert_policy_request()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_request CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Alert_policy_request();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "alerts", n => { Alerts = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Alerts.CreateFromDiscriminatorValue); } },
+ { "compare", n => { Compare = n.GetEnumValue(); } },
+ { "description", n => { Description = n.GetStringValue(); } },
+ { "enabled", n => { Enabled = n.GetBoolValue(); } },
+ { "entities", n => { Entities = n.GetCollectionOfPrimitiveValues()?.AsList(); } },
+ { "tags", n => { Tags = n.GetCollectionOfPrimitiveValues()?.AsList(); } },
+ { "type", n => { Type = n.GetEnumValue(); } },
+ { "value", n => { Value = n.GetFloatValue(); } },
+ { "window", n => { Window = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteObjectValue("alerts", Alerts);
+ writer.WriteEnumValue("compare", Compare);
+ writer.WriteStringValue("description", Description);
+ writer.WriteBoolValue("enabled", Enabled);
+ writer.WriteCollectionOfPrimitiveValues("entities", Entities);
+ writer.WriteCollectionOfPrimitiveValues("tags", Tags);
+ writer.WriteEnumValue("type", Type);
+ writer.WriteFloatValue("value", Value);
+ writer.WriteEnumValue("window", Window);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_compare.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_compare.cs
new file mode 100644
index 0000000..975357e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_compare.cs
@@ -0,0 +1,20 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum Alert_policy_request_compare
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "GreaterThan")]
+ #pragma warning disable CS1591
+ GreaterThan,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "LessThan")]
+ #pragma warning disable CS1591
+ LessThan,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_type.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_type.cs
new file mode 100644
index 0000000..1b03dd7
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_type.cs
@@ -0,0 +1,124 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum Alert_policy_request_type
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "v1/insights/droplet/load_1")]
+ #pragma warning disable CS1591
+ V1InsightsDropletLoad_1,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/load_5")]
+ #pragma warning disable CS1591
+ V1InsightsDropletLoad_5,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/load_15")]
+ #pragma warning disable CS1591
+ V1InsightsDropletLoad_15,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/memory_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsDropletMemory_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/disk_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsDropletDisk_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/cpu")]
+ #pragma warning disable CS1591
+ V1InsightsDropletCpu,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/disk_read")]
+ #pragma warning disable CS1591
+ V1InsightsDropletDisk_read,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/disk_write")]
+ #pragma warning disable CS1591
+ V1InsightsDropletDisk_write,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/public_outbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPublic_outbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/public_inbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPublic_inbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/private_outbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPrivate_outbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/private_inbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPrivate_inbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/avg_cpu_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasAvg_cpu_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/connection_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasConnection_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/droplet_health")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasDroplet_health,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/tls_connections_per_second_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasTls_connections_per_second_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_percentage_5xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_percentage_5xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_percentage_4xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_percentage_4xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_count_5xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_count_5xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_count_4xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_count_4xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time_50p")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time_50p,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time_95p")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time_95p,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time_99p")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time_99p,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/load_15_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsLoad_15_alerts,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/memory_utilization_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsMemory_utilization_alerts,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/disk_utilization_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsDisk_utilization_alerts,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/cpu_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsCpu_alerts,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_window.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_window.cs
new file mode 100644
index 0000000..6214032
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_request_window.cs
@@ -0,0 +1,28 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum Alert_policy_request_window
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "5m")]
+ #pragma warning disable CS1591
+ Fivem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "10m")]
+ #pragma warning disable CS1591
+ OneZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "30m")]
+ #pragma warning disable CS1591
+ ThreeZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "1h")]
+ #pragma warning disable CS1591
+ Oneh,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_type.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_type.cs
new file mode 100644
index 0000000..18072b3
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_type.cs
@@ -0,0 +1,124 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum Alert_policy_type
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "v1/insights/droplet/load_1")]
+ #pragma warning disable CS1591
+ V1InsightsDropletLoad_1,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/load_5")]
+ #pragma warning disable CS1591
+ V1InsightsDropletLoad_5,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/load_15")]
+ #pragma warning disable CS1591
+ V1InsightsDropletLoad_15,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/memory_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsDropletMemory_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/disk_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsDropletDisk_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/cpu")]
+ #pragma warning disable CS1591
+ V1InsightsDropletCpu,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/disk_read")]
+ #pragma warning disable CS1591
+ V1InsightsDropletDisk_read,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/disk_write")]
+ #pragma warning disable CS1591
+ V1InsightsDropletDisk_write,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/public_outbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPublic_outbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/public_inbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPublic_inbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/private_outbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPrivate_outbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/droplet/private_inbound_bandwidth")]
+ #pragma warning disable CS1591
+ V1InsightsDropletPrivate_inbound_bandwidth,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/avg_cpu_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasAvg_cpu_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/connection_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasConnection_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/droplet_health")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasDroplet_health,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/tls_connections_per_second_utilization_percent")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasTls_connections_per_second_utilization_percent,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_percentage_5xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_percentage_5xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_percentage_4xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_percentage_4xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_count_5xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_count_5xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/increase_in_http_error_rate_count_4xx")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasIncrease_in_http_error_rate_count_4xx,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time_50p")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time_50p,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time_95p")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time_95p,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/insights/lbaas/high_http_request_response_time_99p")]
+ #pragma warning disable CS1591
+ V1InsightsLbaasHigh_http_request_response_time_99p,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/load_15_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsLoad_15_alerts,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/memory_utilization_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsMemory_utilization_alerts,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/disk_utilization_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsDisk_utilization_alerts,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "v1/dbaas/alerts/cpu_alerts")]
+ #pragma warning disable CS1591
+ V1DbaasAlertsCpu_alerts,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_window.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_window.cs
new file mode 100644
index 0000000..748bc37
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_policy_window.cs
@@ -0,0 +1,28 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum Alert_policy_window
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "5m")]
+ #pragma warning disable CS1591
+ Fivem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "10m")]
+ #pragma warning disable CS1591
+ OneZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "30m")]
+ #pragma warning disable CS1591
+ ThreeZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "1h")]
+ #pragma warning disable CS1591
+ Oneh,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_type.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_type.cs
new file mode 100644
index 0000000..95f9b96
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_type.cs
@@ -0,0 +1,27 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// The type of alert.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Alert_type
+ {
+ [EnumMember(Value = "latency")]
+ #pragma warning disable CS1591
+ Latency,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "down")]
+ #pragma warning disable CS1591
+ Down,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "down_global")]
+ #pragma warning disable CS1591
+ Down_global,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ssl_expiry")]
+ #pragma warning disable CS1591
+ Ssl_expiry,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable.cs
new file mode 100644
index 0000000..e498002
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable.cs
@@ -0,0 +1,91 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class Alert_updatable : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The comparison operator used against the alert's threshold.
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_updatable_comparison? Comparison { get; set; }
+ /// A human-friendly display name.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// The notification settings for a trigger alert.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Notification? Notifications { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Notification Notifications { get; set; }
+#endif
+ /// Period of time the threshold must be exceeded to trigger the alert.
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_updatable_period? Period { get; set; }
+ /// The threshold at which the alert will enter a trigger state. The specific threshold is dependent on the alert type.
+ public int? Threshold { get; set; }
+ /// The type of alert.
+ public global::InfinityFlow.DigitalOcean.Client.Models.Alert_updatable_type? Type { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Alert_updatable()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Alert_updatable CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Alert_updatable();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "comparison", n => { Comparison = n.GetEnumValue(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "notifications", n => { Notifications = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Notification.CreateFromDiscriminatorValue); } },
+ { "period", n => { Period = n.GetEnumValue(); } },
+ { "threshold", n => { Threshold = n.GetIntValue(); } },
+ { "type", n => { Type = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteEnumValue("comparison", Comparison);
+ writer.WriteStringValue("name", Name);
+ writer.WriteObjectValue("notifications", Notifications);
+ writer.WriteEnumValue("period", Period);
+ writer.WriteIntValue("threshold", Threshold);
+ writer.WriteEnumValue("type", Type);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_comparison.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_comparison.cs
new file mode 100644
index 0000000..038f309
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_comparison.cs
@@ -0,0 +1,19 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// The comparison operator used against the alert's threshold.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Alert_updatable_comparison
+ {
+ [EnumMember(Value = "greater_than")]
+ #pragma warning disable CS1591
+ Greater_than,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "less_than")]
+ #pragma warning disable CS1591
+ Less_than,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_period.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_period.cs
new file mode 100644
index 0000000..c7d283e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_period.cs
@@ -0,0 +1,39 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// Period of time the threshold must be exceeded to trigger the alert.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Alert_updatable_period
+ {
+ [EnumMember(Value = "2m")]
+ #pragma warning disable CS1591
+ Twom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "3m")]
+ #pragma warning disable CS1591
+ Threem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "5m")]
+ #pragma warning disable CS1591
+ Fivem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "10m")]
+ #pragma warning disable CS1591
+ OneZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "15m")]
+ #pragma warning disable CS1591
+ OneFivem,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "30m")]
+ #pragma warning disable CS1591
+ ThreeZerom,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "1h")]
+ #pragma warning disable CS1591
+ Oneh,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_type.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_type.cs
new file mode 100644
index 0000000..e88bd23
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alert_updatable_type.cs
@@ -0,0 +1,27 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// The type of alert.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum Alert_updatable_type
+ {
+ [EnumMember(Value = "latency")]
+ #pragma warning disable CS1591
+ Latency,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "down")]
+ #pragma warning disable CS1591
+ Down,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "down_global")]
+ #pragma warning disable CS1591
+ Down_global,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ssl_expiry")]
+ #pragma warning disable CS1591
+ Ssl_expiry,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/Alerts.cs b/src/InfinityFlow.DigitalOcean.Client/Models/Alerts.cs
new file mode 100644
index 0000000..c5b607e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/Alerts.cs
@@ -0,0 +1,75 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class Alerts : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// An email to notify on an alert trigger.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Email { get; set; }
+#nullable restore
+#else
+ public List Email { get; set; }
+#endif
+ /// Slack integration details.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Slack { get; set; }
+#nullable restore
+#else
+ public List Slack { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public Alerts()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.Alerts CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.Alerts();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "email", n => { Email = n.GetCollectionOfPrimitiveValues()?.AsList(); } },
+ { "slack", n => { Slack = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.Slack_details.CreateFromDiscriminatorValue)?.AsList(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteCollectionOfPrimitiveValues("email", Email);
+ writer.WriteCollectionOfObjectValues("slack", Slack);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App.cs
new file mode 100644
index 0000000..521573b
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App.cs
@@ -0,0 +1,215 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ ///
+ /// An application's configuration and status.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class App : IAdditionalDataHolder, IParsable
+ {
+ /// The active_deployment property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment? ActiveDeployment { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment ActiveDeployment { get; set; }
+#endif
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The created_at property
+ public DateTimeOffset? CreatedAt { get; private set; }
+ /// The dedicated_ips property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? DedicatedIps { get; private set; }
+#nullable restore
+#else
+ public List DedicatedIps { get; private set; }
+#endif
+ /// The default_ingress property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? DefaultIngress { get; private set; }
+#nullable restore
+#else
+ public string DefaultIngress { get; private set; }
+#endif
+ /// The domains property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Domains { get; private set; }
+#nullable restore
+#else
+ public List Domains { get; private set; }
+#endif
+ /// The id property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Id { get; private set; }
+#nullable restore
+#else
+ public string Id { get; private set; }
+#endif
+ /// The in_progress_deployment property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment? InProgressDeployment { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment InProgressDeployment { get; set; }
+#endif
+ /// The last_deployment_created_at property
+ public DateTimeOffset? LastDeploymentCreatedAt { get; private set; }
+ /// The live_domain property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? LiveDomain { get; private set; }
+#nullable restore
+#else
+ public string LiveDomain { get; private set; }
+#endif
+ /// The live_url property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? LiveUrl { get; private set; }
+#nullable restore
+#else
+ public string LiveUrl { get; private set; }
+#endif
+ /// The live_url_base property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? LiveUrlBase { get; private set; }
+#nullable restore
+#else
+ public string LiveUrlBase { get; private set; }
+#endif
+ /// The owner_uuid property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? OwnerUuid { get; private set; }
+#nullable restore
+#else
+ public string OwnerUuid { get; private set; }
+#endif
+ /// The pending_deployment property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment? PendingDeployment { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment PendingDeployment { get; set; }
+#endif
+ /// The pinned_deployment property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment? PinnedDeployment { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment PinnedDeployment { get; set; }
+#endif
+ /// The project_id property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? ProjectId { get; private set; }
+#nullable restore
+#else
+ public string ProjectId { get; private set; }
+#endif
+ /// The region property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_region? Region { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_region Region { get; set; }
+#endif
+ /// The desired configuration of an application.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_spec? Spec { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_spec Spec { get; set; }
+#endif
+ /// The tier_slug property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? TierSlug { get; private set; }
+#nullable restore
+#else
+ public string TierSlug { get; private set; }
+#endif
+ /// The updated_at property
+ public DateTimeOffset? UpdatedAt { get; private set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "active_deployment", n => { ActiveDeployment = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment.CreateFromDiscriminatorValue); } },
+ { "created_at", n => { CreatedAt = n.GetDateTimeOffsetValue(); } },
+ { "dedicated_ips", n => { DedicatedIps = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.Apps_dedicated_egress_ip.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "default_ingress", n => { DefaultIngress = n.GetStringValue(); } },
+ { "domains", n => { Domains = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.Apps_domain.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "id", n => { Id = n.GetStringValue(); } },
+ { "in_progress_deployment", n => { InProgressDeployment = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment.CreateFromDiscriminatorValue); } },
+ { "last_deployment_created_at", n => { LastDeploymentCreatedAt = n.GetDateTimeOffsetValue(); } },
+ { "live_domain", n => { LiveDomain = n.GetStringValue(); } },
+ { "live_url", n => { LiveUrl = n.GetStringValue(); } },
+ { "live_url_base", n => { LiveUrlBase = n.GetStringValue(); } },
+ { "owner_uuid", n => { OwnerUuid = n.GetStringValue(); } },
+ { "pending_deployment", n => { PendingDeployment = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment.CreateFromDiscriminatorValue); } },
+ { "pinned_deployment", n => { PinnedDeployment = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_deployment.CreateFromDiscriminatorValue); } },
+ { "project_id", n => { ProjectId = n.GetStringValue(); } },
+ { "region", n => { Region = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_region.CreateFromDiscriminatorValue); } },
+ { "spec", n => { Spec = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.App_spec.CreateFromDiscriminatorValue); } },
+ { "tier_slug", n => { TierSlug = n.GetStringValue(); } },
+ { "updated_at", n => { UpdatedAt = n.GetDateTimeOffsetValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteObjectValue("active_deployment", ActiveDeployment);
+ writer.WriteObjectValue("in_progress_deployment", InProgressDeployment);
+ writer.WriteObjectValue("pending_deployment", PendingDeployment);
+ writer.WriteObjectValue("pinned_deployment", PinnedDeployment);
+ writer.WriteObjectValue("region", Region);
+ writer.WriteObjectValue("spec", Spec);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert.cs
new file mode 100644
index 0000000..df99d73
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert.cs
@@ -0,0 +1,119 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_alert : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The component_name property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? ComponentName { get; set; }
+#nullable restore
+#else
+ public string ComponentName { get; set; }
+#endif
+ /// The emails property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Emails { get; set; }
+#nullable restore
+#else
+ public List Emails { get; set; }
+#endif
+ /// The id property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Id { get; private set; }
+#nullable restore
+#else
+ public string Id { get; private set; }
+#endif
+ /// The phase property
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_phase? Phase { get; set; }
+ /// The progress property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress? Progress { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress Progress { get; set; }
+#endif
+ /// The slack_webhooks property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? SlackWebhooks { get; set; }
+#nullable restore
+#else
+ public List SlackWebhooks { get; set; }
+#endif
+ /// The spec property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec? Spec { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec Spec { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_alert()
+ {
+ AdditionalData = new Dictionary();
+ Phase = global::InfinityFlow.DigitalOcean.Client.Models.App_alert_phase.UNKNOWN;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_alert CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_alert();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "component_name", n => { ComponentName = n.GetStringValue(); } },
+ { "emails", n => { Emails = n.GetCollectionOfPrimitiveValues()?.AsList(); } },
+ { "id", n => { Id = n.GetStringValue(); } },
+ { "phase", n => { Phase = n.GetEnumValue(); } },
+ { "progress", n => { Progress = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress.CreateFromDiscriminatorValue); } },
+ { "slack_webhooks", n => { SlackWebhooks = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_alert_slack_webhook.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "spec", n => { Spec = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec.CreateFromDiscriminatorValue); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("component_name", ComponentName);
+ writer.WriteCollectionOfPrimitiveValues("emails", Emails);
+ writer.WriteEnumValue("phase", Phase);
+ writer.WriteObjectValue("progress", Progress);
+ writer.WriteCollectionOfObjectValues("slack_webhooks", SlackWebhooks);
+ writer.WriteObjectValue("spec", Spec);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_phase.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_phase.cs
new file mode 100644
index 0000000..22fd4ad
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_phase.cs
@@ -0,0 +1,32 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum App_alert_phase
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "UNKNOWN")]
+ #pragma warning disable CS1591
+ UNKNOWN,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "PENDING")]
+ #pragma warning disable CS1591
+ PENDING,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "CONFIGURING")]
+ #pragma warning disable CS1591
+ CONFIGURING,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ACTIVE")]
+ #pragma warning disable CS1591
+ ACTIVE,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ERROR")]
+ #pragma warning disable CS1591
+ ERROR,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress.cs
new file mode 100644
index 0000000..cb2d577
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress.cs
@@ -0,0 +1,65 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_alert_progress : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The steps property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Steps { get; set; }
+#nullable restore
+#else
+ public List Steps { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_alert_progress()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "steps", n => { Steps = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step.CreateFromDiscriminatorValue)?.AsList(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteCollectionOfObjectValues("steps", Steps);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step.cs
new file mode 100644
index 0000000..4a0b26a
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step.cs
@@ -0,0 +1,88 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_alert_progress_step : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The ended_at property
+ public DateTimeOffset? EndedAt { get; set; }
+ /// The name property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// The reason property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_reason? Reason { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_reason Reason { get; set; }
+#endif
+ /// The started_at property
+ public DateTimeOffset? StartedAt { get; set; }
+ /// The status property
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_status? Status { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_alert_progress_step()
+ {
+ AdditionalData = new Dictionary();
+ Status = global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_status.UNKNOWN;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "ended_at", n => { EndedAt = n.GetDateTimeOffsetValue(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "reason", n => { Reason = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_reason.CreateFromDiscriminatorValue); } },
+ { "started_at", n => { StartedAt = n.GetDateTimeOffsetValue(); } },
+ { "status", n => { Status = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteDateTimeOffsetValue("ended_at", EndedAt);
+ writer.WriteStringValue("name", Name);
+ writer.WriteObjectValue("reason", Reason);
+ writer.WriteDateTimeOffsetValue("started_at", StartedAt);
+ writer.WriteEnumValue("status", Status);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step_reason.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step_reason.cs
new file mode 100644
index 0000000..e2b2704
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step_reason.cs
@@ -0,0 +1,75 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_alert_progress_step_reason : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The code property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Code { get; set; }
+#nullable restore
+#else
+ public string Code { get; set; }
+#endif
+ /// The message property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Message { get; set; }
+#nullable restore
+#else
+ public string Message { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_alert_progress_step_reason()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_reason CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_alert_progress_step_reason();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "code", n => { Code = n.GetStringValue(); } },
+ { "message", n => { Message = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("code", Code);
+ writer.WriteStringValue("message", Message);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step_status.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step_status.cs
new file mode 100644
index 0000000..251a06a
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_progress_step_status.cs
@@ -0,0 +1,32 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum App_alert_progress_step_status
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "UNKNOWN")]
+ #pragma warning disable CS1591
+ UNKNOWN,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "PENDING")]
+ #pragma warning disable CS1591
+ PENDING,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "RUNNING")]
+ #pragma warning disable CS1591
+ RUNNING,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ERROR")]
+ #pragma warning disable CS1591
+ ERROR,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "SUCCESS")]
+ #pragma warning disable CS1591
+ SUCCESS,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_slack_webhook.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_slack_webhook.cs
new file mode 100644
index 0000000..a39071a
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_slack_webhook.cs
@@ -0,0 +1,75 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_alert_slack_webhook : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The channel property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Channel { get; set; }
+#nullable restore
+#else
+ public string Channel { get; set; }
+#endif
+ /// The url property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Url { get; set; }
+#nullable restore
+#else
+ public string Url { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_alert_slack_webhook()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_alert_slack_webhook CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_alert_slack_webhook();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "channel", n => { Channel = n.GetStringValue(); } },
+ { "url", n => { Url = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("channel", Channel);
+ writer.WriteStringValue("url", Url);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec.cs
new file mode 100644
index 0000000..2fba833
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec.cs
@@ -0,0 +1,78 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_alert_spec : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// Is the alert disabled?
+ public bool? Disabled { get; set; }
+ /// The operator property
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec_operator? Operator { get; set; }
+ /// The rule property
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec_rule? Rule { get; set; }
+ /// Threshold value for alert
+ public float? Value { get; set; }
+ /// The window property
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec_window? Window { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_alert_spec()
+ {
+ AdditionalData = new Dictionary();
+ Operator = global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec_operator.UNSPECIFIED_OPERATOR;
+ Rule = global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec_rule.UNSPECIFIED_RULE;
+ Window = global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec_window.UNSPECIFIED_WINDOW;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "disabled", n => { Disabled = n.GetBoolValue(); } },
+ { "operator", n => { Operator = n.GetEnumValue(); } },
+ { "rule", n => { Rule = n.GetEnumValue(); } },
+ { "value", n => { Value = n.GetFloatValue(); } },
+ { "window", n => { Window = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteBoolValue("disabled", Disabled);
+ writer.WriteEnumValue("operator", Operator);
+ writer.WriteEnumValue("rule", Rule);
+ writer.WriteFloatValue("value", Value);
+ writer.WriteEnumValue("window", Window);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_operator.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_operator.cs
new file mode 100644
index 0000000..1083c4f
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_operator.cs
@@ -0,0 +1,24 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum App_alert_spec_operator
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "UNSPECIFIED_OPERATOR")]
+ #pragma warning disable CS1591
+ UNSPECIFIED_OPERATOR,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "GREATER_THAN")]
+ #pragma warning disable CS1591
+ GREATER_THAN,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "LESS_THAN")]
+ #pragma warning disable CS1591
+ LESS_THAN,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_rule.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_rule.cs
new file mode 100644
index 0000000..140275e
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_rule.cs
@@ -0,0 +1,68 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum App_alert_spec_rule
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "UNSPECIFIED_RULE")]
+ #pragma warning disable CS1591
+ UNSPECIFIED_RULE,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "CPU_UTILIZATION")]
+ #pragma warning disable CS1591
+ CPU_UTILIZATION,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "MEM_UTILIZATION")]
+ #pragma warning disable CS1591
+ MEM_UTILIZATION,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "RESTART_COUNT")]
+ #pragma warning disable CS1591
+ RESTART_COUNT,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "DEPLOYMENT_FAILED")]
+ #pragma warning disable CS1591
+ DEPLOYMENT_FAILED,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "DEPLOYMENT_LIVE")]
+ #pragma warning disable CS1591
+ DEPLOYMENT_LIVE,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "DOMAIN_FAILED")]
+ #pragma warning disable CS1591
+ DOMAIN_FAILED,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "DOMAIN_LIVE")]
+ #pragma warning disable CS1591
+ DOMAIN_LIVE,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FUNCTIONS_ACTIVATION_COUNT")]
+ #pragma warning disable CS1591
+ FUNCTIONS_ACTIVATION_COUNT,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FUNCTIONS_AVERAGE_DURATION_MS")]
+ #pragma warning disable CS1591
+ FUNCTIONS_AVERAGE_DURATION_MS,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FUNCTIONS_ERROR_RATE_PER_MINUTE")]
+ #pragma warning disable CS1591
+ FUNCTIONS_ERROR_RATE_PER_MINUTE,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FUNCTIONS_AVERAGE_WAIT_TIME_MS")]
+ #pragma warning disable CS1591
+ FUNCTIONS_AVERAGE_WAIT_TIME_MS,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FUNCTIONS_ERROR_COUNT")]
+ #pragma warning disable CS1591
+ FUNCTIONS_ERROR_COUNT,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FUNCTIONS_GB_RATE_PER_SECOND")]
+ #pragma warning disable CS1591
+ FUNCTIONS_GB_RATE_PER_SECOND,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_window.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_window.cs
new file mode 100644
index 0000000..04c8640
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_alert_spec_window.cs
@@ -0,0 +1,32 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum App_alert_spec_window
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "UNSPECIFIED_WINDOW")]
+ #pragma warning disable CS1591
+ UNSPECIFIED_WINDOW,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "FIVE_MINUTES")]
+ #pragma warning disable CS1591
+ FIVE_MINUTES,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "TEN_MINUTES")]
+ #pragma warning disable CS1591
+ TEN_MINUTES,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "THIRTY_MINUTES")]
+ #pragma warning disable CS1591
+ THIRTY_MINUTES,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ONE_HOUR")]
+ #pragma warning disable CS1591
+ ONE_HOUR,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_component_base.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_component_base.cs
new file mode 100644
index 0000000..a603baf
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_component_base.cs
@@ -0,0 +1,175 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_component_base : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// An optional build command to run while building this component from source.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? BuildCommand { get; set; }
+#nullable restore
+#else
+ public string BuildCommand { get; set; }
+#endif
+ /// The path to the Dockerfile relative to the root of the repo. If set, it will be used to build this component. Otherwise, App Platform will attempt to build it using buildpacks.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? DockerfilePath { get; set; }
+#nullable restore
+#else
+ public string DockerfilePath { get; set; }
+#endif
+ /// An environment slug describing the type of this app. For a full list, please refer to [the product documentation](https://docs.digitalocean.com/products/app-platform/).
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? EnvironmentSlug { get; set; }
+#nullable restore
+#else
+ public string EnvironmentSlug { get; set; }
+#endif
+ /// A list of environment variables made available to the component.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Envs { get; set; }
+#nullable restore
+#else
+ public List Envs { get; set; }
+#endif
+ /// The git property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_git_source_spec? Git { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_git_source_spec Git { get; set; }
+#endif
+ /// The github property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_github_source_spec? Github { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_github_source_spec Github { get; set; }
+#endif
+ /// The gitlab property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_gitlab_source_spec? Gitlab { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_gitlab_source_spec Gitlab { get; set; }
+#endif
+ /// The image property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_image_source_spec? Image { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_image_source_spec Image { get; set; }
+#endif
+ /// A list of configured log forwarding destinations.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? LogDestinations { get; set; }
+#nullable restore
+#else
+ public List LogDestinations { get; set; }
+#endif
+ /// The name. Must be unique across all components within the same app.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// An optional run command to override the component's default.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? RunCommand { get; set; }
+#nullable restore
+#else
+ public string RunCommand { get; set; }
+#endif
+ /// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? SourceDir { get; set; }
+#nullable restore
+#else
+ public string SourceDir { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_component_base()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_component_base CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_component_base();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "build_command", n => { BuildCommand = n.GetStringValue(); } },
+ { "dockerfile_path", n => { DockerfilePath = n.GetStringValue(); } },
+ { "environment_slug", n => { EnvironmentSlug = n.GetStringValue(); } },
+ { "envs", n => { Envs = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_variable_definition.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "git", n => { Git = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_git_source_spec.CreateFromDiscriminatorValue); } },
+ { "github", n => { Github = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_github_source_spec.CreateFromDiscriminatorValue); } },
+ { "gitlab", n => { Gitlab = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_gitlab_source_spec.CreateFromDiscriminatorValue); } },
+ { "image", n => { Image = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_image_source_spec.CreateFromDiscriminatorValue); } },
+ { "log_destinations", n => { LogDestinations = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_log_destination_definition.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "run_command", n => { RunCommand = n.GetStringValue(); } },
+ { "source_dir", n => { SourceDir = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("build_command", BuildCommand);
+ writer.WriteStringValue("dockerfile_path", DockerfilePath);
+ writer.WriteStringValue("environment_slug", EnvironmentSlug);
+ writer.WriteCollectionOfObjectValues("envs", Envs);
+ writer.WriteObjectValue("git", Git);
+ writer.WriteObjectValue("github", Github);
+ writer.WriteObjectValue("gitlab", Gitlab);
+ writer.WriteObjectValue("image", Image);
+ writer.WriteCollectionOfObjectValues("log_destinations", LogDestinations);
+ writer.WriteStringValue("name", Name);
+ writer.WriteStringValue("run_command", RunCommand);
+ writer.WriteStringValue("source_dir", SourceDir);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_database_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_database_spec.cs
new file mode 100644
index 0000000..6b778f2
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_database_spec.cs
@@ -0,0 +1,114 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_database_spec : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The name of the underlying DigitalOcean DBaaS cluster. This is required for production databases. For dev databases, if cluster_name is not set, a new cluster will be provisioned.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? ClusterName { get; set; }
+#nullable restore
+#else
+ public string ClusterName { get; set; }
+#endif
+ /// The name of the MySQL or PostgreSQL database to configure.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? DbName { get; set; }
+#nullable restore
+#else
+ public string DbName { get; set; }
+#endif
+ /// The name of the MySQL or PostgreSQL user to configure.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? DbUser { get; set; }
+#nullable restore
+#else
+ public string DbUser { get; set; }
+#endif
+ /// - MYSQL: MySQL- PG: PostgreSQL- REDIS: Redis- MONGODB: MongoDB- KAFKA: Kafka- OPENSEARCH: OpenSearch
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_database_spec_engine? Engine { get; set; }
+ /// The database's name. The name must be unique across all components within the same app and cannot use capital letters.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// Whether this is a production or dev database.
+ public bool? Production { get; set; }
+ /// The version of the database engine
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Version { get; set; }
+#nullable restore
+#else
+ public string Version { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_database_spec()
+ {
+ AdditionalData = new Dictionary();
+ Engine = global::InfinityFlow.DigitalOcean.Client.Models.App_database_spec_engine.UNSET;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_database_spec CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_database_spec();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "cluster_name", n => { ClusterName = n.GetStringValue(); } },
+ { "db_name", n => { DbName = n.GetStringValue(); } },
+ { "db_user", n => { DbUser = n.GetStringValue(); } },
+ { "engine", n => { Engine = n.GetEnumValue(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "production", n => { Production = n.GetBoolValue(); } },
+ { "version", n => { Version = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("cluster_name", ClusterName);
+ writer.WriteStringValue("db_name", DbName);
+ writer.WriteStringValue("db_user", DbUser);
+ writer.WriteEnumValue("engine", Engine);
+ writer.WriteStringValue("name", Name);
+ writer.WriteBoolValue("production", Production);
+ writer.WriteStringValue("version", Version);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_database_spec_engine.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_database_spec_engine.cs
new file mode 100644
index 0000000..4d95ef7
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_database_spec_engine.cs
@@ -0,0 +1,39 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// - MYSQL: MySQL- PG: PostgreSQL- REDIS: Redis- MONGODB: MongoDB- KAFKA: Kafka- OPENSEARCH: OpenSearch
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum App_database_spec_engine
+ {
+ [EnumMember(Value = "UNSET")]
+ #pragma warning disable CS1591
+ UNSET,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "MYSQL")]
+ #pragma warning disable CS1591
+ MYSQL,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "PG")]
+ #pragma warning disable CS1591
+ PG,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "REDIS")]
+ #pragma warning disable CS1591
+ REDIS,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "MONGODB")]
+ #pragma warning disable CS1591
+ MONGODB,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "KAFKA")]
+ #pragma warning disable CS1591
+ KAFKA,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "OPENSEARCH")]
+ #pragma warning disable CS1591
+ OPENSEARCH,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec.cs
new file mode 100644
index 0000000..51186c3
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec.cs
@@ -0,0 +1,88 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_domain_spec : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The hostname for the domain
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Domain { get; set; }
+#nullable restore
+#else
+ public string Domain { get; set; }
+#endif
+ /// The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: `"1.2"` or `"1.3"`.
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_domain_spec_minimum_tls_version? MinimumTlsVersion { get; set; }
+ /// - DEFAULT: The default `.ondigitalocean.app` domain assigned to this app- PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary.- ALIAS: A non-primary domain
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_domain_spec_type? Type { get; set; }
+ /// Indicates whether the domain includes all sub-domains, in addition to the given domain
+ public bool? Wildcard { get; set; }
+ /// Optional. If the domain uses DigitalOcean DNS and you would like AppPlatform to automatically manage it for you, set this to the name of thedomain on your account.For example, If the domain you are adding is `app.domain.com`, the zonecould be `domain.com`.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Zone { get; set; }
+#nullable restore
+#else
+ public string Zone { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_domain_spec()
+ {
+ AdditionalData = new Dictionary();
+ Type = global::InfinityFlow.DigitalOcean.Client.Models.App_domain_spec_type.UNSPECIFIED;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_domain_spec CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_domain_spec();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "domain", n => { Domain = n.GetStringValue(); } },
+ { "minimum_tls_version", n => { MinimumTlsVersion = n.GetEnumValue(); } },
+ { "type", n => { Type = n.GetEnumValue(); } },
+ { "wildcard", n => { Wildcard = n.GetBoolValue(); } },
+ { "zone", n => { Zone = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteStringValue("domain", Domain);
+ writer.WriteEnumValue("minimum_tls_version", MinimumTlsVersion);
+ writer.WriteEnumValue("type", Type);
+ writer.WriteBoolValue("wildcard", Wildcard);
+ writer.WriteStringValue("zone", Zone);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec_minimum_tls_version.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec_minimum_tls_version.cs
new file mode 100644
index 0000000..b2f5351
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec_minimum_tls_version.cs
@@ -0,0 +1,19 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// The minimum version of TLS a client application can use to access resources for the domain. Must be one of the following values wrapped within quotations: `"1.2"` or `"1.3"`.
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum App_domain_spec_minimum_tls_version
+ {
+ [EnumMember(Value = "1.2")]
+ #pragma warning disable CS1591
+ OneTwo,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "1.3")]
+ #pragma warning disable CS1591
+ OneThree,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec_type.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec_type.cs
new file mode 100644
index 0000000..0cf76cb
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_spec_type.cs
@@ -0,0 +1,27 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ /// - DEFAULT: The default `.ondigitalocean.app` domain assigned to this app- PRIMARY: The primary domain for this app that is displayed as the default in the control panel, used in bindable environment variables, and any other places that reference an app's live URL. Only one domain may be set as primary.- ALIAS: A non-primary domain
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public enum App_domain_spec_type
+ {
+ [EnumMember(Value = "UNSPECIFIED")]
+ #pragma warning disable CS1591
+ UNSPECIFIED,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "DEFAULT")]
+ #pragma warning disable CS1591
+ DEFAULT,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "PRIMARY")]
+ #pragma warning disable CS1591
+ PRIMARY,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "ALIAS")]
+ #pragma warning disable CS1591
+ ALIAS,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_validation.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_validation.cs
new file mode 100644
index 0000000..f65cc94
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_domain_validation.cs
@@ -0,0 +1,73 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_domain_validation : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The txt_name property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? TxtName { get; private set; }
+#nullable restore
+#else
+ public string TxtName { get; private set; }
+#endif
+ /// The txt_value property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? TxtValue { get; private set; }
+#nullable restore
+#else
+ public string TxtValue { get; private set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_domain_validation()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_domain_validation CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_domain_validation();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "txt_name", n => { TxtName = n.GetStringValue(); } },
+ { "txt_value", n => { TxtValue = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_egress_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_egress_spec.cs
new file mode 100644
index 0000000..b8ed5ce
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_egress_spec.cs
@@ -0,0 +1,61 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ ///
+ /// Specification for app egress configurations.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ public partial class App_egress_spec : IAdditionalDataHolder, IParsable
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The type property
+ public global::InfinityFlow.DigitalOcean.Client.Models.App_egress_type_spec? Type { get; set; }
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_egress_spec()
+ {
+ AdditionalData = new Dictionary();
+ Type = global::InfinityFlow.DigitalOcean.Client.Models.App_egress_type_spec.AUTOASSIGN;
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_egress_spec CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_egress_spec();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "type", n => { Type = n.GetEnumValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteEnumValue("type", Type);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_egress_type_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_egress_type_spec.cs
new file mode 100644
index 0000000..f8e08ca
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_egress_type_spec.cs
@@ -0,0 +1,20 @@
+//
+using System.Runtime.Serialization;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public enum App_egress_type_spec
+ #pragma warning restore CS1591
+ {
+ [EnumMember(Value = "AUTOASSIGN")]
+ #pragma warning disable CS1591
+ AUTOASSIGN,
+ #pragma warning restore CS1591
+ [EnumMember(Value = "DEDICATED_IP")]
+ #pragma warning disable CS1591
+ DEDICATED_IP,
+ #pragma warning restore CS1591
+ }
+}
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_functions_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_functions_spec.cs
new file mode 100644
index 0000000..fd79f77
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_functions_spec.cs
@@ -0,0 +1,156 @@
+//
+#pragma warning disable CS0618
+using Microsoft.Kiota.Abstractions.Extensions;
+using Microsoft.Kiota.Abstractions.Serialization;
+using System.Collections.Generic;
+using System.IO;
+using System;
+namespace InfinityFlow.DigitalOcean.Client.Models
+{
+ [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")]
+ #pragma warning disable CS1591
+ public partial class App_functions_spec : IAdditionalDataHolder, IParsable
+ #pragma warning restore CS1591
+ {
+ /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
+ public IDictionary AdditionalData { get; set; }
+ /// The alerts property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Alerts { get; set; }
+#nullable restore
+#else
+ public List Alerts { get; set; }
+#endif
+ /// The cors property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_cors_policy? Cors { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_cors_policy Cors { get; set; }
+#endif
+ /// A list of environment variables made available to the component.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Envs { get; set; }
+#nullable restore
+#else
+ public List Envs { get; set; }
+#endif
+ /// The git property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_git_source_spec? Git { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_git_source_spec Git { get; set; }
+#endif
+ /// The github property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_github_source_spec? Github { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_github_source_spec Github { get; set; }
+#endif
+ /// The gitlab property
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_gitlab_source_spec? Gitlab { get; set; }
+#nullable restore
+#else
+ public global::InfinityFlow.DigitalOcean.Client.Models.Apps_gitlab_source_spec Gitlab { get; set; }
+#endif
+ /// A list of configured log forwarding destinations.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? LogDestinations { get; set; }
+#nullable restore
+#else
+ public List LogDestinations { get; set; }
+#endif
+ /// The name. Must be unique across all components within the same app.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? Name { get; set; }
+#nullable restore
+#else
+ public string Name { get; set; }
+#endif
+ /// (Deprecated - Use Ingress Rules instead). A list of HTTP routes that should be routed to this component.
+ [Obsolete("")]
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public List? Routes { get; set; }
+#nullable restore
+#else
+ public List Routes { get; set; }
+#endif
+ /// An optional path to the working directory to use for the build. For Dockerfile builds, this will be used as the build context. Must be relative to the root of the repo.
+#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER
+#nullable enable
+ public string? SourceDir { get; set; }
+#nullable restore
+#else
+ public string SourceDir { get; set; }
+#endif
+ ///
+ /// Instantiates a new and sets the default values.
+ ///
+ public App_functions_spec()
+ {
+ AdditionalData = new Dictionary();
+ }
+ ///
+ /// Creates a new instance of the appropriate class based on discriminator value
+ ///
+ /// A
+ /// The parse node to use to read the discriminator value and create the object
+ public static global::InfinityFlow.DigitalOcean.Client.Models.App_functions_spec CreateFromDiscriminatorValue(IParseNode parseNode)
+ {
+ _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
+ return new global::InfinityFlow.DigitalOcean.Client.Models.App_functions_spec();
+ }
+ ///
+ /// The deserialization information for the current model
+ ///
+ /// A IDictionary<string, Action<IParseNode>>
+ public virtual IDictionary> GetFieldDeserializers()
+ {
+ return new Dictionary>
+ {
+ { "alerts", n => { Alerts = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_alert_spec.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "cors", n => { Cors = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_cors_policy.CreateFromDiscriminatorValue); } },
+ { "envs", n => { Envs = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_variable_definition.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "git", n => { Git = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_git_source_spec.CreateFromDiscriminatorValue); } },
+ { "github", n => { Github = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_github_source_spec.CreateFromDiscriminatorValue); } },
+ { "gitlab", n => { Gitlab = n.GetObjectValue(global::InfinityFlow.DigitalOcean.Client.Models.Apps_gitlab_source_spec.CreateFromDiscriminatorValue); } },
+ { "log_destinations", n => { LogDestinations = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_log_destination_definition.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "name", n => { Name = n.GetStringValue(); } },
+ { "routes", n => { Routes = n.GetCollectionOfObjectValues(global::InfinityFlow.DigitalOcean.Client.Models.App_route_spec.CreateFromDiscriminatorValue)?.AsList(); } },
+ { "source_dir", n => { SourceDir = n.GetStringValue(); } },
+ };
+ }
+ ///
+ /// Serializes information the current object
+ ///
+ /// Serialization writer to use to serialize this model
+ public virtual void Serialize(ISerializationWriter writer)
+ {
+ _ = writer ?? throw new ArgumentNullException(nameof(writer));
+ writer.WriteCollectionOfObjectValues("alerts", Alerts);
+ writer.WriteObjectValue("cors", Cors);
+ writer.WriteCollectionOfObjectValues("envs", Envs);
+ writer.WriteObjectValue("git", Git);
+ writer.WriteObjectValue("github", Github);
+ writer.WriteObjectValue("gitlab", Gitlab);
+ writer.WriteCollectionOfObjectValues("log_destinations", LogDestinations);
+ writer.WriteStringValue("name", Name);
+ writer.WriteCollectionOfObjectValues("routes", Routes);
+ writer.WriteStringValue("source_dir", SourceDir);
+ writer.WriteAdditionalData(AdditionalData);
+ }
+ }
+}
+#pragma warning restore CS0618
diff --git a/src/InfinityFlow.DigitalOcean.Client/Models/App_ingress_spec.cs b/src/InfinityFlow.DigitalOcean.Client/Models/App_ingress_spec.cs
new file mode 100644
index 0000000..5ea7d43
--- /dev/null
+++ b/src/InfinityFlow.DigitalOcean.Client/Models/App_ingress_spec.cs
@@ -0,0 +1,66 @@
+//