Sha256: a5a99a901f0060fa6d277b473562c0e4d8b7698380c8352b8a62ca083ebed03a

Contents?: true

Size: 1.9 KB

Versions: 20

Compression:

Stored size: 1.9 KB

Contents

# frozen_string_literal: true
# typed: true

module WorkOS
  # The DirectoryGroup class provides a lightweight wrapper around
  # a WorkOS DirectoryGroup resource. This class is not meant to be instantiated
  # in user space, and is instantiated internally but exposed.
  class DirectoryGroup < DeprecatedHashWrapper
    include HashProvider
    extend T::Sig

    attr_accessor :id, :directory_id, :idp_id, :name, :created_at, :updated_at,
                  :raw_attributes, :organization_id

    # rubocop:disable Metrics/AbcSize
    sig { params(json: String).void }
    def initialize(json)
      raw = parse_json(json)

      @id = T.let(raw.id, String)
      @directory_id = T.let(raw.directory_id, String)
      @organization_id = raw.organization_id
      @idp_id = T.let(raw.idp_id, String)
      @name = T.let(raw.name, String)
      @created_at = T.let(raw.created_at, String)
      @updated_at = T.let(raw.updated_at, String)
      @raw_attributes = raw.raw_attributes

      replace_without_warning(to_json)
    end
    # rubocop:enable Metrics/AbcSize

    def to_json(*)
      {
        id: id,
        directory_id: directory_id,
        organization_id: organization_id,
        idp_id: idp_id,
        name: name,
        created_at: created_at,
        updated_at: updated_at,
        raw_attributes: raw_attributes,
      }
    end

    private

    sig do
      params(
        json_string: String,
      ).returns(WorkOS::Types::DirectoryGroupStruct)
    end
    def parse_json(json_string)
      hash = JSON.parse(json_string, symbolize_names: true)

      WorkOS::Types::DirectoryGroupStruct.new(
        id: hash[:id],
        directory_id: hash[:directory_id],
        organization_id: hash[:organization_id],
        idp_id: hash[:idp_id],
        name: hash[:name],
        created_at: hash[:created_at],
        updated_at: hash[:updated_at],
        raw_attributes: hash[:raw_attributes],
      )
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
workos-4.1.0 lib/workos/directory_group.rb
workos-4.0.0 lib/workos/directory_group.rb
workos-3.1.0 lib/workos/directory_group.rb
workos-3.0.0 lib/workos/directory_group.rb
workos-2.17.0 lib/workos/directory_group.rb
workos-2.16.0 lib/workos/directory_group.rb
workos-2.15.0 lib/workos/directory_group.rb
workos-2.14.0 lib/workos/directory_group.rb
workos-2.13.0 lib/workos/directory_group.rb
workos-2.12.1 lib/workos/directory_group.rb
workos-2.12.0 lib/workos/directory_group.rb
workos-2.11.0 lib/workos/directory_group.rb
workos-2.10.0 lib/workos/directory_group.rb
workos-2.9.0 lib/workos/directory_group.rb
workos-2.8.0 lib/workos/directory_group.rb
workos-2.7.0 lib/workos/directory_group.rb
workos-2.6.0 lib/workos/directory_group.rb
workos-2.5.1 lib/workos/directory_group.rb
workos-2.5.0 lib/workos/directory_group.rb
workos-2.4.0 lib/workos/directory_group.rb