Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .generator/src/generator/openapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def child_models(schema, alternative_name=None, seen=None):
)

if (schema.get("type") == "object" or "properties" in schema or has_sub_models) and not (
"additionalProperties" in schema and "properties" not in schema
schema.get("additionalProperties") not in (None, False) and "properties" not in schema
):
if not has_sub_models and name is None:
# this is a basic map object so we don't need a type
Expand Down
1 change: 1 addition & 0 deletions lib/datadog_api_client/inflector.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3064,6 +3064,7 @@ def overrides
"v2.entity_v3_api_datadog" => "EntityV3APIDatadog",
"v2.entity_v3_api_kind" => "EntityV3APIKind",
"v2.entity_v3_api_spec" => "EntityV3APISpec",
"v2.entity_v3_api_spec_interface" => "EntityV3APISpecInterface",
"v2.entity_v3_api_spec_interface_definition" => "EntityV3APISpecInterfaceDefinition",
"v2.entity_v3_api_spec_interface_file_ref" => "EntityV3APISpecInterfaceFileRef",
"v2.entity_v3_api_version" => "EntityV3APIVersion",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
=begin
#Datadog API V2 Collection

#Collection of all Datadog Public endpoints.

The version of the OpenAPI document: 1.0
Contact: support@datadoghq.com
Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator

Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
This product includes software developed at Datadog (https://www.datadoghq.com/).
Copyright 2020-Present Datadog, Inc.

=end

require 'date'
require 'time'

module DatadogAPIClient::V2
# The API definition.
module EntityV3APISpecInterface
class << self
include BaseOneOfModel
include BaseOneOfModelNoDiscriminator

# List of class defined in oneOf (OpenAPI v3)
def openapi_one_of
[
:'EntityV3APISpecInterfaceFileRef',
:'EntityV3APISpecInterfaceDefinition'
]
end
# Builds the object
# @param data [Mixed] Data to be matched against the list of oneOf items
# @return [Object] Returns the model or the data itself
def build(data)
# Go through the list of oneOf items and attempt to identify the appropriate one.
# Note:
# - We do not attempt to check whether exactly one item matches.
# - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
# due to the way the deserialization is made in the base_object template (it just casts without verifying).
# - TODO: scalar values are de facto behaving as if they were nullable.
# - TODO: logging when debugging is set.
openapi_one_of.each do |klass|
begin
next if klass == :AnyType # "nullable: true"
typed_data = find_and_cast_into_type(klass, data)
next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed
return typed_data if typed_data
rescue # rescue all errors so we keep iterating even if the current item lookup raises
end
end

if openapi_one_of.include?(:AnyType)
data
else
self._unparsed = true
DatadogAPIClient::UnparsedObject.new(data)
end
end
end
end
end
Loading