Class: MISP::SharingGroup

Inherits:
Base
  • Object
show all
Defined in:
lib/misp/sharing_group.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**attributes) ⇒ SharingGroup

Returns a new instance of SharingGroup.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/misp/sharing_group.rb', line 40

def initialize(**attributes)
  attributes = normalize_attributes(attributes)

  @id = attributes.dig(:id)
  @name = attributes.dig(:name) || "default name"
  @releasability = attributes.dig(:releasability) || "default sharability"
  @description = attributes.dig(:description)
  @uuid = attributes.dig(:uuid)
  @organisation_uuid = attributes.dig(:organisation_uuid)
  @org_id = attributes.dig(:org_id)
  @sync_user_id = attributes.dig(:sync_user_id)
  @active = attributes.dig(:active)
  @created = attributes.dig(:created)
  @modified = attributes.dig(:modified)
  @local = attributes.dig(:local)
  @roaming = attributes.dig(:roaming)

  @organisation = build_attribute(item: attributes.dig(:Organization), klass: Org)

  @sharing_group_orgs = build_plural_attribute(items: attributes.dig(:SharingGroupOrg), klass: SharingGroupOrg)
  @sharing_group_servers = build_plural_attribute(items: attributes.dig(:SharingGroupServer), klass: SharingGroupServer)
end

Instance Attribute Details

#activeBoolean (readonly)

Returns:

  • (Boolean)


22
23
24
# File 'lib/misp/sharing_group.rb', line 22

def active
  @active
end

#createdString (readonly)

Returns:

  • (String)


24
25
26
# File 'lib/misp/sharing_group.rb', line 24

def created
  @created
end

#descriptionString (readonly)

Returns:

  • (String)


12
13
14
# File 'lib/misp/sharing_group.rb', line 12

def description
  @description
end

#idString (readonly)

Returns:

  • (String)


6
7
8
# File 'lib/misp/sharing_group.rb', line 6

def id
  @id
end

#localBoolean (readonly)

Returns:

  • (Boolean)


28
29
30
# File 'lib/misp/sharing_group.rb', line 28

def local
  @local
end

#modifiedString (readonly)

Returns:

  • (String)


26
27
28
# File 'lib/misp/sharing_group.rb', line 26

def modified
  @modified
end

#nameString (readonly)

Returns:

  • (String)


8
9
10
# File 'lib/misp/sharing_group.rb', line 8

def name
  @name
end

#org_idString (readonly)

Returns:

  • (String)


18
19
20
# File 'lib/misp/sharing_group.rb', line 18

def org_id
  @org_id
end

#organisation_uuidString (readonly)

Returns:

  • (String)


16
17
18
# File 'lib/misp/sharing_group.rb', line 16

def organisation_uuid
  @organisation_uuid
end

#organizationMISP::Org? (readonly)

Returns:



33
34
35
# File 'lib/misp/sharing_group.rb', line 33

def organization
  @organization
end

#releasabilityString (readonly)

Returns:

  • (String)


10
11
12
# File 'lib/misp/sharing_group.rb', line 10

def releasability
  @releasability
end

#roamingBoolean (readonly)

Returns:

  • (Boolean)


30
31
32
# File 'lib/misp/sharing_group.rb', line 30

def roaming
  @roaming
end

#sharing_group_orgsArray<MISP::SharingGroupOrg> (readonly)

Returns:



36
37
38
# File 'lib/misp/sharing_group.rb', line 36

def sharing_group_orgs
  @sharing_group_orgs
end

#sharing_group_serversArray<MISP::SharingGroupServer> (readonly)

Returns:



38
39
40
# File 'lib/misp/sharing_group.rb', line 38

def sharing_group_servers
  @sharing_group_servers
end

#sync_user_idString (readonly)

Returns:

  • (String)


20
21
22
# File 'lib/misp/sharing_group.rb', line 20

def sync_user_id
  @sync_user_id
end

#uuidString (readonly)

Returns:

  • (String)


14
15
16
# File 'lib/misp/sharing_group.rb', line 14

def uuid
  @uuid
end

Class Method Details

.create(**attributes) ⇒ Object



119
120
121
# File 'lib/misp/sharing_group.rb', line 119

def create(**attributes)
  new.create attributes
end

.listObject



115
116
117
# File 'lib/misp/sharing_group.rb', line 115

def list
  new.list
end

Instance Method Details

#create(**attributes) ⇒ MISP::SharingGroup

Create a sharing group

Parameters:

  • **attributes (Hash)

    attributes

Returns:



110
111
112
# File 'lib/misp/sharing_group.rb', line 110

def create(**attributes)
  _post("/sharing_groups/add", wrap(attributes)) { |sharing_group| SharingGroup.new sharing_group }
end

#listArray<MISP::SharingGroup>

List sharing groups

Returns:



94
95
96
97
98
99
100
101
# File 'lib/misp/sharing_group.rb', line 94

def list
  _get("/sharing_groups/") do |res|
    sharing_groups = res.dig(:response) || []
    sharing_groups.map do |sharing_group|
      SharingGroup.new sharing_group
    end
  end
end

#to_hHash

Returns a hash representation of the attribute data.

Returns:

  • (Hash)


68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/misp/sharing_group.rb', line 68

def to_h
  {
    id: id,
    name: name,
    releasability: releasability,
    description: description,
    uuid: uuid,
    organisation_uuid: organisation_uuid,
    org_id: org_id,
    sync_user_id: sync_user_id,
    active: active,
    created: created,
    modified: modified,
    local: local,
    roaming: roaming,
    Organisation: organisation.to_h,
    SharingGroupOrg: sharing_group_orgs.map(&:to_h),
    SharingGroupServer: sharing_group_servers.map(&:to_h)
  }.compact
end